(九)Spring2.5中Bean之间的相互引用

来源:互联网 发布:java入门书籍推荐排行 编辑:程序博客网 时间:2024/05/01 08:00

(一)UserDao类

package cn.yht.spring.i_beanproperty_ref;public class UserDao {private String dataSource; // 数据源,应是DataSource类型,这里只是模拟一下public void saveUser(Object user) {System.out.println("UserDao.saveUser()");}public String getDataSource() {return dataSource;}public void setDataSource(String dataSource) {this.dataSource = dataSource;}// ...}

(二)UserService类

package cn.yht.spring.i_beanproperty_ref;public class UserService {private UserDao userDao;public UserDao getUserDao() {return userDao;}public void setUserDao(UserDao userDao) {this.userDao = userDao;}// ...}

(三)applicationContext.xml配置文件

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"><bean id="userDao" class="cn.yht.spring.i_beanproperty_ref.UserDao"><property name="dataSource" value="dataSource1"></property></bean><!-- 配置UserService,需要依赖UserDao,使用ref属性指定 --><bean id="userService" class="cn.yht.spring.i_beanproperty_ref.UserService"><property name="userDao" ref="userDao"></property></bean><!-- 可以在property元素下使用子元素bean声明一个匿名的bean,只是给当前的属性设置使用。 这时不需要指定id或是name属性,指定了也是无效的。--><bean id="userService2" class="cn.yht.spring.i_beanproperty_ref.UserService"><property name="userDao"><bean class="cn.yht.spring.i_beanproperty_ref.UserDao"><property name="dataSource" value="dataSource2"></property></bean></property></bean></beans>

(四)MainTest测试类

package cn.yht.spring.i_beanproperty_ref;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class MainTest {@Testpublic void test() throws Exception {ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml", getClass()); UserDao userDao = (UserDao) ac.getBean("userDao2");UserService userService = (UserService) ac.getBean("userService2");System.out.println(userDao);System.out.println(userService);System.out.println("---");System.out.println(userService.getUserDao());System.out.println(userService.getUserDao() == userDao);}}




0 0