Spring整合Mybatis的一些加载顺序问题

thisisgpy 2014-12-20 03:53:42
首先加载属性文件:
<context:property-placeholder location="classpath:*.properties"/>

配置数据源

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close"
p:driverClassName="${jdbc.driver}"
p:url="${jdbc.url}"
p:username="${jdbc.username}"
p:password="${jdbc.password}" />


配置mybatis支持

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"
p:dataSource-ref="dataSource"
p:configLocation="classpath:mybatis.xml" lazy-init="true"/>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"
p:sqlSessionFactory-ref="sqlSessionFactory"
p:basePackage="me.yugle.test.common.mapper" lazy-init="true"/>


运行项目出现的问题是:
dataSource这个bean在配置文件加载之前就执行初始化了,也就是说,我数据源里面引用的配置文件的内容都读取不到,导致dataSource初始化失败。

Tomcat的启动日志:
1、加载applicationContext.xml
2、初始化mybatis相关的bean,进而引用dataSource
3、加载配置文件

也就是说,由于加入了mybatis,spring的正常初始化顺序被打乱了,配置文件还没被加载,就在创建数据源。

求教该怎么处理,让配置文件先加载?我已经设置了mybatis相关的bean延迟加载,但是没有效果。
...全文
383 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinxinwg 2014-12-24
  • 打赏
  • 举报
回复
那就先加载jdbc.properties配置文件 <!-- 实例化占位符对象 --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties"/> </bean>
fangqikakaka 2014-12-24
  • 打赏
  • 举报
回复
试试这个看看呢 <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:jdbc.properties</value> </list> </property> </bean>

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