spring对junit的支持

引入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 {

    @Autowired
    private Account account;

    @Test
    public void testSpringJunit4(){
        System.out.println(account.getActno());
    }
}

spring对junit5的支持

  1. 引入依赖

    org.springframework spring-context 6.0.4 org.springframework spring-test 6.0.4 org.junit.jupiter junit-jupiter 5.9.2 test

2.编写测试类

复制代码
@ExtendWith(SpringExtension.class)
@ContextConfiguration("classpath:spring.xml")
public class SpringJunit5Test {

    @Autowired
    private Account account;

    @org.junit.jupiter.api.Test
    public void testSpringJunit5(){
        System.out.println(account.getActno());
    }
}

spring集成mybatis

  1. 引入依赖

    org.springframework spring-context 6.0.21 org.springframework spring-jdbc 7.0.2 mysql mysql-connector-java 8.0.30 org.mybatis mybatis 3.5.19 org.mybatis mybatis-spring 4.0.0 com.alibaba druid 1.1.20 junit junit 4.13.2 test
  2. 创建三层架构需要的包:mapper、pojo、service

  3. 编写pojo类

    public class Account {
    private String actno;
    private double balance;

    复制代码
     @Override
     public 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;
     }

    }

  4. 编写mapper接口

    // 该接口不需要写实现类,mybatis会根据动态代理机制自动生成实现类
    public interface AccountMapper {
    int update(Account getAccount);
    int insert(Account getAccount);
    int delete(String actno);
    Account getAccount(String actno);
    List getAllAccount();
    }

  5. 编写mapper配置文件

    insert into t_act(actno, balance) values(#{actno}, #{balance})
    复制代码
     <delete id="delete" >
         delete
         from t_act
         where actno = #{actno}
     </delete>
    
     <update id="update" parameterType="com.ali.pojo.Account">
         update t_act
         set name  = #{name},
             money = #{money}
         where actno = #{actno}
     </update>
    
     <select id="getAccount"  resultType="com.ali.pojo.Account">
         select actno, balance
         from t_act
         where actno = #{actno}
     </select>
    
     <select id="getAllAccount" resultType="com.ali.pojo.Account">
         select actno, balance
         from t_act
     </select>
  6. 编写service和service的实现类

    public interface AccountService {
    int addAccount(Account account);
    int updateAccount(Account account);
    int deleteAccount(String actno);
    Account getAccount(String actno);
    List getAllAccount();
    }

    @Service("accountService")
    public class AccountServiceImpl implements com.ali.service.AccountService {

    复制代码
     @Autowired
     private AccountMapper accountMapper;
    
     @Override
     public int addAccount(Account account) {
         return accountMapper.insert(account);
     }
    
     @Override
     public int updateAccount(Account account) {
         return accountMapper.update(account);
     }
    
     @Override
     public int deleteAccount(String actno) {
         return accountMapper.delete(actno);
     }
    
     @Override
     public Account getAccount(String actno) {
         return accountMapper.getAccount(actno);
     }
    
     @Override
     public List<Account> getAllAccount() {
         return accountMapper.getAllAccount();
     }

    }

  7. 编写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

  8. 编写mybaits-config.xml配置文件

    复制代码
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
  9. 编写spring.xml配置文件

相关推荐
无心水4 小时前
【全域智能营销实战】2、Spring AI 模块化架构深度解读:从 1.0 到 2.0 的演进与最佳实践
人工智能·spring·架构·harness·顶尖架构师·全域智能营销·harmess
livemetee9 小时前
【关于Spring声明式事务】
java·后端·spring
Esaka_Forever10 小时前
Python 完整内存管理机制详解
开发语言·python·spring
happyprince13 小时前
09-vLLM KV Cache 系统完整分析
java·spring·vllm
AI人工智能+电脑小能手13 小时前
【大白话说Java面试题 第154题】【06_Spring篇】第14题:Spring 支持的 Bean 作用域
java·开发语言·spring·面试
可触的未来,发芽的智生13 小时前
发现-认知系统记忆架构工程启示录
数据库·人工智能·python·程序人生·sqlserver
河阿里14 小时前
SLF4J深度指南(Java):从原理到 Spring 项目实战
java·开发语言·spring
Ricky_Theseus14 小时前
CrewAI 生产化:缓存、回调、LLM 配置
java·spring·缓存
TanYYF1 天前
spring ai入门教程二
java·人工智能·spring