【原创】SSH开发框架中,实现系统启动加载类,读取数据库常用数据进入内存,利用Spring托管,并完成reload功能
来源:互联网 发布:高德地图端口修改工具 编辑:程序博客网 时间:2024/05/21 04:00
各位看官,请做好心理准备,这个帖子会很长,因为小弟已经做好写很长的准备。
现在说一下需求,这次的项目是做一个水产养殖相关的项目,系统开启以后很多地方要用到数据库里的字典数据,比如部门表,养殖对象表,这些数据是可变的,但是变化频率很小,所有每次用到的时候都去数据库取数据很明显的是对资源的浪费,所以想按照以前的方法把数据从数据库里读取出来,放到内存,每次用到的时候直接去内存找就可以了。想法应该是正确的,可是用到了SSH框架,做起来就有点小困难了,研究了一下午,总是是搞定。思路和代码写出来,有错误的地方请大家指正。
正式开始!中间的调错过程省去,直接如何实现。
另配一个listener,和spring同时启动,不可取。因为listener的启动机制貌似是线程,并不是按顺序一个一个启动,所有想到直接在spring的配置文件里,注册bean文件,让bean文件来执行取数据的工作,但是这个bean显然是不能使用DAO的类,因为DAO层的东西无法注入进来,所以要有个替代的东西,这个东西好难找啊,就是BeanPostProcessor接口,用类PBSTrackManagerPostProcessor实现它其中的一个方法postProcessAfterInitialization,这个方法里可以引入一个类GetDictionaryInfo,实现类的方法getAllInfo(),当getAllInfo去调用DAO层的数据时就可以了。
不说了,直接上源码:
PBSTrackManagerPostProcessor.java
GetDictionaryInfo.java
然后这个GetDictionaryInfo.java是个普通的类,所有要有一个servlet启动并且把取得HaspMap放到context里去
MainServlet.java
然后完成注册功能
applicationContext.XML
配置web.xml让MainServlet.java自启动
然后就是如何在Action里取到数据了:
又一个问题就是解决触发一个函数,让这些东西重新加载。
reloadDictionaryInfoMap();实现起来时比较困难的,要在GetDictionaryInfo 取到ServletContext,而且要必须取到第一次实例的GetDictionaryInfo ,所有有一个东西很好用,就是Spring的context,取到他的方式
这样就大功告成,跑起来以后的结果,列出控制台的输出数据:
终于写完,请大家指正。
- 【原创】SSH开发框架中,实现系统启动加载类,读取数据库常用数据进入内存,利用Spring托管,并完成reload功能
- SSH开发框架中,实现系统启动加载类,读取数据库常用数据进入内存,利用Spring托管,并完成reload功能
- SSH开发框架中,实现系统启动加载类,读取数据库常用数据进入内存,利用Spring托管,并完成reload功能
- SSH开发框架中,实现系统启动加载类,读取数据库常用数据进入内存以及将数据放在application
- SSH开发框架中,实现系统启动加载类,读取数据库常用数据进入内存以及将数据放在application
- SSH框架---实现系统启动加载类,读取数据库常用数据进入内存以及将数据放在application
- java SpringMVC中 POI读取数据库数据并写入Excel表格中,并实现下载功能
- AutoCompleteExtender实现自动完成功能(从数据库中读取数据 )
- Android利用Spinner从数据库中读取数据并实现2级互动
- Android开发(14)-- 多线程中实现利用自定义控件绘制小球并完成小球自动下落的功能
- Android开发(14)-- 多线程中实现利用自定义控件绘制小球并完成小球自动下落的功能
- 利用SSH框架实现用户登录功能
- SpringMvc 系统启动时加载数据到内存中
- SpringMvc 系统启动时加载数据到内存中
- web服务刚启动时SpringMVC注解就加载一定的数据库数据进入内存中
- Android实现数据库中数据分页加载的功能
- java-ssh框架 实现 发送邮件并更新数据的功能
- 【原创】ExtJs实现定时读取数据,动态加载数据,页面不刷新。Struts 2框架下JSON传值
- C#多线程学习(六) 互斥对象
- oracle自动查询脚本
- windows 7
- 随笔:SSI框架中iBATIS配置文件中sql标签配置的一点感触
- Top 100 Blogs for Development Managers
- 【原创】SSH开发框架中,实现系统启动加载类,读取数据库常用数据进入内存,利用Spring托管,并完成reload功能
- Update the SAFCode project to the new LLVM API
- Check bounds overflow bugs in C programs based on LLVM
- AJAX学习笔记之 AjaxLib框架
- 把你的Windows Phone 6.x也打扮成Windows Phone 7
- spring3.0.1基本测试所需要的jar包
- swing jar中 读写配置文件
- sakai2.62部署
- tcp/ip (五)