如何在servlet取得spring beans (autowired)(转)
2015-10-16 11:27
363 查看
在应用中一般普通的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。
這樣,就可以用 spring @Autowired 等的 annotation。
对于Filter,Spring提供了DelegatingFilterProxy,所以本文主要讲述Servlet的解决。
servlet ,會碰到無法讀到 spring 定義的annotation ,解法是:在 servlet的 init method中,,寫下面的程式,
讓 spring 去 ApplicationContext 做 lookup,看 ApplicationContext 有那些已經注入(inject) 的 Spring beans。
public void init(ServletConfig config) throws ServletException { super.init(config); SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext()); }
這樣,就可以用 spring @Autowired 等的 annotation。
相关文章推荐
- [转] Java中的访问控制
- Hbase pom.xml 里面可能夹着Spring 的jar..懒得删
- Java复用代码
- JAVA权限修饰符(public/protected/private)
- JAVA配置文件取值方法
- Spring Maven POM.xml
- Java
- [转] JAVA的Random类
- java基础第7天
- java书籍阅读清单
- [转] Java中的容器
- 【Struts2学习笔记(4)】指定需要Struts 2请求后缀的常量定义复杂的过程
- 0 java的运行环境及配置
- 如何在Eclipse中删除我们复制的代码中含有的行号
- java爬虫
- JSON对象和Java对象互相转换
- 登录过滤器(Struts2)
- Java transient Volatile关键字
- SpringMVC 多控制器,静态资源访问,配置文件位置更改
- Java实现给定任一字符串,长度为任意,要求找出其出现次数最多的字符及其出现次数。