博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring 依赖注入到直接new 对象
阅读量:5008 次
发布时间:2019-06-12

本文共 1403 字,大约阅读时间需要 4 分钟。

 当为遗留系统加入spring时,经典问题就是遗留系统需要引用spring管理的bean。幸好spring有机制可以处理这些。

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

1 package net.blogjava.chenlb; 2  3 import org.springframework.beans.BeansException; 4 import org.springframework.context.ApplicationContext; 5 import org.springframework.context.ApplicationContextAware; 6  7 /** 8  * 此类可以取得Spring的上下文. 9  * Spring 使new方法创建的对象可以引用spring管理的bean.10  * 2007-10-18 上午11:12:3311  * @author chenlb12  */13 public class SpringContext implements ApplicationContextAware {14 15     protected static ApplicationContext context;16     17     public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {18         context = applicationContext;19     }20 21     public static ApplicationContext getContext() {22         return context;23     }24 25 }

2.然后在spring配置文件里加

 1 <bean id="springContext" class="net.blogjava.chenlb.SpringContext"></bean> 

3.其它类中引用

 

 1 MyBean myBean = (MyBean) SpringContext.getContext().getBean("myBean"); 

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

1 package net.blogjava.chenlb; 2  3 public class MyServerFactory { 4  5  6     public static MyBean1 getMyBean1() { 7         return (MyBean1) SpringContext.getContext().getBean("myBean1"); 8     } 9     10 }

 

转载于:https://www.cnblogs.com/tianhyapply/p/3677569.html

你可能感兴趣的文章
职业选择測试(A/B卷)
查看>>
关于如何使用three.js的小教程&lt;一&gt;
查看>>
json格式
查看>>
学习方法--提问
查看>>
Liunx Mkdir
查看>>
mac ios的c++11支持的问题
查看>>
Ajax访问Xml Web Service的安全问题以及解决方案
查看>>
构建互联网iOS应用
查看>>
那些被遗漏的Objective-C保留字
查看>>
简单的js模块加载
查看>>
Go学习笔记:Win7+LiteIDE+Go+Beego 环境搭建
查看>>
【转】编程的朋友们用的着的键盘键值汇总
查看>>
java 字符串反转
查看>>
CodeWar---将字符串转换为驼峰命名
查看>>
HTML
查看>>
(C++)字符串分割
查看>>
Vmware Vshere EXSI安装
查看>>
Intellij ideal 热部署
查看>>
转移顺序的艺术 luogu4394 + lougu2966 + luogu3537
查看>>
SVN 脚本
查看>>