如何在servlet取得spring beans (autowired)
2015-08-06 15:35
651 查看
在应用中一般普通的JavaPojo都是由Spring来管理的,所以使用autowire注解来进行注入不会产生问题,但是有两个东西是例外的,一个是 Filter,一个是Servlet,这两样东西都是由Servlet容器来维护管理的,所以如果想和其他的Bean一样使用Autowire来注入的 话,是需要做一些额外的功夫的。
对于Filter,Spring提供了DelegatingFilterProxy,所以本文主要讲述Servlet的解决。
servlet ,會碰到無法讀到 spring 定義的annotation ,解法是:在 servlet的 init method中,,寫下面的程式,
讓 spring 去 ApplicationContext 做 lookup,看 ApplicationContext 有那些已經注入(inject) 的 Spring beans。
[java] view
plaincopy
public void init(ServletConfig config) throws ServletException {
super.init(config);
SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext());
}
這樣,就可以用 spring @Autowired 等的 annotation。
对于Filter,Spring提供了DelegatingFilterProxy,所以本文主要讲述Servlet的解决。
servlet ,會碰到無法讀到 spring 定義的annotation ,解法是:在 servlet的 init method中,,寫下面的程式,
讓 spring 去 ApplicationContext 做 lookup,看 ApplicationContext 有那些已經注入(inject) 的 Spring beans。
[java] view
plaincopy
public void init(ServletConfig config) throws ServletException {
super.init(config);
SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext());
}
這樣,就可以用 spring @Autowired 等的 annotation。
相关文章推荐
- eclipse和NetBeans环境下运行JNA操作备忘
- 【Hades】ades是一个开源库,基于JPA和Spring构建,通过减少开发工作量显著的改进了数据访问层的实现
- 对于多线程两种方式的理解
- Java学习笔记-------使用DataOutputStream 、DataInputStream 组合实现C/S通信 :实例
- Java可变参数个数方法
- MyEclipse中使用JUnit进行单元测试
- java String s = null; & String s="";
- 记录Java学习过程之坦克大战1
- Spring.Net学习笔记九(自定义对象行为)
- StringTokenizer
- 图解Spring框架的设计理念与设计模式
- Eclipse 4.5.0 离线安装 Veloeclipse 插件
- 【hibernate】spring+ jpa + hibername 配置过程遇到的问题
- Java笔试题及答案
- Java 连接数据库的JDBC
- java泛型
- Java中实现用户点击关闭窗口按钮后提示用户,选择“是”后退到父窗口,选择“否”留在原窗口
- JAVA学习篇--Java类加载
- java中Collections.sort的用法
- Spring.Net学习笔记八(方法的注入)