Mybatis 集成spring时,无法加载外部properties的值:
main.properties:
main.db.vtms3000.sIp=127.0.0.1
main.db.vtms3000.sPort=3306
main.db.vtms3000.sUsername=mysql
main.db.vtms3000.sPassword=password
spring加载配置文件:
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>WEB-INF\main.properties</value>
</list>
</property>
<property name="fileEncoding">
<value>UTF-8</value>
</property>
</bean>
<bean id="developDataSource" destroy-method="close"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://${main.db.vtms3000.sIp}:${main.db.vtms3000.sPort}/vtms3000" />
<property name="username" value="${main.db.vtms3000.sUsername}" />
<property name="password" value="${main.db.vtms3000.sPassword}" />
<property name="initialSize" value="20"/>
<property name="maxActive" value="100"/>
<property name="maxIdle" value="30"/>
<property name="maxWait" value="1000"/>
<property name="testOnBorrow" value="true"/>
<property name="testWhileIdle" value="true"/>
<property name="testOnReturn" value="true"/>
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="timeBetweenEvictionRunsMillis" value="120000" />
<property name="validationQuery" value="select 1 from dual" />
</bean>
<!-- SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="developDataSource" />
<property name="configLocation" value="/WEB-INF/mybatis_config.xml" />
</bean>
<!-- ScanMapperFiles -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.dahuazwan.vtms.mapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
</beans>
说明:
${main.db.vtms3000.sIp}、${main.db.vtms3000.sPort}等值从属性文件main.properties获取,但是在实际执行时,取发现无法取到 ${main.db.vtms3000.sIp}的值,抛出异常
Caused by: java.lang.NumberFormatException: For input string: "${main.db.vtms3000.sPort}"
说明无法从main.properties中得到${main.db.vtms3000.sPort}对应的端口号
原因是spring + mybatis配置存在中冲突,只要注释掉<property name="sqlSessionFactory" ref="sqlSessionFactory"/> 即可:
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.dahuazwan.vtms.mapper"/>
<!--
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
-->
</bean>
分享到:
相关推荐
**MyBatis 知识点概述** MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解进行...
Mybatis 知识点浅浅笔记 Mybatis 是一个半自动的 ORM 框架,实现数据库的数据与程序对象的映射。它支持 XML 配置和 SQL 映射文件配置,提供了灵活的持久层框架。 XML 配置 Mybatis 的 XML 配置文件用于定义数据库...
对于MyBatis插件,readme.txt可能包含了如何在IDEA 15中安装、配置和使用该插件的详细步骤,以及任何需要注意的兼容性问题、更新日志和开发者信息。 2. **mybatis_plus** - 这可能是插件的主文件或者包含所有相关...
1.junit 常用注解 @Before 初始化方法,每次测试方法调用前都执行一次。 @After 释放资源:每次测试方法调用后都执行一次 ...6. 一般能用#的就别用$ MyBatis排序时使用order by 动态参数时需要注意,用$而不是#
8. **最佳实践**:在实际应用中,还需要注意一些最佳实践,比如避免使用ResultType="HashMap",尽量使用JavaBean作为结果类型;尽量避免在Mapper接口中使用过多方法,保持接口简洁。 9. **整合Spring**:MyBatis常...
在整合SpringBoot和Mybatis的过程中,需要注意以下几个关键点,这些步骤将确保Mybatis能正确地与SpringBoot框架集成,提供数据库操作的能力。 1. **引入Mybatis相关依赖**: 在`pom.xml`文件中,你需要添加Mybatis...
MyBatis 可以使你更好地将关注点集中在你的应用程序上。同时,它也提供了对事务的控制,使得数据库操作更为便捷。 MyBatis 的核心概念主要包括以下几个部分: 1. **配置文件**:MyBatis 的全局配置文件包含 ...
5. **注意事项** - 安装前确保IDEA版本与插件兼容,以免出现无法安装或运行异常的问题。 - 离线安装可能错过在线插件商店中的最新版本,定期检查是否有更新,以便保持最佳性能和稳定性。 6. **总结** MyBatisX...
在使用MybatisX-1.4.17这个版本时,需要注意的是,由于版本迭代,可能会有一些新特性或改进。因此,开发者应当定期更新插件,以确保获取最新的功能和修复的bug,保持最佳的使用体验。 总的来说,MybatisX插件是...
本文将深入探讨如何将Servlet3.0与MyBatis整合,以及这个过程中的关键知识点。 一、Servlet3.0新特性 1. 注解配置:Servlet3.0引入了注解,允许开发者在类或方法级别声明Servlet、过滤器和监听器,无需在web.xml中...
8. **最佳实践**:提供使用Mybatis插件的最佳实践和注意事项,避免常见的错误和陷阱。 由于压缩包内提到的"赚钱项目"与Mybatis插件教程的主题关联性不强,我们无法直接从这个信息推断出具体的知识点。然而,如果这...
3. **注意事项**:延迟加载只有在会话打开的情况下才能工作。如果在获取到实体对象后关闭了SqlSession,那么后续尝试访问延迟加载的属性会抛出异常。此外,由于MyBatis使用的是单次延迟加载,一旦触发加载,整个关联...
无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到 sessionfactory. 2. 由sessionfactory 产生 session 3. 在session 中完成对数据的增删改查和事务提交等. 4....
需要注意的是,实际应用中可能涉及事务管理、缓存策略、动态SQL等更复杂的功能,需要进一步学习MyBatis.NET的高级特性。此外,随着.NET Core的普及,也可以考虑使用MyBatis.NET的.NET Core版本,以适应现代Web开发的...
在使用MyBatis拦截器时,我们需要注意以下几点: 1. 添加插件时,需要使用xml形式的配置文件,或者使用注解形式的配置。 2. 在jdbc的jar包中配置了sqlSessionFactory,我们需要覆盖这个配置。 3. 在spring配置文件...
1. 易于上手:MyBatis 使用 XML 或注解来配置和映射原生信息,使得开发者能够将注意力集中在 SQL 语句上,而无需处理大量的 JDBC 代码。 2. 动态 SQL:MyBatis 允许在映射文件或注解中编写动态 SQL,这使得 SQL ...
在使用MyBatis Plugin时,需要注意以下几点: - 安装与配置:在IDEA或Eclipse等开发环境中,需要正确安装并配置插件,通常涉及添加插件依赖和配置拦截器。 - 拦截器配置:根据需求选择需要开启的拦截器,比如日志...
然而,需要注意的是,描述中提到的2.92版本是相对于3.0版本的一个较早版本。尽管2.92可能在破解和使用上相对容易,但每个新版本通常会带来更多的优化和功能增强。例如,MyBatis Plus的3.x版本可能包含了更多对新特性...
9. **缓存机制**:MyBatis内置了本地缓存和二级缓存,可以提高数据读取效率,但需要注意缓存的同步和清理策略。 10. **事务管理**:MyBatis允许开发者自定义事务管理,可以通过编程式或者声明式的方式来控制事务的...