Tuesday, November 1, 2011

如何在servlet取得spring beans (autowired)


servlet ,會碰到無法讀到 spring 定義的annotation ,解法是:在 servlet的 init method中,,寫下面的程式,
讓 spring 去 ApplicationContext 做 lookup,看 ApplicationContext 有那些已經注入(inject) 的 Spring beans。
   1: public void init(ServletConfig config) throws ServletException {
   2:     super.init(config);
   3:     SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext());
   4: }

這樣,就可以用 spring @Autowired 等的 annotation。

參考來源:

http://stackoverflow.com/questions/467235/access-spring-beans-from-a-servlet-in-jboss