Mybatis使用时Propertyplaceholderconfigurer导出配置数据无法读入

造成这种情况的原因是因为读取配置文件操作早于Propertyplaceholderconfigurer加载配置文件,导致读取配置文件时直接读取了硬编码的键名,而非键值

在使用mybatis的自动扫描注入时导致这种情况是因为使用了sqlSessionFactoryBean,例如:

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <!-- mapper接口所在位置 -->
    <property name="basePackage" value="com.yumei.batchpay.common.dal.daointerface" />
    <property name="sqlSessionFactoryBean" ref="sqlSessionFactory" />
</bean>

在这种情况下,spring会提前去装配sqlSessionFactory,从而导致数据库的配置文件在Propertyplaceholderconfigurer还没加载的时候就已经被读取了,所以会连接失败。

所以需要使用另外一种配置sqlSessionFactoryBean的方式。

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <!-- mapper接口所在位置 -->
    <property name="basePackage" value="com.yumei.batchpay.common.dal.daointerface" />
    <!-- 注意此处为sqlSessionFactoryBeanName而不是sqlSessionFactoryBean -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>

但是有时候发现就算这样写还是会失效,原因是因为在applicationContext中配置了自动注入,所以就算没有配置sqlSessionFactoryBean,也没自动注入了,当然也就提前被装配了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值