Bean的依赖注入配置
- Bean的依赖注入方式
-
注入方式 配置方式 通过Bean的set方法注入 <property name="userDAO" ref="userDAO"/> <property name="userDAO" value="userDAO"/>
通过构造Bean的方法进行注入 <constructor-arg name="userDAO" ref="userDAO"/> <constructor-arg name="userDAO" value="userDAO"/>
-
其中,ref是reference的缩写形式,翻译为:涉及,参考的意思,用于引用其它Bean的id,value用于指定属性值
-
-
-
注入数据类型
-
普通数据类型:String、int、boolean,通过value属性指定
-
引用数据类型:UserDAOImpl,通过ref属性指定
-
集合数据类型:List、Map、Properties等
-
普通数据类型的集合
-
配置文件
-
<bean name="UserService" class="com.example.Service.Impl.UserServiceImpl"><property name="stringList"><list><value>aaaa</value><value>bbbb</value><value>cccc</value></list></property></bean>
-
-
-
引用数据类型的集合
-
配置文件(两种方式都可以)
-
<property name="DAOList"><list><ref bean="DAO1"></ref><ref bean="DAO2"></ref><ref bean="DAO3"></ref><ref bean="DAO4"></ref></list></property></bean><bean name="DAO1" class="com.example.DAO.Impl.UserDAOImpl"></bean><bean name="DAO2" class="com.example.DAO.Impl.UserDAOImpl"></bean><bean name="DAO3" class="com.example.DAO.Impl.UserDAOImpl"></bean><bean name="DAO4" class="com.example.DAO.Impl.UserDAOImpl"></bean>
-
<property name="DAOList"><list><bean name="DAO1" class="com.example.DAO.Impl.UserDAOImpl"></bean><bean name="DAO2" class="com.example.DAO.Impl.UserDAOImpl"></bean><bean name="DAO3" class="com.example.DAO.Impl.UserDAOImpl"></bean><bean name="DAO4" class="com.example.DAO.Impl.UserDAOImpl"></bean></list></property>
-
-
bean的对应类
-
package com.example.Service.Impl;import com.example.DAO.UserDAO; import com.example.Service.UserService;import java.util.List;public class UserServiceImpl implements UserService {private List<String> stringList;private List<UserDAO> DAOList;public void setStringList(List stringList) {this.stringList = stringList;}public void setDAOList(List daoList) {this.DAOList = daoList;}public void showStringList() {System.out.println(stringList);System.out.println(DAOList);}}
-
-
测试代码
-
package com.example.Test;import com.example.Service.Impl.UserServiceImpl; import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestApplicationContext {public static void main(String[] args) {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("application.xml");UserServiceImpl userServiceImpl = (UserServiceImpl) context.getBean("UserService");userServiceImpl.showStringList();} }
-
-
运行结果
-
-