一、IoC容器
- Spring通过IoC容器来管理所有Java对象(也称bean)及其相互之间的依赖关系。
1.1依赖注入与控制反转
依赖注入和控制反转其实就是一个事物的
控制反转一般分为依赖注入和查找依赖的两种不同说法而已,本质上是一回事。
1.2注入方式
- 1.构造器注入
<bean id="exampleBean" class="waylau.ExampleBean">
<constructor-arg name="years" value="2015"/>
<constructor-arg name="months" value="12"/>
</bean>
- 2.Setter注入
<bean id="exampleBean" class="waylau.ExampleBean">
<property name="years" value="2015"/>
<property name="months" value="12"/>
</bean>
1.3依赖注入的详细配置
- 直接赋值
支持字符串和原始数据类型
<bean id="myDatasouce" class="org.apache.commons.dpcp.BasicDataSource" destroy-method="close"
p:driverClassName="com.mysql.jdbc.Driver"
p:url="jdbc:mysql://locationhost:3306/mydb"
p:username="root"
p:password="masterkaoli"/>
- 引用其他bean
如果bean之间有协作关系,则可以引用其他bean。rel元素是<constructor-arg>或者<property>中的一个终极标签。开发者可以通过这个标签配置一个bean来引用另一个bean。
<bean id="car1" class="com.Spring.IoC.Car">
<property name="name" value="benz"/>
<property name="color" value="pink"/>
<property name="parameter" value="3.3T"/>
</bean>
<bean id="boss" class="com.Spring.IoC.Boss">
<constructor-arg name="name" value="马云"/>
<constructor-arg name="car" rel="car1"/>
</bean>
- 集合
在<list><set><map>和<props>元素中,开发者可以配置Java集合类型List(可以出现重复)、Set(不能出现重复)、Map及Properties的属性和参数
<bean id=""moreComplexObject" class="waylau.ComplexObject">
<property name="adminEmails">
<props>
<prop key="administrator">administrator@waylau.com</prop>
<prop key="support">support@waylau.com</prop>
<prop key="development">development@waylau.com</prop>
</props>
</property>
<property name="somList">
<list>
<value>a list element followed by areference</value>
<rel bean="myDataSource"/>
</list>
</property>
<property name="someMap">
<map>
<entry key="an entry" value="just some string"/>
<entry key="a ref" value-ref="myDataSource"/>
</map>
</property>
<property name="someSet">
<set>
<value>just some string</value>
<ref bean="myDataSource"/>
</set>
</property>
</bean>
map的key或value,或者是集合的value都可以配置为下列元素。
bean|ref|idref|list|set|map|props|value|null
网友评论