ContextLoaderListener 使用

1.做的是 javase 项目有 main 方法的,执行代码是执行 main 方法的,
在 main 里面创建的容器对象
ApplicationContext ctx = new ClassPathXmlApplicationContext(“applicationContext.xml”);

2.web 项目是在 tomcat 服务器上运行的。 tomcat 一起动,项目一直运行的。

需求:
web 项目中容器对象只需要创建一次, 把容器对象放入到全局作用域 ServletContext 中。

怎么实现:
使用监听器 当全局作用域对象被创建时 创建容器 存入 ServletContext

监听器作用:
1)创建容器对象,执行 ApplicationContext ctx = new ClassPathXmlApplicationContext(“applicationContext.xml”);
2)把容器对象放入到 ServletContext, ServletContext.setAttribute(key,ctx)

监听器可以自己创建,也可以使用框架中提供好的 ContextLoaderListener

private WebApplicationContext context;
public interface WebApplicationContext extends ApplicationContext

ApplicationContext:javase 项目中使用的容器对象
WebApplicationContext:web 项目中的使用的容器对象

把创建的容器对象,放入到全局作用域
key: WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE
WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE
value:this.context

servletContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, this.context);

作业要求:

  1. 使用 ajax 请求方式:获取服务器端定义的 还款方式, 获取最长的还款期数
  2. 点击保存,把计算结果,保存到数据库,使用 mybatis
  3. 整个项目使用 servlet ,spring + mybatis