springmvc在启动工程的时候就访问数据库,加载一些共同的数据
来源:互联网 发布:淘宝上怎么样买东西呢 编辑:程序博客网 时间:2024/05/24 06:24
在网上找到一个类似的问题,稍做修改
解决方案:给web容器添加一个Listener类,在容器启动的时候执行Listener的“初始化”方法,在这个初始化方法中执行查询数据库的所有操作,然后将数据库中的信息缓存起来
问题:上面的方法很好,但问题是如何去查询数据库,由于使用了spring的IOC特性,查询数据库的service控制dao层,dao层访问数据库,而Listener类只是在系统启动的时候会执行初始化方法,但是“service”对象没有被spring管理,也就是说没有service对象访问数据库,只能使用jdbc的方式连接,这个很显然不符合MVC开发的特性。那么如何才能在启动web容器的时候利用spring的IOC特性呢?
解决方法:spring给出的解决方案——写一个类,实现InitializingBean接口,然后交由spring容器管理
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>
- springmvc在启动工程的时候就访问数据库,加载一些共同的数据
- web服务刚启动时SpringMVC注解就加载一定的数据库数据进入内存中
- 关于sppring在启动的时候从数据库加载数据到ServletContext
- SSH框架,在项目启动的时候加载数据库信息
- 171206之在加载数据的时候加载操作
- 在启动tomcat服务器时候加载一个action的方法
- 在多次启动CAD的时候,有时在加载acadiso.dwt的时候死机(转载)
- 在加载的时候显示系统等待对话框。加载完成就关闭
- 在大量数据访问的时候 慎用get set
- 如果spring--bean是单例,那么web项目一启动就会加载到内存,如果bean是多例,项目会在刚刚使用的时候,就是走到这个请求地址的时候,类才会加载---spring 默认为单例
- table的diaplay属性 加载的时候有数据就显示table
- 数据库插入数据的时候,遇到相同的数据,就会报错
- java在处理大数据的时候一些小技巧
- Java在处理大数据的时候一些小技巧
- java在处理大数据的时候一些小技巧
- Java在处理大数据的时候一些小技巧
- 在学校的时候,自己做过的一些项目,感觉挺有成就
- 最近在弄ionic3的时候遇到的一些问题(遇到就更新)
- Linux常用命令(十二) - less
- display:inline、block、inline-block的区别
- 自己动手写文件系统
- ucos试验代码实例2:互斥型信号量的应用实例--防止任务优先级反转现象的出现
- java hibernate 中"nodeto traverse cannot be null"错误解决
- springmvc在启动工程的时候就访问数据库,加载一些共同的数据
- 在MyEclipse中怎么使选中的一段代码下移一行,用快捷键
- 第12周项目3-用递归函数求解--汉诺塔问题
- 李白喝酒
- 万年历打印
- unsigned char 的一个面试题
- Lua快速介绍
- 写链表时的问题——函数参数
- 零基础学嵌入式开发