Spring中Bean注入方式和注入类型
一、注入方式

二、注入类型
2.1List类型(使用set方法的属性注入)
1、业务实现类定义set方法:
java
package com.itheima.service.impl;
import com.itheima.service.UserService;
import java.util.List;
//@Service("userService")
public class UserServiceImpl2 implements UserService
{
@Override
public void show2() {
}
@Override
public void show1() {
// 打印集合
System.out.println(stringList);
}
// 注入集合
private List<String> stringList;
// 使用set方法注入(还还有一种就是通过构造注入)
public void setStringList(List<String> stringList) {
this.stringList = stringList;
}
}
2、xml中bean的配置:
java
<bean name="userService" class="com.itheima.service.impl.UserServiceImpl2">
<property name="stringList">
<list>
<!-- 由于是String类型,所以这里直接写value即可-->
<value>aaa</value>
<value>bbb</value>
<value>ccc</value>
</list>
</property>
</bean>
2.2List加对象引用:List
1、业务实现类定义set方法:
java
private List<UserDao> userDaoList;
public void setUserDaoList(List<UserDao> userDaoList) {
this.userDaoList = userDaoList;
}
2、直接在List中定义:
java
<bean name="userService" class="com.itheima.service.impl.UserServiceImpl2">
<property name="userDaoList">
<list>
<!-- 内部是对象,要么直接配要么ref引入-->
<bean class="com.itheima.dao.impl.UserDaoImpl"/>
<bean class="com.itheima.dao.impl.UserDaoImpl"/>
<bean class="com.itheima.dao.impl.UserDaoImpl"/>
<bean class="com.itheima.dao.impl.UserDaoImpl"/>
</list>
</property>
</bean>
3、在外面定义,List中直接引用
java
<bean name="userService" class="com.itheima.service.impl.UserServiceImpl2">
<property name="userDaoList">
<list>
<ref bean="userDao1"/>
<ref bean="userDao2"/>
<ref bean="userDao3"/>
<ref bean="userDao4"/>
</list>
</property>
</bean>
<bean name="userDao1" class="com.itheima.dao.impl.UserDaoImpl"/>
<bean name="userDao2" class="com.itheima.dao.impl.UserDaoImpl"/>
<bean name="userDao3" class="com.itheima.dao.impl.UserDaoImpl"/>
<bean name="userDao4" class="com.itheima.dao.impl.UserDaoImpl"/>
2.3Set类型
java
<property name="stringSet">
<set>
<value>yyy</value>
<value>zzz</value>
</set>
</property>
2.4Set类型
也是同理,使用set方法,这里只给出xml中bean的配置即可:
1、直接在Set中定义
java
<property name="userDaoSet">
<set>
<bean class="com.itheima.dao.impl.UserDaoImpl"/>
<bean class="com.itheima.dao.impl.UserDaoImpl"/>
<bean class="com.itheima.dao.impl.UserDaoImpl"/>
</set>
</property>
2、在外面定义,Set中直接引用
java
<property name="userDaoSet">
<set>
<ref bean="userDao1"/>
<ref bean="userDao2"/>
<ref bean="userDao3"/>
</set>
</property>
2.5Map<String,UserDao>类型
java
<property name="userDaoMap">
<map>
<entry key="m1" value-ref="userDao1"/>
<entry key="m2" value-ref="userDao2"/>
<entry key="m3" value-ref="userDao3"/>
</map>
</property>
2.6 Properties
java
<property name="properties">
<props>
<prop key="kk1">a1</prop>
<prop key="kk2">a2</prop>
<prop key="kk3">a3</prop>
</props>
</property>