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
InitComponent的使用的更多相关文章
- ExtJS4中initComponent和constructor的区别
Ext的define方法参数类型define( String className, Object data, Function createdFn ) 创建自定义类时,先构造(constructor) ...
- [Ext JS 4] Extjs 它 initComponent 和 constructor差分
initComponent 和 constructor是什么 Extjs 提供的组件还是挺丰富的, 可是有时候需求更丰富. 当Extjs 原生的组件无法实现我们的要求的时候, 就须要扩展Extjs 的 ...
- 【ExtJS】关于constructor、initComponent、beforeRender
ExtJS提供的组件非常丰富,不过当原生的组件无法满足要求时,就需要扩展原生自定义组件了. initComponent 和 constructor 就是Extjs 提供用来实现继承和扩展的方式. 在E ...
- ExtJS 4.2 评分组件
上一文章是扩展ExtJS自带的Date组件.在这里将创建一个评分组件. 目录 1. 介绍 2. 示例 3. 资源下载 1. 介绍 代码参考的是 Sencha Touch 2上的一个RatingStar ...
- ExtJS 4.2 业务开发(三)数据添加和修改
接上面的船舶管理业务,这里介绍添加和修改操作. 目录 1. 添加操作 2. 修改操作 3. 在线演示 1. 添加操作 1.1 创建AddShipWindow.js 在业务中的view目录下创建一个Ad ...
- Js: Extensible Calendar Examples
http://ext.ensible.comhttps://github.com/bmoeskau/Extensiblehttps://github.com/TeamupCom/extensibleh ...
- ExtJS扩展:扩展grid
ExtJs的grid功能很强大,但是有时候觉得总是少那么一点点功能,我们就来扩展它,让它用起来更方便. 今天我们要扩展的是:根据记录的选择数量来禁用或启用grid toolbar上的某些按钮. 本文所 ...
- ExtJs4之TreePanel
Tree介绍 树形结构,是程序开发,不可缺少的组件之一.ExtJs中的树,功能强大美观实用.功能齐全,拖拉,排序,异步加载等等. 在ExtJs4中Tree和Grid具有相同的父类,因此Grid具有的特 ...
- c#写windows服务
序言 前段时间做一个数据迁移项目,刚开始用B/S架构做的项目,但B/S要寄存在IIs中,而IIs又不稳定因素,如果重启IIs就要打开页面才能运行项目.有不便之处,就改用Windows服务实现.这篇就总 ...
随机推荐
- 安装EKL
elasticsearch rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch /etc/yum.repos.d/ela ...
- sql distinct 去除重复的字段
居然已经有人写了 那我就直接复制其链接吧
- BASIC-16_蓝桥杯_分解质因数
代码示例: #include <stdio.h> int i = 0 ;int Primes(int a){ for (i = 2 ; i <= a/2 ; i ++) { if ( ...
- 执行Chrome自动化时--正在受到自动软件的控制的显示屏蔽
用selenium启动,浏览器出现‘Chrome正在受到自动软件的控制’ 屏蔽的方法: # coding:utf-8 from selenium import webdriver # 加启动配置 op ...
- java实验三——求平均数,数组排序(有关java保留小数位数,由于编译器版本未到1.5导致的报错format函数第二个参数不对,要求是Object[])
package hello; import java.util.Arrays; public class 实验三更正版 { public static void main(String[] args) ...
- 学习笔记之Redis
Redis https://redis.io/ redis.cn http://www.redis.cn/ Azure Redis Cache Documentation - Tutorials, A ...
- CentOS 静态IP设置&修改网卡名
一.CentOS版本查看的方法 1. lsb_release -a (若报命令找不到,直接yum install lsb –y) 2. cat /etc/redhat-release 二.CentOS ...
- Vcenter一次性将服务器四个网卡从端口组迁移到分布式交换机的方法
如果你的服务器已经在清单列表里了,那么可以先从分布式交换机将这台服务器删除,然后再添加一次.这个时候的添加就可以选择四个网卡(包括端口组,包括管理端口组),一次性加入分布式交换机
- Xss漏洞原理分析及简单的讲解
感觉百度百科 针对XSS的讲解,挺不错的,转载一下~ XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XS ...
- Django的DRF序列化方法
安装rest_framework -- pip install djangorestframework -- 注册rest_framework序列化 -- Python--json -- 第一版 用v ...