Spring中各种依赖注入的代码实现
来源:互联网 发布:知乎达芬奇的恶魔 编辑:程序博客网 时间:2024/06/16 23:54
DI:Spring称之为依赖注入,就是维护对象和对象之间的关系
通俗的讲,就是 给类的成员赋值。
1、属性赋值:
class A{String str = “Hello Word !”}注入:<bean id="A" class="类A的全称"> <property name="str" value="Hello Word"></property></bean>
2、依赖注入的几种方法:
A. 构造器注入
B. Setter方法注入
C. 方法注入
3、构造器注入:
通过构造方法给属性赋值
<bean id="stu" class="cn.gson.springmavenTest.pojos.Student"> <!-- 給构造方法的第一个参数赋值 --> <constructor-arg index="0" value="0"></constructor-arg> <!-- 給构造方法的第二个参数赋值 --> <constructor-arg index="1" value="Hello"> </constructor-arg> </bean>
4、Setter方法注入:
<bean id="stu" class="cn.gson.springmavenTest.pojos.Student"> <property name="sid" value="10"></property> <property name="name" value="laobiao"></property> </bean>
强调:name不是属性名,而是Setter方法的后半部分
注意:该类必须要有公共的无参构造方法
属性为private的访问级别,不建议为public
属性必要时通过一组Setter和getter方法来访问
5、注入常量
<property name="index" value="10"/> 或者是:<property name="index"><value>10</index><property/>
6、注入List集合,使用list标签
<property name="luckColor"> <list> <value>红色</value> <value>黄色</value> <value>蓝色</value> </list></property>
7、注入Set集合,使用Set标签
<property name="luckColor"> <set> <value>红色</value> <value>黄色</value> <value>蓝色</value> </set></property>
8、注入Map集合,键和值对象可以是任意类型,使用map标签
<property name="lockGril"> <map> <entry key="1" value="杨幂"></entry> <entry key="2" value="赵丽颖"></entry> <entry key="3" value="王丽坤"></entry> </map></property>
9、注入数组
<property name="luckNumber"> <array> <value>3</value> <value>19</value> </array></property>
10、注入其他对象(必须是Spring容器中的对象)
Teacher类是Student类中的一个属性变量
<bean id="stu" class="cn.gson.springmavenTest.pojos.Student"> <property name="teacher" ref="tea"></property></bean><bean id="tea" class="cn.gson.springmavenTest.pojos.Teacher"> <property name="name" value="laobiao"></property> <property name="age" value="20"></property></bean>
11、使用P命名空间简化Setter注入
<bean id="stu" class="cn.gson.springmavenTest.pojos.Student"> <property name="teacher" ref="tea"></property></bean> <bean id="tea" class="cn.gson.springmavenTest.pojos.Teacher" p:name="laobiao" p:age="20" p:birthday-ref="date" </bean> <bean id="date" class="java.util.Date"> </bean>
12、零配置
@Autowired:按照类型进行自动装配
@Component("stu")public class Student { private long sid; private String name; @Autowired(required=true) private Teacher teacher; private List<String> luckColor; private Set<String> luckCity; private Map<Integer,String> lockGril; private int[] luckNumber;}
@Autowired(required=false)当根据类型去找,找不到时,注入一个空。
@Autowired(required=true)当根据类型去找,找不到时,抛出异常信息。
@Qualifier(“tea”):根据名称进行装配,相当于在配置的时候的stu里面的Tea的id
@Component("stu")public class Student { private long sid; private String name; @Autowired @Qualifier("tea") //根据名称进行装配 private Teacher teacher;}
后台测试:首先得到核心配置文件,比如:applicationContext.xml
ApplicationContext ac = new ClassPathXmlApplicationContext("appaicationContext.xml"); //方式一 Student student = (Student) ac.getBean("stu"); //方式二 //Student student = ac.getBean(Student.class); //方式三 // Student student = ac.getBean("stu", Student.class); System.out.println(student.sayHello("zhagnxusheng")); //System.out.println(student.getName()+student.getSid());
就会发现,和以前最大的不同点就是不需要去new 这个Student,就获取它的属性和方法
最后,还可以进:注解和配置混合注入
阅读全文
0 0
- Spring中各种依赖注入的代码实现
- Spring各种依赖注入注解的区别
- Spring各种依赖注入注解的区别
- Spring各种依赖注入注解的区别
- spring-依赖注入的实现
- spring 依赖注入原理代码实现
- 一点关于spring依赖注入的代码
- Spring IoC依赖注入的实现
- spring依赖注入的实现原理
- spring依赖注入的实现原理
- spring依赖注入的实现原理
- spring是怎么实现依赖注入的
- Spring基于annotation的依赖注入实现
- spring DI 实现的模拟,依赖注入
- 实现Spring依赖注入功能的想法
- spring-依赖注入的实现方式
- spring 依赖注入的5中方式
- Spring中bean的依赖注入解析
- 转载--Java23种设计模式学习
- php中mysql_fetch_row与mysql_fetch_assoc与mysql_fetch_array()的区别
- 解析xml的4种方法详解
- Android(讯为主板) 飞思卡尔 编译错误笔记
- Redis Cluster多机房高可用实现--基于客户端
- Spring中各种依赖注入的代码实现
- MySql查询不区分大小写解决方案(两种)
- 黑盒测试
- sentinel
- 学习随笔
- Mysql5.6 借助工具pt-online-schema-change在线DDL(还有加索引)
- HDU3359(高斯消元浮点数版)
- Java分层设计(DAO设计模式)—JUnit测试
- ubuntu pyenv 配置安装