当前位置: 首页 > news >正文

spring6-与juint和mybatis的集成

spring对junit的支持

主要是自动从spring容器中获取bean。不用手动获取了。

spring对junit4的支持

1.引入spring和junit4的依赖

<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.0.4</version>
</dependency>
<!--        spring对junit支持的依赖,spring6既支持junit4也支持junit5  --><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>6.0.4</version></dependency>
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope>
</dependency>

2.编写测试类

@RunWith(SpringJUnit4ClassRunner.class)
// 加载spring.xml配置文件 加载spring容器
@ContextConfiguration("classpath:spring.xml")
public class SpringJunit4Test {@Autowiredprivate Account account;@Testpublic void testSpringJunit4(){System.out.println(account.getActno());}
}

spring对junit5的支持

  1. 引入依赖
  <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.0.4</version></dependency>
<!--        spring对junit支持的依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>6.0.4</version></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>5.9.2</version><scope>test</scope></dependency>

2.编写测试类

@ExtendWith(SpringExtension.class)
@ContextConfiguration("classpath:spring.xml")
public class SpringJunit5Test {@Autowiredprivate Account account;@org.junit.jupiter.api.Testpublic void testSpringJunit5(){System.out.println(account.getActno());}
}

spring集成mybatis

  1. 引入依赖
<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.0.21</version>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>7.0.2</version>
</dependency>
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.30</version>
</dependency>
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.19</version>
</dependency>
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>4.0.0</version>
</dependency>
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.20</version>
</dependency>
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope>
</dependency>
  1. 创建三层架构需要的包:mapper、pojo、service
  2. 编写pojo类
public class Account {private String actno;private double balance;@Overridepublic String toString() {return "Account{" +"actno='" + actno + '\'' +", balance=" + balance +'}';}public Account() {}public Account(String actno, double balance) {this.actno = actno;this.balance = balance;}public String getActno() {return actno;}public void setActno(String actno) {this.actno = actno;}public double getBalance() {return balance;}public void setBalance(double balance) {this.balance = balance;}
}
  1. 编写mapper接口
// 该接口不需要写实现类,mybatis会根据动态代理机制自动生成实现类
public interface AccountMapper {int update(Account getAccount);int insert(Account getAccount);int delete(String actno);Account getAccount(String actno);List<Account> getAllAccount();
}
  1. 编写mapper配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ali.mapper.AccountMapper"><insert id="insert" parameterType="com.ali.pojo.Account">insert into t_act(actno, balance) values(#{actno}, #{balance})</insert><delete id="delete" >deletefrom t_actwhere actno = #{actno}</delete><update id="update" parameterType="com.ali.pojo.Account">update t_actset name  = #{name},money = #{money}where actno = #{actno}</update><select id="getAccount"  resultType="com.ali.pojo.Account">select actno, balancefrom t_actwhere actno = #{actno}</select><select id="getAllAccount" resultType="com.ali.pojo.Account">select actno, balancefrom t_act</select>
</mapper>
  1. 编写service和service的实现类
public interface AccountService {int addAccount(Account account);int updateAccount(Account account);int deleteAccount(String actno);Account getAccount(String actno);List<Account> getAllAccount();
}
@Service("accountService")
public class AccountServiceImpl implements com.ali.service.AccountService {@Autowiredprivate AccountMapper accountMapper;@Overridepublic int addAccount(Account account) {return accountMapper.insert(account);}@Overridepublic int updateAccount(Account account) {return accountMapper.update(account);}@Overridepublic int deleteAccount(String actno) {return accountMapper.delete(actno);}@Overridepublic Account getAccount(String actno) {return accountMapper.getAccount(actno);}@Overridepublic List<Account> getAllAccount() {return accountMapper.getAllAccount();}
}
  1. 编写jdbc.properties配置文件
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/spring6?useSSL=false&serverTimezone=UTC
jdbc.username=root
jdbc.password=yourpassword
  1. 编写mybaits-config.xml配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--    打印mybatis的日志信息,sql语句等--><settings><setting name="logImpl" value="STDOUT_LOGGING"/></settings>
</configuration>
  1. 编写spring.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:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"><!--    组件扫描-->
