一个能hold住前后端的java程序员

启动项目时,将数据存到内存里,然后在运行过程中可以修改这个存在内存中的数据。

最近在做微信公众平台的开发,现在弄项目和微信客户端的信息交互,要做到客户发消息了项目后台系统就要有消息提醒,所以一开始做的是每隔一段时间就去刷新一次然后去看看数据库中的值有没有变化,但是这样频繁的读取数据库,会造成连接池站满了,也不知道为什么不会释放链接,所以就想到了,每次刷新不去访问数据库,只有当数据发生改变后再访问数据库。

public class InitDataListener implements InitializingBean, ServletContextAware {

@Resource
private AttriService attriService;
@Override
public void setServletContext(ServletContext arg0) {
List<Attri> attriLst = attriService.getAttriLst();
arg0.setAttribute("attriLst", attriLst);

   ServletContext也是和session一样像一张表,分为属性、值

      添加属性:setAttribute(String name,Object obj);
      得到值:getAttribute(String name);
      删除属性:removeAttribute(String name); 

      生命周期

      ServletContext中的属性的生命周期从创建开始,到服务器关闭而结束

}
@Override
public void afterPropertiesSet() throws Exception {
// 在这个方法里面写 初始化的数据也可以。
}
}

配置文件里写上这个

<!-- spring系统启动以后,会先加载该类 -->
<bean class="你的包路径.InitDataListener">
</bean>

评论

© JiMoer | Powered by LOFTER