mybatis-spring 的整合_配置application.xml

本文详细介绍了Spring框架的配置过程,包括自动扫描包、数据库配置、事务管理、MyBatis集成等核心配置。通过具体示例展示了如何使用XML进行配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spring的配置文件文件

application.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/aop 
           http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
           http://www.springframework.org/schema/tx
     	   http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-3.0.xsd">

	<!-- 自动扫描包 -->
	<context:component-scan base-package="cn.tiger.smartsign"
		use-default-filters="false">
		<context:include-filter type="annotation"
			expression="org.springframework.stereotype.Controller" />
		<context:include-filter type="annotation"
			expression="org.springframework.stereotype.Service" />
		<context:include-filter type="annotation"
			expression="org.springframework.stereotype.Repository" />
	</context:component-scan>
	
	<!-- 数据库配置文件位置 -->
	<context:property-placeholder location="classpath:jdbc.properties" />
	
	<!-- 配置dbcp数据源 -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="${jdbc.driverClassName}" />
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
		<!-- 队列中的最小等待数 -->
		<property name="minIdle" value="${jdbc.minIdle}"></property>
		<!-- 队列中的最大等待数 -->
		<property name="maxIdle" value="${jdbc.maxIdle}"></property>
		<!-- 最长等待时间,单位毫秒 -->
		<property name="maxWait" value="${jdbc.maxWait}"></property>
		<!-- 最大活跃数 -->
		<property name="maxActive" value="${jdbc.maxActive}"></property>
		<property name="initialSize" value="${jdbc.initialSize}"></property>
	</bean>
	
	<!-- 全局事务配置 -->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>
	
	<!-- 使用annotation注解方式配置事务 -->
	<tx:annotation-driven transaction-manager="transactionManager"/>
	
	<!-- 配置mybitasSqlSessionFactoryBean -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="mapperLocations" value="classpath*:cn/tiger/smartsign/xml/*.xml" />
		<property name="typeAliasesPackage" value="cn.tiger.smartsign.entity" />
	</bean>
	
	<!-- 自动扫描Mapper,允许自动注入(根据类型匹配) -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="cn.tiger.smartsign.dao" />
	</bean>

</beans>


<!-- 配置mybitasSqlSessionFactoryBean -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="mapperLocations" value="classpath*:cn/tiger/smartsign/xml/*.xml" />
		<property name="typeAliasesPackage" value="cn.tiger.smartsign.entity" />
</bean>

mapperLocations : 指定mybatis的xml映射器文件的位置 ,加载所在包下的所用mybatis映射器文件

typeAliasesPackage: 别名类型包-->扫描包中的所有类,并批量设置类型别名 例如 :

cn.tiger.smartsign.entity.XXX.java-->alias="XXX"

<!-- 自动扫描Mapper,允许自动注入(根据类型匹配) -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="cn.tiger.smartsign.dao" />
	</bean>

自动扫描映射所对应的接口包

MapperScnnerConfigurer:会将类路径下的映射器并自动将他们创建成MapperFactoybean,并自动装配

basePackage:属性为映射器接口文件设置基本的包路径,可以用分号或逗号作为分隔符设置多个路径






