Spring IOC容器(一)

mac2026-04-11  4

依赖注入方式

属性注入 通过setter方法注入Bean的属性或依赖的对象 使用<property>元素,使用name属性指定Bean属性名称,value属性或<value>子节点指定属性值

注入步骤: 在目标bean类文件中将属性生成setter方法 在spring配置文件中配置目标bean的属性依赖,通过标签 标签property name属性表示bean的属性名 使用value配置属性名,(当值为引用类型需要使用ref属性

构造器注入(了解) 通过构造方法注入Bean的属性值或依赖的对象Bean实例在实例化后可以使用 构造器在<constructor-arg>元素里声明属性 (1)按索引匹配入参 applicationContext.xml <bean id="userDao" class="com.gh.spring.ioc.di.UserDao"></bean> <bean id="userService" class="com.gh.spring.ioc.di.UserService"> <constructor-arg index="0" ref="userDao"></constructor-arg> <constructor-arg index="1" value="hui"></constructor-arg> <constructor-arg index="2" value="19"></constructor-arg> </bean> UserService.java public UserService(UserDao udao, String userName, int age) { super(); this.udao = udao; this.userName = userName; this.age = age; }

(2)按类型匹配入参

applicationContext.xml <bean id="userService" class="com.gh.spring.ioc.di.UserService"> <constructor-arg type="UserDao" ref="userDao"></constructor-arg> <constructor-arg type="String" value="huihui"></constructor-arg> <constructor-arg type="int"><value>19</value></constructor-arg> </bean>

注入依赖对象

基本类型和引用类型对象的注入: name:指定bean的定义的属性名称 ref:其他bean的id value:属性值 applicationContext.xml <bean id="userService" class="com.gh.spring.ioc.di.UserService"> <property name="udao" ref="userDao"></property> <property name="userName" value="huihui"></property> <property name="userName"><value>huihui</value></property> <property name="age"><value>20</value></property> <property name="weight"><value>80.33</value></property> </bean> 字面值包含特殊字符,可以使用<![CDATA[]]>把字面值包裹起来 <bean id="userService" class="com.gh.spring.ioc.di.UserService"> <property name="udao" ref="userDao"></property> <property name="userName" value="![CDATA[huihui<>]]"></property> </bean> 内部Bean:在属性或构造器里声明的Bean <bean id="userService" class="com.gh.spring.ioc.di.UserService"> <property name="apple"> <bean class="com.gh.spring.ioc.di.Apple" ></bean> </property> </bean>

注入集合

applicationContext.xml

<bean id="collection" class="com.gh.spring.ioc.di.CollectionDI"> //list标签 <property name="stuList"> <list> <value>张三</value> <value>李四</value> <value>慧子</value> </list> </property> <property name="majorSet"> <set> <value>java</value> <value>数据结构</value> <value>java</value> </set> </property> <property name="scoreMap"> <map> <entry key="张三" value="44"/> <entry key="李四" value="77"/> <entry key="王二" value="90"/> </map> </property> <property name="prop"> <props> <prop key="java">78</prop> <prop key="java">89</prop> <prop key="c">99</prop> </props> </property> </bean>

util schema&bean

使用util标签之前,必须加上util命名空间,修改属性值 <util:list id="stuList"> <value>张三</value> <value>李四</value> <value>慧子</value> </util:list> Bean之间的关系—继承 <bean id="userDao" class="com.gh.spring.ioc.di.UserDao"> <property name="dbName" value="me"></property> </bean> <bean id="subUserDao" parent="userDao"> <property name="dbName" value="you"></property> </bean> Bean之间的关系—依赖

P命名空间

简化配置信息

<bean id="userDao" class="com.gh.spring.ioc.di.UserDao" P:dbName="me"> </bean> <bean id="collection" class="com.gh.spring.ioc.di.CollectionDI" P:stuList-ref="stuList"> </bean>

专项配置文件

<context:property-placeholder location="config/db.properitise"/> <bean id="connection" class="com.gh.spring.ioc.di.DbCollection" p:dbUrl="${mysql-url}> </bean>
最新回复(0)