在最近的项目中 使用spring框架的ioc 容器时,在web项目中总是获取不到正确的对象
都为null
其主要原因为springioc容器与 web的servlet容器并不是相同的
在建立好ioc容器中的bean之后 并不能 将其对象传递给 servlet容器
导致在获取时均为空
处理代码如下
web.xml
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-config.xml</param-value>
</context-param>
登录servlet
HttpServletRequest httpRequest = (HttpServletRequest)request;
HttpSession session = httpRequest.getSession();
ApplicationContext applicationContext =
WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
if(session.getAttribute("application")==null){
session.setAttribute("application",applicationContext);
}
user = (user)applicationContext.getBean("usermodel");
此处获取session 判断是否或得ioc容器 没有则将其加入session域 ,接下来就可以通过getbean获取到正确的对象了