static方法中调用接口,SpringContextUtil工具类实现
2014-11-07 19:01
633 查看
1.先写个工具类,实现ApplicationContextAware接口,然后他会把ApplicationContext对象传给你,在setApplicationContext方法里已经把ApplicationContext传给你了,然后去完成初始化。
2.applicationContext也需要注入否则报NullPointException,在spring配置文件applicationContext.xml中配置如下:
<bean id="springContextUtil"class="com.sinosoft.sepmis.util.SpringContextUtil"lazy-init="false"></bean>
3.在代码中使用:
4.注意:
解释下第2条中配置为啥要加 lazy-init="false"
在你的spring配置文件中一般会有default-default-lazy-init="true" 这句话。该属性默认为false状态,这样导致spring在启动过程导致在启动时候,会默认加载整个对象实例图,从初始化ACTION配置、到service配置到dao配置、乃至到数据库连接、事务等等。spring的启动会很慢所以在开发时都会改为true,延迟加载,然后就是会报NullPointException。
注入 加上lazy-init="false" 可以保证 立即加载。
public class SpringContextUtil implementsApplicationContextAware{ private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContextapplicationContext){ SpringContextUtil.applicationContext =applicationContext; } public static ApplicationContextgetApplicationContext(){ return applicationContext; } public static Object getBean(String name) throwsBeansException{ return applicationContext.getBean(name); } }
2.applicationContext也需要注入否则报NullPointException,在spring配置文件applicationContext.xml中配置如下:
<bean id="springContextUtil"class="com.sinosoft.sepmis.util.SpringContextUtil"lazy-init="false"></bean>
3.在代码中使用:
private static LoggerUtilService loggerUtilService; loggerUtilService =(LoggerUtilService)SpringContextUtil.getBean("loggerUtilService");
4.注意:
解释下第2条中配置为啥要加 lazy-init="false"
在你的spring配置文件中一般会有default-default-lazy-init="true" 这句话。该属性默认为false状态,这样导致spring在启动过程导致在启动时候,会默认加载整个对象实例图,从初始化ACTION配置、到service配置到dao配置、乃至到数据库连接、事务等等。spring的启动会很慢所以在开发时都会改为true,延迟加载,然后就是会报NullPointException。
注入 加上lazy-init="false" 可以保证 立即加载。
相关文章推荐
- Spring中的ContextLoaderListener(Web项目的起始节点)和ApplicationContextAware接口实现Spring工具类
- Spring之Bean实现了ApplicationContextAware等aware接口,对于setApplicationContext方法执行时间点的说明
- 通过字符创调用接口中实现类的方法,SpringBean自动注入,
- 传统方法左边接口,右边实现类,spring如何通过接口来调用类,又如何去确定是哪一个类
- SpringContextUtil工具类实现
- 《pro Spring》学习笔记之Spring HTTP 远程方法调用集成Tomcat实现安全验证
- csp接口实现中调用FuncReturnhWnd异常 解决方法
- 关于Java中Scanner对象的hasNext()方法对实现Readable接口的对象中的read()方法调用的探讨
- js 调用后台方法 ICallbackEventHandler 接口实现局部刷新实例 ClientScript的GetCallbackEventReference方法实现局部刷新
- java接口类型变量能调用已经被实现的这个接口的方法吗
- spring实现远程方法调用
- 通过接口引用访问实现比正常的方法调用开销大
- 实现接口的实现类,实现类方法调用
- 接口回调的原理:接口变量 调用 被类实现的接口的方法
- spring实现远程方法调用
- Android获取其他包的Context,反射实现方法调用
- 一种获取spring环境上下文方法:SpringContextUtil
- 实现ApplicationContextAware的实例会自动调用setApplicationContext()方法
- 一种获取spring环境上下文方法:SpringContextUtil
- (2013-5-5日记)实现接口后 接口型变量调用方法浅析