在Servlet中可访问Spring bean对象,但是不能直接以注入的方式引用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Servlet中可访问Spring bean对象,但是不能直接以注入的方式引用相关的知识,希望对你有一定的参考价值。
在Servlet中使用注解的方式引用Spring bean对象,会报空指针,因此可以在init()方法中通过WebApplicationContextUtils.getWebApplicationContext(servletContext)获取Spring,
代码如下:
package zttc.itat.user.servlet; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import org.apache.log4j.Logger; import org.jbpm.api.RepositoryService; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; public class InitJbpmProcessServlet extends HttpServlet { private static final long serialVersionUID = 1L; //@Autowired //RepositoryService repositoryService; public InitJbpmProcessServlet() { super(); } public void init() throws ServletException { Logger logger = Logger.getLogger(this.getClass()); try { ServletContext servletContext = this.getServletContext(); WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext); RepositoryService repositoryService = (RepositoryService) ctx.getBean("repositoryService"); //流程部署 repositoryService.createDeployment().addResourceFromClasspath("leave.jpdl.xml").deploy(); logger.info("---流程加载结束---"); } catch (Exception e) { e.printStackTrace(); } } }
以上是关于在Servlet中可访问Spring bean对象,但是不能直接以注入的方式引用的主要内容,如果未能解决你的问题,请参考以下文章
如何使用spring的autowire为servlet注入bean
Spring Service Bean 作为 Servlet