Spring bean 四种注入方式详解

这篇文章主要介绍了Spring bean的实例化和IOC依赖注入详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

目录

一、Set方式注入

pojo层:

1.xml 文件

test测试

二、构造函数方式注入

pojo层

2.xml文件

test测试

三、注解注入

pojo层

3.xml文件

test测试

四、JavaConfig 方式注入

pojo层

JavaConfig

xml文件 扫描包

测试:

五、Service层注入详解

service

serviceImpl

xml配置文件

总结

一、Set方式注入

pojo层:

/** * @Author: crush * @Date: 2021-06-17 16:57 * version 1.0 * xml 配置注入版本 set 方式 */ public class Student1 { public String name; public String school; public void setName(String name) { this.name = name; } public void setSchool(String school) { this.school = school; } @Override public String toString() { return "Student1{" + "name='" + name + ''' + ", school='" + school + ''' + '}'; } }

1.xml 文件

test测试

@Test public void student1(){ ApplicationContext context = new ClasspathXmlApplicationContext("student1.xml"); Student1 student1 = context.getBean("student1", Student1.class); System.out.println(student1); }

二、构造函数方式注入

pojo层

/** * @Author: crush * @Date: 2021-06-17 17:02 * version 1.0 * xml 配置 构造函数方式注入 */ public class Student2 { private String name; private String school; public Student2(String name, String school) { this.name = name; this.school = school; } @Override public String toString() { return "Student2{" + "name='" + name + ''' + ", school='" + school + ''' + '}'; } }

2.xml文件

test测试

@Test public void student2(){ ApplicationContext context = new ClasspathXmlApplicationContext("student2.xml"); Student2 student2 = context.getBean("student2", Student2.class); System.out.println(student2); }

三、注解注入

pojo层

/** * @Author: crush * @Date: 2021-06-17 17:08 * version 1.0 */ @Component public class Student3 { @Value("wyh3") private String name; @Value("hngy3") private String school; @Override public String toString() { return "Student3{" + "name='" + name + ''' + ", school='" + school + ''' + '}'; } }

3.xml文件

test测试

@Test public void student3(){ ApplicationContext context = new ClasspathXmlApplicationContext("student3.xml"); Student3 student3 = context.getBean("student3", Student3.class); System.out.println(student3); }

四、JavaConfig 方式注入

pojo层

/** * @Author: crush * @Date: 2021-06-17 17:16 * version 1.0 * JavaConfig 配置 */ public class Student4 { @Value("wyh4") private String name; @Value("hngy4") private String school; @Override public String toString() { return "Student4{" + "name='" + name + ''' + ", school='" + school + ''' + '}'; } }

JavaConfig

@Configuration public class Student4Config { @Bean public Student4 student4(){ return new Student4(); } }

xml文件 扫描包

测试:

@Test public void student4(){ ApplicationContext context = new ClasspathXmlApplicationContext("student4.xml"); Student4 student4 = context.getBean("student4", Student4.class); System.out.println(student4); }

五、Service层注入详解

service

/** * @Author: crush * @Date: 2021-06-17 17:27 * version 1.0 * xml 配置 */ public interface StudentService1 { void test(); }

serviceImpl

/** * @Author: crush * @Date: 2021-06-17 17:29 * version 1.0 * xml 配置 */ public class StudentService1Impl implements StudentService1{ @Override public void test() { System.out.println("===StudentDao1Impl==="); } }

xml配置文件

总结

相关文章

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