<context:component-scan base-package="com.ali" />
<!--    引入外部的属性配置文件-->
<context:property-placeholder location="jdbc.properties" />
<!--    数据源-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /><property name="driverClassName" value="${jdbc.driver}" />
</bean>
<!--    配置sqlSessionFactoryBean-->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--    注入数据源--><property name="dataSource" ref="dataSource" />
<!--    指定mybatis的配置文件位置--><property name="configLocation" value="classpath:mybatis-config.xml" />
<!--    指定别名--><property name="typeAliasesPackage" value="com.ali.pojo" />
</bean><!--    Mapper扫描器,会自动扫描指定包下的mapper接口,并为其创建代理对象-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.ali.mapper" />
</bean><!--    事务管理器--><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean>
<!--    启用事务注解--><tx:annotation-driven transaction-manager="transactionManager" />
</beans>

在spring配置文件中引入子配置文件

<!--    在spring.xml中引入其他的spring配置文件,common.xml中可以放置一些公共的bean定义,例如一些工具类、常量等,这样就可以在多个配置文件中共享这些bean定义,避免重复定义。--><import resource="common.xml" />
http://www.jsqmd.com/news/366382/

相关文章:

  • 2026年资产管理系统公司推荐,优质资产管理系统平台盘点 - 品牌2025
  • 【计算机毕业设计案例】基于SpringBoot + Vue的学生档案管理系统的设计与实现基于springboot的学生档案管理系统(程序+文档+讲解+定制)
  • mac电脑通过yunedit-ssh上传文件到linux服务器
  • EServer完全指南:一站式本地开发环境搭建与多服务协同配置(含4个实战技巧)
  • [CCC 2023 S4] 最低成本道路 题解
  • 第10章 容器交互与调试
  • 7个核心技巧:AI绘画工具从入门到精通
  • 【计算机毕业设计案例】基于SpringBoot的社区便利店购物平台系统基于springboot的优购在线社区便利店系统小程序(程序+文档+讲解+定制)
  • Java AI开发实战:企业级应用的LLM集成框架解决方案
  • 同步机无感 STM32低成本MD500E永磁同步控制方案,pmsm,高性价比变频器参考方案 m...
  • 吐血推荐! AI论文写作软件 千笔ai写作 VS 云笔AI,研究生必备神器!
  • 零门槛玩转Goldberg Emulator:从新手到高手的蜕变指南
  • 企业级BI工具DataEase无网络环境离线部署开源方案:从困境到落地的全流程指南
  • Python量化交易系统:从零到实盘的策略开发指南
  • 20个高效能的Android模拟器优化技巧:从入门到精通的docker-android配置指南
  • vue3内置组件的功能介绍与用法
  • 2026年全国热解炉哪家专业?覆盖高海拔与规模化等多应用场景 聚焦差异化与落地可行性 - 深度智识库
  • 告别平台割裂:新一代游戏库管理工具的全域聚合方案
  • 创客匠人深度解析:知识产品化的系统架构与AI智能体协同机制
  • 7个步骤搭建本地化翻译服务:保障数据主权的LibreTranslate应用指南
  • 解决Discord音乐播放难题:JMusicBot从部署到精通的实战指南
  • 从精度到售后:2026年值得信赖的真密度仪生产厂家推荐清单 - 品牌推荐大师1
  • 大语言模型训练全流程技术指南:从环境适配到多模态融合
  • 电影推荐系统 | Python Django 协同过滤 Echarts 豆瓣电影数据 大数据 人工智能 毕业设计源码(建议收藏)✅
  • 从CRC冠军到标准制定者:他不信经验,只信G值 - RF_RACER
  • 小程序毕设项目推荐-基于微信小程序的在线社区优购便利店系统基于springboot的优购在线社区便利店系统小程序【附源码+文档,调试定制服务】
  • 小程序计算机毕设之基于springboot的体检预约小程序基于Spring Boot+Vue+UNIAPP的体检预约小程序(完整前后端代码+说明文档+LW,调试定制等)
  • 2026国内最新实木三层地板品牌TOP10推荐:优质企业权威榜单发布,健康环保适配多元家居需求 - 品牌推荐2026
  • 突破内存瓶颈:mimalloc如何解决资源受限系统的内存管理难题
  • OCR效率提升与文本识别优化:OCRmyPDF技术解析与实战指南