IOC容器装配Bean
Bean中属性注入–基于XML方式
- Spring支持
- 构造方法注入
- setter方法注入
构造器注入
- 使用构造方法注入,在Spring配置文件中,通过
设置注入的属性 (可以通过index或者type注入)
setter方法注入
使用setter方法注入,在Spring配置文件中,通过
设置注入的属性 <bean id="car2" class="cn.itcast.spring3.demo5.Car2"> <!-- <property>标签中name就是属性名称,value是普通属性的值,ref:引用其他的对象 --> <property name="name" value="保时捷"/> <property name="price" value="5000000"/> </bean>
setter方法注入对象属性
标签中name就是属性名称,value是普通属性的值,ref:引用其他的对象
名称空间p:注入属性
- Spring2.5版本引入了名称空间p
- p:<属性名>=“xxx” 引入常量值
- p:<属性名>-ref=“xxx” 引用其它Bean对象
- 引入名称空间:
xml:
<bean id="car2" class="cn.itcast.spring3.demo5.Car2" p:name="宝马" p:price="400000"/>
<bean id="person" class="cn.itcast.spring3.demo5.Person" p:name="童童" p:car2-ref="car2"/>
SpEL:属性的注入
- Spring3.0提供注入属性方式:
- 语法:
<bean id="car2" class="cn.itcast.spring3.demo5.Car2">
<property name="name" value="#{'大众'}"></property>
<property name="price" value="#{'120000'}"></property>
</bean>
<bean id="person" class="cn.itcast.spring3.demo5.Person">
<!--<property name="name" value="#{personInfo.name}"/>-->
<property name="name" value="#{personInfo.showName()}"/>
<property name="car2" value="#{car2}"/>
</bean>
<bean id="personInfo" class="cn.itcast.spring3.demo5.PersonInfo">
<property name="name" value="张三"/>
</bean>
SpEL : 集合属性的注入 – List(数组)
SpEL : 集合类型属性注入 – Set
SpEL : 集合类型属性注入 – Map
SpEL :集合类型属性注入 – Properties
综合案例
<bean id="collectionBean" class="cn.itcast.spring3.demo6.CollectionBean">
<!-- 注入List集合 -->
<property name="list">
<list>
<value>童童</value>
<value>小凤</value>
</list>
</property>
<!-- 注入set集合 -->
<property name="set">
<set>
<value>杜宏</value>
<value>如花</value>
</set>
</property>
<!-- 注入map集合 -->
<property name="map">
<map>
<entry key="刚刚" value="111"/>
<entry key="娇娇" value="333"/>
</map>
</property>
<property name="properties">
<props>
<prop key="username">root</prop>
<prop key="password">123</prop>
</props>
</property>
</bean>
多配置文件的加载
- 第一种写法:
- ApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean1.xml",”bean2.xml”);
- 第二种方法
- <import resource="applicationContext2.xml"/>