Spring依赖注入
一、Set注入和有参构造方法注入
<bean id="userDao" class="com.finnlee.daoImpl.UserDaoImpl" scope="prototype" ></bean> //name="userDao"是属性 ref="userDao" 是引用上面bean对象 <bean id="userService" class="com.finnlee.service.impl.UserServiceImpl"> <property name="userDao" ref="userDao"/> //Set注入
<constructor-arg name="userDao" ref="userDao"></constructor-arg> //构造方法注入
</bean>
xmlns:p="http://www.springframework.org/schema/p"
<bean id="userService" class="com.finnlee.service.impl.UserServiceImpl" p:userDao-ref="userDao"/>
二、Bean的依赖注入的数据类型
注入数据的三种数据类型 :普通数据类型 、引用数据类型、集合数据类型
<bean id="userModel1" class="com.finnlee.models.UserModel" > <property name="name" value="张三"></property> <property name="age" value="28" ></property> </bean> <bean id="userModel2" class="com.finnlee.models.UserModel" > <property name="name" value="李四"></property> <property name="age" value="30" ></property> </bean> <bean id="userDao" class="com.finnlee.daoImpl.UserDaoImpl" scope="prototype" > <!--基本数据类型--> <property name="username" value="张三丰" ></property> <property name="age" value="108" ></property> <!--List<String>类型--> <!--strList:[111, 222, 333]--> <property name="strList"> <list> <value>111</value> <value>222</value> <value>333</value> </list> </property> <!--List<User>类型--> <!--userModelList[UserModel{name='null', age='null'}, UserModel{name='null', age='null'}, UserModel{name='张三', age='28'}, UserModel{name='李四', age='30'}]--> <property name="userModelList"> <list> <!--直接引用 (未赋值)--> <bean class="com.finnlee.models.UserModel" /> <bean class="com.finnlee.models.UserModel" /> <!--引用容器中的Bean--> <ref bean="userModel1" /> <ref bean="userModel2" /> </list> </property> <!--Map<String, UserModel>类型--> <!--userModelMap{userModel1=UserModel{name='张三', age='28'}, userModel2=UserModel{name='李四', age='30'}}--> <property name="userModelMap"> <map> <entry key="userModel1" value-ref="userModel1" /> <entry key="userModel2" value-ref="userModel2" /> </map> </property> <!--Properties集合类型--> <!--properties{p3=333, p2=222, p1=111}--> <property name="properties"> <props> <prop key="p1">111</prop> <prop key="p2">222</prop> <prop key="p3">333</prop> </props> </property> </bean>
三、引入其他配置文件(分模块开发)
Spring的配置内容非常多,这就导致Spring配置很繁杂且体积很大,所以,可以将部分配置拆解到其他配置文件中,而在Spring主配置文件通过import标签进行加载
<import resource="applicationContext-xxx.xml"/>
Spring的重点配置
Spring的重点配置
<bean>标签
id属性:在容器中Bean实例的唯一标识,不允许重复
class属性:要实例化的Bean的全限定名
scope属性:Bean的作用范围,常用是Singleton(默认)和prototype
<property>标签:属性注入
name属性:属性名称
value属性:注入的普通属性值
ref属性:注入的对象引用值
<list>标签
<map>标签
<properties>标签
<constructor-arg>标签
<import>标签:导入其他的Spring的分文件