Java 创建对象方法的演变

news2024/12/26 23:53:08

1、普通 Java 代码

public class Rectangle {
    private int width;
    private int length;
    public Rectangle() {
        System.out.println("Hello World!");
    }
    public void setWidth(int widTth) {
        this.width = widTth;
    }
    public void setLength(int length) {
        this.length = length;
    }
    @Override
    public String toString() {
        return "Rectangle{" +
                "width=" + width +
                ", length=" + length +
                '}';
    }
    public static void main(String[] args) {
        Rectangle rectangle = new Rectangle();
        rectangle.setLength(3);
        rectangle.setWidth(2);
    }
}

2、Spring

  1. 编写配置文件:
    官网提供
    第一段是命名空间
    第二段是我们自己的 bean,需要给 bean 指定 id(对象的唯一标识,不可重复),class(实现的类的全限定名),属性赋值(set 后面的属性)。

  2. 通过 ClassPathXmlApplicationContext 调用 Bean,可以通过三种方式调用:id(需要强转)/ class(需要 bean 是单例的)/ id + class 。

    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("service.xml");
        // 通过 id
        Rectangle rectangle1 = (Rectangle) context.getBean("rectangle");
        // 通过 class
        Rectangle rectangle2 = context.getBean(Rectangle.class);
        // 通过 id + class
        Rectangle rectangle3 = context.getBean("rectangle",Rectangle.class);
        System.out.println(rectangle1);
    }

3、Spring Boot

  1. 定义一个类
  2. 定义Config 配置类,并通过注解将其注册为 Bean,如@Component,@Bean,@Service等。
  3. 之后就能在其他类中通过 @Autowired 或 @Resource 注入使用
@Data
@AllArgsConstructor
public class Rectangle {
    private int width;
    private int length;
    public Rectangle() {
        System.out.println("Hello World!");
    }
    @Override
    public String toString() {
        return "Rectangle{" +
                "width=" + width +
                ", length=" + length +
                '}';
    }
}

public class RectangleConfig {
    @Bean
    public Rectangle rectangle(){
        return new Rectangle(3,4);
    }
}

@RestController
public class MyController {
    @Autowired
    public Rectangle rectangle;

