Mybatis使用时Propertyplaceholderconfigurer导出配置数据无法读入
2016-12-01 00:00
417 查看
造成这种情况的原因是因为读取配置文件操作早于Propertyplaceholderconfigurer加载配置文件,导致读取配置文件时直接读取了硬编码的键名,而非键值
在使用mybatis的自动扫描注入时导致这种情况是因为使用了sqlSessionFactoryBean,例如:
在这种情况下,spring会提前去装配sqlSessionFactory,从而导致数据库的配置文件在Propertyplaceholderconfigurer还没加载的时候就已经被读取了,所以会连接失败。
所以需要使用另外一种配置sqlSessionFactoryBean的方式。
但是有时候发现就算这样写还是会失效,原因是因为在applicationContext中配置了自动注入,所以就算没有配置sqlSessionFactoryBean,也没自动注入了,当然也就提前被装配了。
在使用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,也没自动注入了,当然也就提前被装配了。
相关文章推荐
- Mybatis使用时Propertyplaceholderconfigurer导出配置数据无法读入
- 关于系统中使用多个PropertyPlaceholderConfigurer的配置
- 配置环境spring使用PropertyPlaceholderConfigurer扩展来满足不同环境的参数配置
- spring+mybatis使用MapperScannerConfigurer引起的PropertyPlaceholderConfigurer无效问题处理方法
- PropertyPlaceholderConfigurer的用法(使用spring提供的类读取数据库配置信息.properties)
- Spring PropertyPlaceholderConfigurer Usage - 使用系统变量替换spring配置文件中的变量
- 重写Spring的PropertyPlaceholderConfigurer,从数据库加载配置数据
- 【转】spring管理属性配置文件properties——使用PropertiesFactoryBean|spring管理属性配置文件properties——使用PropertyPlaceholderConfigurer
- spring使用PropertyPlaceholderConfigurer扩展来满足不同环境的参数配置
- spring使用PropertyPlaceholderConfigurer扩展来满足不同环境的参数配置
- 在 Spring.NET 中使用 PropertyPlaceholderConfigurer 设置配置参数
- spring使用PropertyPlaceholderConfigurer扩展来满足不同环境的参数配置
- spring管理属性配置文件properties——使用PropertyPlaceholderConfigurer
- Spring配置文件中使用PropertyPlaceholderConfigurer配置获取jdbc的配置信息
- 关于系统中使用多个PropertyPlaceholderConfigurer的配置
- spring3+mybatis 使用MapperScannerConfigurer时context:property-placeholder载不进属性
- spring使用多个PropertyPlaceholderConfigurer的配置
- spring使用多个PropertyPlaceholderConfigurer的配置
- spring使用多个PropertyPlaceholderConfigurer的配置
- spring使用PropertyPlaceholderConfigurer扩展来满足不同环境的参数配置