在项目中经常遇见需要在Listener中或者工具中使用Spring容器中的bean实例,由于bean不能在stataic的类中使用。
介绍一种方式:
public class SpringTool { public static Object getObjectFromApplication(HttpSession session,String beanName){ ServletContext servletContext= session.getServletContext(); //通过WebApplicationContextUtils 得到Spring容器的实例。 WebApplicationContext application=WebApplicationContextUtils.getWebApplicationContext(servletContext); //返回Bean的实例。 return application.getBean(beanName); } }
使用举例:
LoginService loginService=(LoginService) SpringTool.getObjectFromApplication(session, "loginService");
时间: 2024-10-12 15:47:56