zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Web上传大文件的解决方案
    JS上传大文件的解决方案
    网页上传大文件的解决方案
    B/S上传大文件的解决方案
    Unity UGUI——提供可视功能的UI组件(Text)
    Java设计模式透析之 —— 策略(Strategy)
    【边做项目边学Android】小白会遇到的问题--Appcompat_V7问题
    高度平衡树 -- AVL 树
    成长这事儿,不可不说-------Day36
    Cocos2D-X2.2.3学习笔记5(UI系统)
  • 原文地址:https://www.cnblogs.com/duanwandao/p/9533246.html
Copyright © 2011-2022 走看看