1、建立InitListener.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
package app.util;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import org.jboss.logging.Logger;
import org.springframework.web.context.ContextLoader;
import org.springframework.web.context.WebApplicationContext;
import com.test.ResourceService;
/**
* 加载数据到内存案例
* @author 浅陌
*
*/
public class InitListener extends HttpServlet implements ServletContextListener {
/**
*
*/
private static final long serialVersionUID = 1L;
public static Map<String, Object> contextMap= new HashMap<String,Object>();
private Logger logger = Logger.getLogger(InitListenerMobileResourceTree. class );
public void init() throws ServletException{
// logger.info("====初始化方法运行初完毕====");
}
@Override
public void contextDestroyed(ServletContextEvent arg0) {
logger.info( "this is last destroyeed " );
}
@Override
public void contextInitialized(ServletContextEvent sce) { //获取要加载的数据方法
try {
/*
*如果在获取数据时用到其他项目包中的接口,可以用如下方法
* WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
* ResourceService resourceService = (ResourceService) wac.getBean("resourceService");// 跑批接口的实现类
* 在springMVC.XML 中加入
* <bean id="resourceService" class="com.test.ResourceService" />
*/
String JsonStr = 获取加载出来的数据(类型视情况而定)
//将数据放到定义好的contextMap中
contextMap.put( "JsonStr" , JsonStr);
} catch (Exception e) {
e.printStackTrace();
}
logger.info(contextMap);
}
}
|
2.配置web.xml
1
2
3
|
< listener >
< listener-class >app.util.InitListener</ listener-class >
</ listener >
|
3.获取内存中的数据
InitListener.contextMap.get("JsonStr");
补充知识:java 字节流——将硬盘中的文件读到内存中,将内存中的数据写入硬盘中
我就废话不多说了,大家还是直接看代码吧~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
package com.oracle.core;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class ByteStream_Study
{
public static void main(String[] args) throws IOException
{
// 输入流
//从硬盘到内存,文件必须存在
InputStream in= new FileInputStream( "D:\\hello.txt" );
//1.分配一块内存空间 临时的空间 存放我文件的数据
byte [] b= new byte [in.available()];
//2.将数据读入到内存空间
in.read(b);
//3.将数据转换为字符串
//如果编码是UTF-8 可以省略
String s= new String(b, "GBK" );
System.out.println(s);
in.close();
// 输出流
//从内存到硬盘
//文件不存在 输出流会自动创建这样一个文件
OutputStream out= new FileOutputStream( "D:\\haha.txt" );
String s1= "再见" ;
//输入还是输出流 操作的都是内存空间 字节数组
out.write(s1.getBytes());
out.close();
}
}
|
以上这篇java 将数据加载到内存中的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/nicolewjt/article/details/88293237