Spring中自定义***——实现数据字典

Spring中自定义***——实现数据字典

一、JavaWeb中***类型

  JavaWeb***有三种***,分别是ServletContextListener,HttpSessionListener,ServletRequestListener;他们分别对应的作用域是Application、Session、Request,实现各自类型的接口即可实现***的创建。

二、使用方式(ServletContextLisenter为例)

package cn.krain.crm.web.listener;

/** * @author CC * @data 2020/8/1 - 22:28 */
public class SysInitLisenter implements ServletContextListener {
   

    @Override
    public void contextInitialized(ServletContextEvent sce) {
   
        System.out.println("-------------------start initServlet------------------");
		//...
        System.out.println("-------------------end initServlet-----------------");
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
   

    }
}

  可在contextInitialized和contextDestroyed方法中根据所要实现功能进行代码编写。

  • web.xml
<listener>
    <listener-class>***的类路径</listener-class>
</listener>

三、注意事项

  由于在SSM项目中使用Spring注解的方式创建对象,并且***在web.xml中最先被执行,因此在***方法执行时,无法进行bean的自动注入;可使用如下方法:

ApplicationContext context =
                WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());
//获取bean
typeDao =  context.getBean(DicTypeDao.class);
valueDao = context.getBean(DicValueDao.class);

  不使用getBean方法为所使用的的对象赋值时会报空指针异常,因为没有创建,对象无法正常使用,从而服务器无法正常启动(这个bug我改了一天,吐了);总结一下,希望能够帮到大家。

四、实现数据字典

  通过Application***可以实现数据字典。

  数据字典概念:即对于在数据库中不经常改变的数据,可以放入到application域中,直接使用,不用再从数据库中获取。

  服务器启动,执行***方法,通过使用对应数据的Dao层对象获取数据并放入到application域中,在页面上通过JSTL配合EL表达式直接使用。

  适合场景:比如网站中下拉列表中的数据,一般不会改变,加载页面时又需要用到,使用数据字典非常方便。

全部评论

相关推荐

10-07 20:48
门头沟学院 Java
听说改名就会有offer:可能是实习上着班想到后面还要回学校给导师做牛马,看着身边都是21-25的年纪,突然emo了了
点赞 评论 收藏
分享
11-13 20:32
门头沟学院 Java
面向未来编程code:我没看到他咋急,他不就问你个问题。。。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务