spring框架监听ServletContext启动,并加入一些属性到ServletContext

第一步:

        在web.xml文件中配置spring的servletcontext监听文件以及自己写的servletcontext监听文件,自己写的servletcontext监听文件应放在spring文件之后,需要从spring容器内取对象。

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <listener >
        <listener-class>com.bytedance.crm.web.listener.ServletContext</listener-class>
    </listener>

第二步:在自己写的servletcontext监听类中继承ServletContextListener接口,重写其方法。注意,不能采用注解的形式注入DAO,会导致空指针异常,必须采用手动方式获取Bean。

public class ServletContext implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        String config = "applicationContext.xml";
        ApplicationContext context = new ClassPathXmlApplicationContext(config);
        DicTypeDao dicTypeDao = (DicTypeDao) context.getBean("dicTypeDao");
        DicValueDao dicValueDao = (DicValueDao) context.getBean("dicValueDao");

        List<DicType> list = dicTypeDao.selectAll();
        javax.servlet.ServletContext servletContext = servletContextEvent.getServletContext();
        for(DicType dicType: list){
            String code = dicType.getCode();
            List<DicValue> value= dicValueDao.selectValue(code);
            servletContext.setAttribute(code,value);
        }

    }

    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {

    }
}

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值