Spring 无法注入静态变量,直接在静态方法中获取bean
2016-01-12 12:19
645 查看
模块中想把一个类写成工具类,提供静态方法调用。但是方法中要用到@autowire注入的dao类变量,它要能在静态方法中使用的话本身就加上static,但是static变量是无法用@autowire注入的。
换一种思路,为什么在要外层注入,在方法里面获取m也可以啊。你可以用@autowire这种注解自动把对象实例注入进来,这些实例是维护在getApplicationContext中的。手动去这里getBean出来就是了。
@Autowired private AppConfMapper m; public static Map getSysConf() { m.....; }
换一种思路,为什么在要外层注入,在方法里面获取m也可以啊。你可以用@autowire这种注解自动把对象实例注入进来,这些实例是维护在getApplicationContext中的。手动去这里getBean出来就是了。
public static Map getSysConf() { AppConfMapper appConfMapper = (AppConfMapper) BeanHoldFactory.getApplicationContext().getBean("appConfMapper"); List<Map> list = appConfMapper.getSysConf(); }这里BeanHoldFactory 实现了ApplicationContextAware,重写了setApplicationContext方法,里面存放了代码中所有使用注解(@Component,@Repository,@Service等)标注的类的实例,相当于放在spring容器中管理。
相关文章推荐
- Windows系统下查看JDK的版本和安装路径!
- Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(十)之Inner Classes
- 待翻译---- Understanding Spring MVC Model and Session Attributes
- [javase学习笔记]-9.2 单继承与多重继承
- Java进阶(二十二)使用FileOutputStream写入文件
- Java进阶(二十二)使用FileOutputStream写入文件
- java中创建新进程的两种方法
- MySQL与Eclipse或者MyEclipse的连接
- Spring MVC 中 怎样从一个Controller 方法跳转到另一个方法,注意是跳转,不是调用
- 你不知道的JAVA
- 让JAVA代码跑得更快
- Struts2中DMI(动态方法调用)的一些问题
- 【JavaWeb Structs2学习】 用Action接受参数
- 关于Eclipse 插件添加右键菜单的三种方法
- 【Java基础 1】Java2平台的三个版本介绍
- 【Java 理论篇 1】Java2平台的三个版本介绍
- Struts2配置详解_配置Action
- Spring学习笔记---2.1-IOC容器解析Bean配置信息
- 深入讲解Struts2的用法
- JAVA相对路径、绝对路径