spring依赖注入(DI)
来源:互联网 发布:jsp和javascript哪个好 编辑:程序博客网 时间:2024/04/27 07:05
Spring是一个开源的控制反转(Inversionof Control ,IoC)和面向切面(AOP)的容器框架.它的主要目得是简化企业开发. Spring的目标是使已存在的技术更加易用。
所谓依赖注入(DI)就是指:在运行期,由外部容器动态地将依赖对象注入到组件中。
依赖注入(DI)背后的基本原理是对象之间的依赖关系(即一起工作的其它对象)只会通过以下几种方式来实现:构造器的参数、工厂方法的参数,或给由构造函数或者工厂方法创建的对象设置属性。
依赖注入(DI)有两种方法:1、Setter注入2、构造器注入。
1、 Setter注入
通过调用无参构造器或无参static工厂方法实例化bean之后,调用该bean的setter方法,即可实现基于setter的DI。这时类中无参构造器或无参static工厂两者必须有其中一个。
可以这样理解: Setter注入指的就是在接受注入的类中定义一个Set方法,并在参数中定义需要注入的元素。
java实体类代码:
packagecn.zc.service;
public classHelloServiceImpl implements HelloService {
private String greet;
public void setGreet(String greet) {
this.greet = greet;
}
public String sayGreet(){
return this.greet;
}
}
xml配置代码:
<?xmlversion="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<beanid="helloServiceBean" class="cn.zc.service.HelloServiceImpl">
<!-- propertybean中的属性值 -->
<property name="greet">
<value>你好!</value>
</property>
</bean>
</beans>
2、 构造器注入
基于构造器的DI通过调用带参数的构造器来实现,每个参数代表着一个依赖。此外,还可通过给stattic工厂方法传参数来构造bean。
构造器注入注意:构造器参数解析根据参数类型进行匹配,如果bean的构造器参数类型定义非常明确,那么在bean被实例化的时候,bean定义中构造器参数的定义顺序就是这些参数的顺序,依次进行匹配。构造器参数的设置通过<constructor-arg>的type属性设置参数类型,还可以通过index属性来显式指定构造参数的索引,注意index是从0开始。
java代码:
packagecn.zc.service;
importjava.util.Date;
public classTeacherServiceBean {
private String name;
private Integer age;
private Date birth;
public TeacherServiceBean(String name,Integer age, Date birth) {
super();
this.name = name;
this.age = age;
this.birth = birth;
}
@Override
public String toString() {
return"TeacherServiceBean [name=" + name + ", age=" + age +", birth="
+ birth +"]";
}
}
xml代码:
<?xmlversion="1.0" encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="teacherServiceBean"class="cn.zc.service.TeacherServiceBean">
<constructor-argtype="java.lang.String" index="0" value="军哥"/>
<constructor-argtype="java.lang.Integer" index="1" value="30"/>
<constructor-argindex="2" ref="date"/>
</bean>
<bean id="date" class="java.util.Date"/>
</beans>
- spring依赖注入(DI)
- Spring 依赖注入(DI)
- spring-DI(依赖注入)
- Spring依赖注入(DI)
- Spring依赖注入(DI)
- Spring依赖注入(DI)
- Spring 依赖注入(DI)
- Spring依赖注入(DI)
- spring(依赖注入-DI)
- Spring DI 依赖注入
- Spring-DI(依赖注入)
- Spring依赖注入DI
- Spring 依赖注入(DI)
- Spring DI[依赖注入]
- Spring DI(依赖注入)
- Spring依赖注入(DI)
- Spring依赖注入DI
- 4.Spring DI(依赖注入)
- 美味水果变天然美容排毒剂
- c++_main
- 专家教你五步选购营养果汁
- PKU-程序设计实习-Myistream_iterator
- Google背后的分布式计算架构策略
- spring依赖注入(DI)
- linux 上postgreSQL 移植到本地windows系统
- 未重构的 魔兽世界终极版
- 3D技术的未来将由电视决定
- sql server 中按照周进行汇总
- 黑马程序员--创建异常日志(转)
- 关键帧动画
- linux vfs 解析 之 mount 文件系统 (上)
- WAR3 兵种克制详解