Spring:bean注入--Set方法注入

这篇文章主要给大家总结介绍了关于Spring注入Bean的一些方式,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

目录

Set 方法注入

总结

Set 方法注入

1.新建一个空的 maven项目。

2.导入依赖

properties> UTF-811115.3.11.18.204.12org.springframeworkspring-beans${spring.version}org.springframeworkspring-context${spring.version}org.projectlomboklombok${lombok.version}junitjunit${junit.version}

3.工程项目结构

4.新建包 com.crush.pojo

5.新建java类Student

@Data // set、get 方法 @AllArgsConstructor // 全参构造 @NoArgsConstructor // 无参构造 public class Student { /** * 学号 */ private Long number; /** * 学生姓名 */ private String name; /** * 所在学校 */ private String school; }

resource 下 beans.xml文件

11

一个测试类

public class Test { /** * 通过 ClasspathXmlApplicationContext 获取 Spring 应用程序的 上下文 ApplicationContext */ @org.junit.Test public void test(){ ApplicationContext applicationContext = new ClasspathXmlApplicationContext("beans.xml"); // 第一种方式 获取ioc 容器中的Student 强制类型转换 Student student = (Student) applicationContext.getBean("student"); // 第二种方式 直接在后面写明类的标签。 Student student1 = applicationContext.getBean("student", Student.class); // student.setName("cccc"); 给其中一个修改 就会全部修改 可以自己打开测试下 System.out.println(student); System.out.println(student1); // 这里结果为true // 解释:因为Spring 认构造出来的对象 认是单例的。 无论获取多少次 ,都是单例的。 System.out.println(student==student1); } /** * 通过 FileSystemXmlApplicationContext 获取 Spring 应用程序的 上下文 ApplicationContext * 还有第三种是 通过Web服务器实例化 ApplicationContext 容器 */ @org.junit.Test public void test2(){ //这里的路径 也可以 用绝对路径 ApplicationContext applicationContext = new FileSystemXmlApplicationContext("src\main\resources\beans.xml"); Student student = applicationContext.getBean("student", Student.class); System.out.println(student); } }

小小思考

为什么 new ClasspathXmlApplicationContext(“beans.xml”); 要用ApplicationContext 来接收,而不用ClasspathXmlApplicationContext 接收呢?

ApplicationContext applicationContext = new ClasspathXmlApplicationContext("beans.xml");

ClasspathXmlApplicationContext applicationContext = new ClasspathXmlApplicationContext("beans.xml");

解释:

按照面向接口编程的思想,声明变量应该是接口类型的,然后创建一个该接口的实现类的实例赋值给该变量。 ApplicationContext是接口,ClasspathXmlApplicationContext是它的一个实现类。所以你就看到了 ApplicationContext ac = new ClasspathXmlApplicationContext(…)

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注编程之家的更多内容

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...