如何在servlet取得spring beans
展开全部
在应用中一般普通的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 plain copy
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 plain copy
public void init(ServletConfig config) throws ServletException {
super.init(config);
SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext());
}
这样,就可以用 spring @Autowired 等的 annotation。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询