1.在web.xml中配置监听,注意:要配置在Spring加载之后
<context-param> <description>是否缓存字典(配置值:true,false)</description> <param-name>cache_wangxuegang</param-name> <param-value>true</param-value> </context-param> <context-param> <description>缓存字典Json变量名</description> <param-name>wangxuegangJsonsKey</param-name> <param-value>wangxuegang</param-value> </context-param> <context-param> <description>缓存字典List变量名</description> <param-name>wangxuegangListsKey</param-name> <param-value>wangxuegangList</param-value> </context-param> <!-- Spring Context Loader Listener define --> <listener> <description>业务代码装载监听器</description> <listener-class>com.wangxuegang.listener.WangxuegangApplicationListener</listener-class> </listener>
2.创建WangxuegangApplicationListener类实现ServletContextListener接口
package com.wangxuegang.listener; import java.util.List; import java.util.Map; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.context.support.WebApplicationContextUtils; /** * * @Description 内存中加载数据字典 * @author wangxuegang * @date 2018年11月15日 * @version V1.0 * =================Modify Record================= * @Modifier @date @Content * */ public class WangxuegangApplicationListener implements ServletContextListener { private static final Logger logger = LoggerFactory.getLogger(WangxuegangApplicationListener.class); @Override public void contextInitialized(ServletContextEvent sce) { logger.info("开始加载数据缓存..."); //获取业务Service //WangxuegangService wangxuegangservice = WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext()).getBean(WangxuegangService.class); //wangxuegang(sce.getServletContext(),wangxuegangservice); logger.info("初始化字典数据成功..."); } /** * * @Description 查询数据库字典 * @author wangxuegang * @date 2018年11月22日 * @param servletContext */ private void wangxuegang(ServletContext servletContext,WangxuegangService wangxuegangservice) { //是否开启数据字典加载缓存 String cache =servletContext.getInitParameter("cache_wangxuegang"); if("true".equals(cache)){ //获取key String JsonsKey =servletContext.getInitParameter("wangxuegangJsonsKey"); String ListsKey =servletContext.getInitParameter("wangxuegangListsKey"); Wangxuegang wangxuegang = wangxuegangservice.getWangxhegang(); List<Wangxuegang> wangxuegangList = wangxuegangservice.getWangxhegangList(); servletContext.setAttribute(JsonsKey, wangxuegang); servletContext.setAttribute(ListsKey, wangxuegangList); } } @Override public void contextDestroyed(ServletContextEvent sce) { } }
3.Wangxuegangcontroller层,在内存中取值
request.getSession.getServletContext().getAttribute("JsonsKey");
request.getSession.getServletContext().getAttribute("ListsKey");
相关推荐
博客地址:... 1. 启动后访问http://localhost:8848/code,可见控制台输出codeMap中的值 2. 新建一个只有key和value两个字段的表code 3. 不要轻易浪费积分下载代码,没什么实质内容
3. **编码过程**:遍历输入数据,找到最长的已存在于字典中的序列,输出其编码,并将新序列(当前序列加下一个字符)添加到字典中。 4. **编码转换**:将编码转换为可存储的格式,如二进制,以便写入输出文件。 5. *...
- **隐式初始化**:使用`new`关键字为数组分配内存。 ```java int[] arr = new int[5]; // 初始化5个整型元素 ``` **数组的遍历**: - 使用循环遍历数组中的元素。 ```java for (int i = 0; i ; i++) { ...
它们组合成第一个基本字符串,如果字典中没有这个字符串,就将它添加到字典中,当前前缀写入代码流,当前码作为新的当前前缀。接着,读取下一个字符作为新的当前码,以此类推。如果在字典中找到了当前前缀和当前码...
1. **初始化字典**: 在LZW算法开始时,字典包含所有单个字符,通常是256个ASCII字符。每个字符对应一个唯一的编码,范围从1到256。 2. **输入处理**: 遍历输入数据流,将连续的字符组合成一个字符串。在Java和...
1. 初始化:创建根节点并开始构建树。 2. 插入操作:接收一个字符串,逐字符插入到树中,更新相应的子节点。 3. 查找操作:输入一个字符串,沿路径查找,如果到达终端节点则表示存在,否则不存在。 4. 删除操作:...
解压缩过程中也需要一个字典,但初始状态为空,每次读取编码后,根据编码从字典中取出字符串,并将其与前一个解码后的字符串合并,形成新的字符串并添加到字典中。 5. **数据流操作**:在Java中,可以使用`...
1. 初始化:创建一个空的字典,通常用一个数组或哈希表表示,用于存储已编码的字符串及其对应的编码。 2. 输入处理:对于用户输入的任意字符串,将其转换为二进制形式。在Java中,这可以通过将每个字符转换为其ASCII...
1. **初始化**:创建`A[]`和`B[]`数组,初始大小通常设置为256(ASCII字符集)或65536(Unicode字符集)。 2. **构建过程**:遍历排序后的字符串,对每个字符进行插入操作,更新`A[]`和`B[]`。插入过程中需考虑如何...
1. **构建字典**:初始化一个空的字典,通常包含所有可能的单字符字典项。 2. **读取输入数据**:从输入文件中逐位读取数据。 3. **编码过程**:如果当前字典中存在与已读取的前缀匹配的字串,则将该字串的索引输出...
- 数据类型初始化和赋值涉及到值类型的传递以及对象类型的引用。 - **值类型**: 当进行赋值操作时,实际复制的是该值的一个副本。 - **对象类型**: 赋值时复制的是对象的引用。 6. **Unicode编码**: - Java使用...
理解数组的创建、初始化、遍历和操作方法至关重要。 2. **链表(LinkedList)**:链表是一种动态数据结构,每个节点包含数据和指向下一个节点的引用。Java中的LinkedList类实现了List接口,提供了插入、删除和访问...
1. **创建与赋值**:创建串通常通过初始化来完成,例如在C++中`std::string str = "Hello, World!";`。赋值则是将一个已有的串的值赋予另一个串,如`str = "New String"`。 2. **比较**:串之间的比较可以是基于...
或者说把校验的工作向前做(数据的初始化,在部署系统的过程中进行)。即:在页面加载的时候数据只调用提供的public方法进行校验。使用内存中的数组和字典来快速查找学生选课记录,提高了查询效率。 在这个实例代码...
- 初始化数组可以在声明时完成,如`int[] array = {1, 2, 3};` - Java提供了边界检查,避免数组越界访问,这是与C/C++的一个重要区别。 2. **多维数组**: - 多维数组是数组的数组,如二维数组`int[][] ...
- **数据字典缓存(Data Dictionary Cache)**:存储数据库对象的元数据信息。 - **共享池(Shared Pool)**:包含SQL语句的解析树和PL/SQL代码。 - **大型池(Large Pool)**:用于RMAN备份、排序和大块I/O操作...
#### 初始化参数查询示例 为了查看当前Oracle实例中这些参数的具体值,可以执行如下SQL命令: ```sql SELECT NAME, VALUE FROM v$parameter WHERE NAME IN ( 'sga_max_size', 'db_cache_size', 'shared_pool_...