IoC 中 car 对象的配置如下,现在要添加 user 对象,并且将 car 注入到 user 中,正确的配置是?
<bean id="car" class="com.southwind.entity.Car"></bean>
Spring三种注入
设值注入--注入方式1/3
<bean id="user" class="com.cosmos.entity.User">
<!-- 注入List集合(不重复,有序) -->
<property name="list1" >
<list>
<value>123</value>
<value>124</value>
</list>
</property>
<!-- 注入Set集合(重复无序) -->
</bean>
通过property来实现给对象的属性赋值。
构造注入--注入方式2/3
创建带参构造方法
编写带参构造方法后,Java虚拟机不再提供默认的无参构造方法,为了保证使用的灵活性,建议自行添加一个无参构造方法。
怎么实现构造呢?
<bean id="userServiceImpl" class="com.cosmos.service.impl.UserServiceImpl">
<constructor-arg>
<ref bean="userDao"/>
</constructor-arg>
</bean>
构造注入和设值注入区别在于设值注入使用setter方法给属性设值,而构造注入则是将属性通过有参构造来初始化属性值。
P命名空间注入--注入方式3/3
p命名空间的特点:使用属性而不是子元素的形式配置Bean的属性,从而简化了配置代码。
语法:
对于直接量(基本数据类型、字符串)属性:p:属性名=“属性值”
对于引用Bean的属性:p:属性-ref=”Bean的id”
使用前要先在Spring配置文件中引入p命名空间
Xmlns:p=”http://www.springframework.org/schema/p”
使用p命名空间注入属性值
<bean id="user" class="com.cosmos.entity.User" p:name="张三" p:age="21" p:email="raycosmos@qq.com">
</bean>
<bean id="userServiceImpl" class="com.cosmos.service.impl.UserServiceImpl" p:dao-ref="userDaoImpl">
<property name="dao" ref="userDaoImpl"></property>
</bean>