    @GetMapping("/bean")
    public String getBeanDetails() {
        return rectangle.toString();//Rectangle{width=3, length=4}
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2123022.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

个人随想-如何开发一个code agent

随着sonnet的普及,现在的开发确实可以达到事半功倍的效果,再加上cursor、claude dev等工具的加持,现在的软件开发,确实门槛降低了很多,我们可以快速的让ai给我们大量的提示、重构、单元测试、explain甚至是完全用自然语…

c++指针和引用专题

一 基本概念 图解C++指针与引用的区别_指针与引用 图解-CSDN博客https://blog.csdn.net/shang_0122/article/details/104755481 为什么C+

房屋租赁|基于springboot的房屋租赁管理系统设计与实现(附项目源码+论文+数据库)

私信或留言即免费送开题报告和任务书(可指定任意题目) 目录 一、摘要 二、相关技术 三、系统设计 四、数据库设计 五、核心代码 六、论文参考 七、源码获取 一、摘要 互联网发展至今,无论是其理论还是技术都已经成熟&#x…

方位对称性+均匀分布=交叉极化和同极化不相关

这个推导是一种方为对称散射矩阵的均匀分布,对于多种方位对称性的散射矩阵,均匀分布。可以看作该模型的简单叠加。从而交叉极化和同极化不相关

PhotoZoom Classic 9.0.2中文版新功能介绍及PhotoZoom 9使用教程

PhotoZoom Classic 9.0.2中文版简介 PhotoZoom Classic 9.0.2中文版是一款新颖的、技术上具有革命性的对数码图片进行放大的工具。通常的工具对数码图片进行放大时,总会降低图片的品质,而这款软件使用了S-SPLINE技术(一种申请过专利的,拥有自…

Word文档的读入(3)

逐个读取答题卡后,我们可以访问Word文档(Document)中的 .paragraphs 属性,来获取文档中的段落列表。段落列表的组成元素是所有的段落对象,可以使用索引定位到指定的段落对象。 完善代码(读取学生学号所在的…

FFmpeg 7.0 版本 “Dijkstra”的特点概述

FFmpeg 7.0 FFmpeg 官网:https://ffmpeg.org/FFmpeg 官网更新日志,2024.4.5 号发布代号"Dijkstra"的 7.0 版本的 FFmpeg,如下截图: 为什么叫 Dijkstra“Dijkstra” 指的是艾兹格戴克斯特拉(Edsger Wybe Dijkstra),他是一位荷兰计算机科学家,对计算机科学领域…

为什么Java已经不推荐使用Stack了?

为什么不推荐使用Stack Java已不推荐使用Stack,而是推荐使用更高效的ArrayDeque 为什么不推荐使用 性能低:是因为 Stack 继承自 Vector, 而 Vector 在每个方法中都加了锁。由于需要兼容老的项目,很难在原有的基础上进行优化&…

多目标优化算法求解WFG(Walking Fish Group)测试函数

WFG(Walking Fish Group)测试函数套件是一组用于多目标优化的基准测试问题,由Simon Huband, Luigi Barone, Lyndon While和Phil Hingston提出。这些测试问题旨在提供一个全面的测试平台,以评估多目标优化算法的性能。WFG测试集包含…

操作系统 --- 线程(Threads)概念 多线程模型 线程控制与组织

零、学习路线 一、线程的引入,什么是线程,为什么要引入线程? 如果说,在OS中引入进程的目的是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量,那么,在操作系统中再引入线程&#xff0c…

[网鼎杯 2020 朱雀组]Nmap 历程记录

分析:根据题目名称知道本题肯定会涉及nmap的使用,访问web页面 扫描自己,发现没啥有用的信息,他这里每扫一个主机会把扫描信息存在一个新的文件里,简单试了一下传的参数,也没发现sql注入 这个地方提供的参数会被nmap去拼…

新版idea java_home报错 以及markdown插件无法使用

报错:The environment variable JAVA_HOME(with the value of does not point to a valid JVM) 1.检查java环境发现换成jdk8 或者jdk17 都没有问题,但是idea还是报错 可能是由于idea界面采用新技术JCEF缺少环境,我的idea版本是20…

从腾讯大模型的「实用」路线,我们看到了企业应用AI的新方向

「现在每家公司都是 AI 公司,但引入 AI 之后,利润真的能提高吗?」 在针对 Transformer 作者、Cohere CEO Aidan Gomez 的一次采访中,播客主持人 Harry Stebbings 问出了这样一个问题。 Stebbings 提到,现在很多公司都…

赎金信--力扣383

赎金信 题目思路一方法一:哈希表思路二方法二 数组 题目 思路一 我们使用哈希表map的思路,A能不能由B组成,说明B包含的元素个数要大于等于A。 所以我们先利用map的key和value分别对magazine中的出现的字符以及出现的次数存储起来。 然后我们…

力扣题解2552

大家好,欢迎来到无限大的频道。 今天和大家分享的是2552的题解思路。 题目描述: 统计上升四元组 一个长度为 n 下标从 0 开始的整数数组 nums ,它包含 1 到 n 的所有数字,请你返回上升四元组的数目。 如果一个四元组 (i, j, …

RocketMQ异步报错:No route info of this topic

在SpringBoot中发送RocketMQ异步消息的时候报错了,提示org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, testTopic1 这里给出具体的解决方案 一、Broker模块不支持自动创建topic,并且topic没有被手动创建过 R…

智慧教室无纸化方案应用领域和技术实践探究

智慧教室无纸化应用场景 智慧教室无纸化方案在多个领域得到了广泛应用,主要体现在教育领域,但随着技术的发展和应用的深入,其应用范围也在逐渐扩大。以下是一些主要的应用领域: 一、教育领域 课堂教学: 中小学数学课…

BFS迷宫最小路径问题

给定一个迷宫,0表示空地可以走,1表示墙壁不能穿越;在迷宫中可以向(上下左右)四个方向行进; 找到从左上角到右下角的最短路径,并计算最短路径的长度。 迷宫示例如下: 算法步骤&…

org.aspectj.apache.bcel.classfile.ClassFormatException 深度解析

org.aspectj.apache.bcel.classfile.ClassFormatException 深度解析 ### 概述 在前端开发和Java后端交互的复杂环境中,org.aspectj.apache.bcel.classfile.ClassFormatException 作为一个难以预测的异常,时常给开发者带来困扰。这个异常主要与 AspectJ—…

Trigger源码分析 -- ant-design-vue系列

Trigger源码分析 – ant-design-vue系列 1 概述 源码地址: https://github.com/vueComponent/ant-design-vue/blob/main/components/vc-trigger/Trigger.tsx 在源码的实现中,Trigger组件主要有两个作用: 使用Portal组件,把Pop…