<?xml version="1.0" encoding="UTF-8"?> 4.0.0 org.springframework.boot spring-boot-starter-parent 3.4.7 com.example takeoutsystem 0.0.1-SNAPSHOT takeoutsystem takeoutsystem <java.version>17</java.version> <mybatis-plus.version>3.5.7</mybatis-plus.version> <mybatis.version>3.5.15</mybatis.version> <mybatis-spring.version>3.0.3</mybatis-spring.version> <jjwt.version>0.11.5</jjwt.version> <springdoc-openapi.version>2.8.5</springdoc-openapi.version> <thymeleaf-extras-springsecurity6.version>3.1.2.RELEASE</thymeleaf-extras-springsecurity6.version> dev aliyun-maven https://maven.aliyun.com/repository/public true false org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-thymeleaf com.baomidou mybatis-plus-boot-starter ${mybatis-plus.version} org.mybatis mybatis org.mybatis mybatis-spring com.baomidou mybatis-plus org.mybatis mybatis ${mybatis.version} org.mybatis mybatis-spring ${mybatis-spring.version} com.baomidou mybatis-plus ${mybatis-plus.version} com.mysql mysql-connector-j runtime com.h2database h2 test io.jsonwebtoken jjwt-api ${jjwt.version} io.jsonwebtoken jjwt-impl ${jjwt.version} runtime io.jsonwebtoken jjwt-jackson ${jjwt.version} runtime org.springframework.boot spring-boot-starter-security org.thymeleaf.extras thymeleaf-extras-springsecurity6 ${thymeleaf-extras-springsecurity6.version} org.springdoc springdoc-openapi-starter-webmvc-ui ${springdoc-openapi.version} org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine com.baomidou mybatis-plus-boot-starter-test ${mybatis-plus.version} test org.mybatis mybatis org.mybatis mybatis-spring org.springframework.security spring-security-test test org.projectlombok lombok src/main/resources true application*.yml application*.properties src/main/resources false application*.yml application*.properties org.springframework.boot spring-boot-maven-plugin org.projectlombok lombok dev true dev src/main/resources true application.yml application-dev.yml prod prod src/main/resources true application.yml application-prod.yml 修改POM.xml文件,降级MYBATIS版本
最新发布
07-15
<think>根据错误信息,问题在于MyBatis-Plus 3.5.7需要调用MyBatis的`Configuration.parsePendingMethods(boolean)`方法,但是当前使用的MyBatis版本是3.5.15,其中没有这个方法。因此,我们需要将MyBatis的版本降级到与MyBatis-Plus 3.5.7兼容的版本(如3.5.7)。 在提供的POM.xml中,已经指定了MyBatis的版本为3.5.15,我们需要将其改为3.5.7。同时,注意MyBatis-Spring的版本也需要兼容,但根据MyBatis-Plus 3.5.7的要求,通常使用MyBatis-Spring 2.0.7以上即可,但为了确保兼容,我们可以查看MyBatis-Plus 3.5.7的官方文档或依赖树,不过这里我们已知MyBatis 3.5.7是兼容的。 修改步骤: 1. 将`<mybatis.version>`属性值从3.5.15改为3.5.7。 2. 由于我们使用了`mybatis-spring`,并且其版本由`<mybatis-spring.version>`属性控制,目前是3.0.3,这个版本对于MyBatis 3.5.7是兼容的(因为MyBatis-Spring 3.0.3要求MyBatis 3.5.6+),所以可以保留。 另外,在依赖中,我们看到了显式引入了`mybatis`和`mybatis-spring`,并且版本由属性控制,所以修改属性即可。 修改后的POM.xml片段如下(只修改了`mybatis.version`属性): ```xml <properties> <java.version>17</java.version> <mybatis-plus.version>3.5.7</mybatis-plus.version> <!--mybatis版本从3.5.15改为3.5.7 --> <mybatis.version>3.5.7</mybatis.version> <mybatis-spring.version>3.0.3</mybatis-spring.version> <jjwt.version>0.11.5</jjwt.version> <springdoc-openapi.version>2.8.5</springdoc-openapi.version> <thymeleaf-extras-springsecurity6.version>3.1.2.RELEASE</thymeleaf-extras-springsecurity6.version> </properties> ``` 这样,当Maven构建时,MyBatis的版本就会被降级到3.5.7,从而解决版本不兼容的问题。 注意:修改后需要重新构建项目(执行`mvn clean install`)以确保依赖更新。 如果项目中还有其他地方强制指定了MyBatis版本,比如在依赖管理(dependencyManagement)中,那么需要检查并调整。但在这个POM中,我们没有看到dependencyManagement,所以直接修改属性即可。 另外,由于MyBatis-Plus本身会传递依赖MyBatis,我们通过显式指定MyBatis版本覆盖了传递依赖的版本,这是Maven的依赖调解原则(最近的定义优先)。 如果修改后问题仍然存在,可以运行`mvn dependency:tree`查看MyBatis的版本是否确实被降级。 修改后的完整pom.xml文件(只修改了mybatis.version属性)如下:</think>根据错误信息和提供的POM文件,问题在于MyBatis-Plus 3.5.7与MyBatis 3.5.15版本不兼容。以下是完整的解决方案: ### 解决方案:修改POM.xml降级MyBatis版本 ```xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.4.7</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>takeoutsystem</artifactId> <version>0.0.1-SNAPSHOT</version> <name>takeoutsystem</name> <description>takeoutsystem</description> <properties> <java.version>17</java.version> <!-- 关键修改:将MyBatis版本降级到3.5.7 --> <mybatis.version>3.5.7</mybatis.version> <mybatis-plus.version>3.5.7</mybatis-plus.version> <mybatis-spring.version>3.0.3</mybatis-spring.version> <jjwt.version>0.11.5</jjwt.version> <springdoc-openapi.version>2.8.5</springdoc-openapi.version> <thymeleaf-extras-springsecurity6.version>3.1.2.RELEASE</thymeleaf-extras-springsecurity6.version> </properties> <dependencies> <!-- Spring Boot 基础依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!-- MyBatis-Plus 依赖 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus.version}</version> </dependency> <!-- 显式指定兼容的MyBatis版本 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>${mybatis-spring.version}</version> </dependency> <!-- 数据库依赖 --> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>test</scope> </dependency> <!-- 其他依赖保持不变 --> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-api</artifactId> <version>${jjwt.version}</version> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-impl</artifactId> <version>${jjwt.version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-jackson</artifactId> <version>${jjwt.version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-springsecurity6</artifactId> <version>${thymeleaf-extras-springsecurity6.version}</version> </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>${springdoc-openapi.version}</version> </dependency> <!-- 测试依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter-test</artifactId> <version>${mybatis-plus.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> ``` ### 关键修改说明: 1. **MyBatis版本降级**: ```xml <!-- 修改前 --> <mybatis.version>3.5.15</mybatis.version> <!-- 修改后 --> <mybatis.version>3.5.7</mybatis.version> ``` -MyBatis版本从3.5.15降级到3.5.7,与MyBatis-Plus 3.5.7兼容 2. **显式声明依赖**: ```xml <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> ``` - 显式声明MyBatis依赖,确保Maven使用指定版本而非传递依赖版本 ### 验证步骤: 1. 清理Maven缓存: ```bash mvn clean install -U ``` 2. 检查依赖树确认版本: ```bash mvn dependency:tree -Dincludes=org.mybatis:mybatis ``` 输出应显示: ``` [INFO] +- org.mybatis:mybatis:jar:3.5.7:compile ``` 3. 检查冲突解决: ```bash mvn dependency:analyze ``` ### 备选方案:升级MyBatis-Plus 如果不想降级MyBatis,可以升级MyBatis-Plus到兼容版本: ```xml <!-- 修改MyBatis-Plus版本 --> <mybatis-plus.version>3.5.8</mybatis-plus.version> ``` ### 版本兼容性参考: | 组件 | 兼容版本 | |---------------|---------------------| | MyBatis-Plus | 3.5.7 (需要MyBatis 3.5.7) | | MyBatis | 3.5.7 | | Spring Boot | 3.4.7 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值