码迷,mamicode.com
首页 > 移动开发 > 详细

后台读取applicationContext.xml引发的奇葩问题

时间:2014-07-16 23:18:33      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:使用   os   文件   io   for   问题   

SpringMVC整合ibatis时,写了一个测试方法,运行正常,当运行另一个方法时报找不到对应的路径。此处无法理解,为什么同样规则的请求,第一次能够拦截第二次却提示找不到对应的处理方法。

后来将添加的第二个方法逐一注释掉,才发现在Dao层中读取applicationContext.xml时,为了让dao层的各方法共用一个applicationContext.xml,我将读取它的代码提取了出来,作为成员变量

处理了。后将每个dao方法添加同样的读取代码后,程序正常运行。添加代码如下:

ApplicationContext context=
new ClassPathXmlApplicationContext("applicationContext.xml");
SqlMapClient sqlMapClient=(SqlMapClient) context.getBean("sqlMapClient");

 

猜测原因为:spring配置文件中bean默认为单例模式导致。后续将对该问题进行测试。

 

————————————————————————————————————————————————————————

为解决共用SqlMapClient的问题,我们可以提供一个BaseDao。

public class BaseDao extends SqlMapClientDaoSupport{
@Resource(name="sqlMapClient")
private SqlMapClient sqlMapClient;

@PostConstruct
public void initSqlMapClient(){
super.setSqlMapClient(sqlMapClient);
}
}

dao层继承BaseDao之后,便能使用SqlMapClientDaoSupport提取的静态方法:

getSqlMapClient().queryForObject("user.findById",id);//使用此方法时可将applicationContext.xml中的sqlMapClientTemplate bean去掉。

 

后台读取applicationContext.xml引发的奇葩问题,布布扣,bubuko.com

后台读取applicationContext.xml引发的奇葩问题

标签:使用   os   文件   io   for   问题   

原文地址:http://www.cnblogs.com/qs-spring/p/3811510.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!