随笔-153  评论-235  文章-19  trackbacks-0
      当为遗留系统加入spring时,经典问题就是遗留系统需要引用spring管理的bean。幸好spring有机制可以处理这些。

建一个类实现ApplicationContextAware接口,有一个引用ApplicationContext的静态成员,然后,遗留系统需要引用spring管理的bean的地方,使用这个类。

1.比如:我这里建一个SpringContext类

package net.blogjava.chenlb;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

/**
 * 此类可以取得Spring的上下文.
 * Spring 使new方法创建的对象可以引用spring管理的bean.
 * 2007-10-18 上午11:12:33
 * 
@author chenlb
 
*/
public class SpringContext implements ApplicationContextAware {

    
protected static ApplicationContext context;
    
    
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        context 
= applicationContext;
    }

    
public static ApplicationContext getContext() {
        
return context;
    }

}

2.然后在spring配置文件里加
<bean id="springContext" class="net.blogjava.chenlb.SpringContext"></bean>

3.其它类中引用
MyBean myBean = (MyBean) SpringContext.getContext().getBean("myBean");

4.如果老是写SpringContext.getContext().getBean("...");麻烦,可以建一个工厂类来返回你要的bean
package net.blogjava.chenlb;



public class MyServerFactory {


    
public static MyBean1 getMyBean1() {
        
return (MyBean1) SpringContext.getContext().getBean("myBean1");
    }
    

}


^_^

posted on 2007-10-27 16:31 流浪汗 阅读(13191) 评论(1)  编辑  收藏 所属分类: Spring

评论:
# re: spring 依赖注入到直接new 对象[未登录] 2011-05-17 17:20 | li
正好解决了静态类需要使用注入对象的问题  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: