获取Spring的上下文环境ApplicationContext的方式
来源:互联网 发布:mysql gbk utf8 区别 编辑:程序博客网 时间:2024/05/16 11:54
获取Spring的上下文环境ApplicationContext的方式
Web项目中发现有人如此获得spring的上下环境:
public class SpringUtil {public static ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); public static Object getBean(String serviceName){ return context.getBean(serviceName); }}
在web项目中这种方式非常不可取!!!
分析:
首先,主要意图就是获得Spring上下文;
其次,有了Spring上下文,希望通过getBean()方法获得Spring管理的Bean的对象;
最后,为了方便调用,把上下文定义为static变量或者getBean方法定义为static方法;
但是,在web项目中,系统一旦启动,web服务器会初始化Spring的上下文的,我们可以很优雅的获得Spring的ApplicationContext对象。
如果使用
new ClassPathXmlApplicationContext(“applicationContext.xml”);
相当于重新初始化一遍!!!!
也就是说,重复做启动时候的初始化工作,第一次执行该类的时候会非常耗时!!!!!
正确的做法是:
@Componentpublic class SpringContextUtil implements ApplicationContextAware { // Spring应用上下文环境 private static ApplicationContext applicationContext; /* * 实现了ApplicationContextAware 接口,必须实现该方法; *通过传递applicationContext参数初始化成员变量applicationContext */ public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { SpringContextUtil.applicationContext = applicationContext; } public static ApplicationContext getApplicationContext() { return applicationContext; } @SuppressWarnings("unchecked") public static <T> T getBean(String name) throw BeansException{ return (T) applicationContext.getBean(name); }}
注意:这个地方使用了Spring的注解@Component,如果不是使用annotation的方式,而是使用xml的方式管理Bean,记得写入配置文件
<bean id="springContextUtil" class="com.ecdatainfo.util.SpringContextUtil" singleton="true" />
其实
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
这种方式获取Sping上下文环境,最主要是在测试环境中使用,比如写一个测试类,系统不启动的情况下手动初始化Spring上下文再获取对象!
阅读全文
0 0
- 获取Spring的上下文环境ApplicationContext的方式
- 获取Spring的上下文环境ApplicationContext的方式
- 获取Spring的上下文环境ApplicationContext的方式
- 获取Spring的上下文环境ApplicationContext的方式
- 获取Spring的上下文环境ApplicationContext的方式
- 获取Spring的上下文环境ApplicationContext的方式
- 获取Spring的上下文环境ApplicationContext的方式
- 获取Spring的上下文环境ApplicationContext的方式
- 十二种获取Spring的上下文环境ApplicationContext的方法
- 获取Spring的上下文环境ApplicationContext请注意!!
- 获取Spring上下文ApplicationContext的多种方法
- spring 获取上下文applicationContext
- 获取sping上下文对象(ApplicationContext)的几种方式
- Spring加载applicationContext.xml应用上下文的方式
- 获取spring的ApplicationContext几种方式
- 获取spring的ApplicationContext几种方式
- 获取spring的ApplicationContext几种方式
- 获取spring的ApplicationContext几种方式
- CF830C:Bamboo Partition(数学)
- Best Time to Buy and Sell Stock1/2/3/4
- java多线程之并行框架ForkJoin
- Java的依赖注入(控制反转)
- Failed to resolve:com.android.support:percent:26.0.0
- 获取Spring的上下文环境ApplicationContext的方式
- 第十天学习java关于string和stringbuffer的使用
- 获取斗鱼图片
- AIX 操作系统中AIO、DIO、CIO 的相关概念介绍 (二)
- iptables详解
- Big Data (1)
- spring和redis集成
- CountDownLatch 讲解
- zero to HERO