• InitComponent的使用


    网页中的数据,有些是不在网页上改变的,像一些个人信息,比如:头像,当前用户名,友情链接等等,每次请求该页面都要重新加载,这样很消耗服务器资源,会降低服务器的性能,这个时候我们可以把这些不变的信息,统一放到application中,当用户登录时候,就加载到application中,当重新加载使用该信息的页面时,只要在application中获取就可以。具体的做法如下:

    新建一个 InitComponent实现类,实现ServletContextListener接口,也同时实现ApplicationContextAware这个接口(这个接口是spring提供的,可以获取applicationContext,)

    实现ServletContextListener接口的两个方法:contextDestroyed:不需要操作。

    contextInitialized:在初始化的动作:

    通过它传进来的参数的getServletContext()方法获取到application

    通过实现ApplicationContextAware接口的setApplicationContext方法获取到applicationContext,在通过applicationContext获取到指定的bean,就可以把指定的bean的值放到application中,前台只需从application中获取即可。

    @Component
    public class InitComponent implements ServletContextListener,ApplicationContextAware{
     
        private static ApplicationContext applicationContext;
        @Override
        public void contextInitialized(ServletContextEvent sce) {
            ServletContext application = sce.getServletContext();
            applicationContext.getBean("指定的bean");
            application.setAttribute(把从bean获取的数据放入application中)
     
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
            this.applicationContext=applicationContext;
    }

    在web.xml中配置:监听器就行了。

    <listener>
            <listener-class>InitComponent路径</listener-class>
    </listener>

    注意:在你定义的InitComponent 类,加注解:@Component才可以,spring才会把他当作bean加载。

    转载出处 https://blog.csdn.net/qq_27163329/article/details/81906020

  • 相关阅读:
    C#关于MSMQ通过HTTP远程发送专有队列消息的问题
    ASP.NET中进行消息处理(MSMQ) 三
    ASP.NET中进行消息处理(MSMQ) 二
    ASP.NET中进行消息处理(MSMQ) 一
    日志插件 log4net 的使用
    在64位windows下使用instsrv.exe和srvany.exe创建windows服务
    Windows下MemCache多端口安装配置
    把页面上DIV元素生成图片
    memcached协议
    没钱买珍珠首饰,能够画一个
  • 原文地址:https://www.cnblogs.com/duanwandao/p/9533246.html
Copyright © 2020-2023  润新知