如题,使用spring3+mybatis时,使用mybatis官方提供的动态加载自动注入Mapper方法时,写在配置文件里的数据源信息加载滞后,导致加载失败。这个问题在:http://www.oschina.net/question/188964_32305有比较多的讨论,但我仔细测试过,都不能达到我想的结果,这里我参考了mybatis的官方论坛:http://code.google.com/p/mybatis/issues/detail?id=414第17楼的想法,做到了自动注入Mapper到Spring容器中,自动加载sqlMapper的XML文件。
下面贴出我的配置:
Xml代码 收藏代码
<util:properties id="dataSourceProps" location="classpath:resources/config/jdbc.properties"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="#{dataSourceProps['driverClassName']}" />
<property name="url" value="#{dataSourceProps['url']}" />
<property name="username" value="#{dataSourceProps['username']}" />
<property name="password" value="#{dataSourceProps['password']}" />
<property name="initialSize" value="1" />
<property name="maxActive" value="500" />
<property name="maxIdle" value="2" />
<property name="minIdle" value="1" />
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<tx:annotation-driven />
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="typeAliasesPackage" value="com.tydic.*.model,com.tydic.*.*.model" />
</bean>
<!--Mapper与sqlMap的xml文件要存一起,否则要在sqlSessionFactory里扫描加载-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.tydic.*.dao,com.tydic.*.*.dao" />
</bean>
<context:component-scan base-package="com.tydic.*"/>
分享到:
相关推荐
通过上述调整,你应该能够解决Spring在整合Mybatis时,使用`<context:property-placeholder>`时遇到的属性解析问题,确保每个数据源都能正确地从属性文件中获取其配置信息。记得在调整配置后,重新启动应用并检查...
这里,`context:property-placeholder`标签用于加载`jdbc.properties`文件,该文件通常存储数据库连接的相关属性。`BasicDataSource`是Apache Commons DBCP提供的数据源,用于管理数据库连接。通过`property`标签,...
### Spring与MyBatis整合配置详解 #### 一、概览 在现代Java Web开发中,Spring框架作为核心,提供了一套完整的解决方案来管理应用程序的各种组件和服务。而MyBatis作为一个优秀的持久层框架,能够方便地进行SQL...
这通常在Spring的context:property-placeholder或context:resource标签中通过设置`jdbc.initialize-on-startup`属性来控制。 8. **MyBatis_SpringZK0和MyBatis_SpringZK**:这两个文件可能是项目中的其他相关组件,...
在SSM(Spring + SpringMVC + MyBatis)框架中,经常需要配置多个属性文件来管理各种配置信息。例如数据库连接信息、系统资源路径等。本文将详细探讨如何在SSM框架中引入多个`properties`文件,并解决可能出现的问题...
<context:property-placeholder location="classpath:db.properties"/> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value...
- **context命名空间**:使用`<context:component-scan>`标签来指定组件扫描的包路径,而`<context:property-placeholder>`用来加载配置文件。 - **DataSource配置**:为每个数据源定义了一个`<bean>`,配置了具体的...
- 首先,要在Spring配置文件中引入JDBC配置,使用`<context:property-placeholder>`标签加载外部属性文件,如`jdbc.properties`,以获取数据库连接参数。 - 然后,创建一个`BasicDataSource`的bean,配置数据源...
然后,在Spring的配置文件中,使用`<context:property-placeholder>`标签引入这个属性文件。 5. **配置SqlSessionFactory**: SqlSessionFactory是MyBatis的核心组件,用于创建SqlSession对象。我们使用`<bean>`...
(再加一条,其实大家可以看官方的教程更好些:http://mybatis.github.io/mybatis-3/,而且如果英文不是很好的那就看中文的:http://mybatis.github.io/mybatis-3/zh/sqlmap-xml.html) 写在这个系列前面的话: 以前...
在使用MyBatis框架时,可能会遇到一个特定的异常:“Property 'configLocation' not specified, using default MyBatis Configuration”。这个异常通常表明MyBatis在启动时无法找到配置文件的位置,因此它会使用默认...
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="top.jikezhe.mapper" /> <property name="sqlSessionFactoryBeanName" value="factory" /> ``` 这部分...
<context:property-placeholder location="classpath:db.properties"/> <!-- 配置数据源 --> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> ...
<context:property-placeholder location="classpath:jdbc.properties"/> <property name="alias" value="${alias}"/> <property name="driver" value="${driver}"/> <property name="driverUrl" value="${...
<context:property-placeholder location="classpath:jdbc.properties"/> <property name="alias" value="${alias}"/> <property name="driver" value="${driver}"/> <property name="driverUrl" value="${...
然后,在`applicationContext.xml`中,配置Spring的基本信息,如数据源(使用`BasicDataSource`),并引用`db.properties`,通过`context:property-placeholder`标签加载属性文件。接下来,配置MyBatis的`mybatis-...
在Spring框架中,我们可以使用<context:property-placeholder>标签来覆盖系统配置。例如:<context:property-placeholder local-override="true" location="classpath:conn.properties"></context:property-...
<context:property-placeholder location="jdbc.properties"/> <!-- 创建JDBC数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name=...
在进行 Spring MVC 和 MyBatis 的整合时,需要完成以下几个关键步骤: 1. **搭建基础环境**:包括安装必要的软件如 Tomcat、Eclipse 等,以及设置 JDK 环境。 2. **创建项目结构**:包括创建 Maven 或 Eclipse 项目...
- `<context:property-placeholder>`: 引用外部属性文件。 - `<mvc:resources>`: 配置静态资源路径。 - `<tx:advice>`: 配置事务通知。 - `<tx:annotation-driven>`: 开启基于注解的事务管理。 - `<tx:jta-...