servlet中利用spring的注解@Autowired自动注入service失败,优雅的解决方法

来源:互联网 发布:笔记本风扇反转软件 编辑:程序博客网 时间:2024/05/23 23:36

一个项目启动时,有一些系统参数希望在web.xml加载时自动初始化:这时可以利用servlet的init方法,初始化系统参数到ServletContext。

但初始化参数时要用到一些service,如果想往常一样利用@Autowired注入service,就会在项目启动时此servlet的init方法会报错;解决这个注入失败的方法有很多,其中有一种方法感觉跟优雅,就是添加这条语句:SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, application);

public class SysParamInitServlet extends HttpServlet {@AutowiredSysParamService sysParamService;public void init() throws ServletException {super.init();ServletContext application = this.getServletContext();// 解决servlet用@Autowired自动注入service失败的问题SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, application);try {// Map<sysParamField, Map<sysParamValue, sysParamText>>application.setAttribute("sysParamMap", sysParamService.getParamMap());} catch (Exception e) {LogManager.getLogger(getClass()).error("严重!初始化系统参数失败。", e);e.printStackTrace();}}}


阅读全文
0 0