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配置文件

相关推荐
哥本哈士奇14 小时前
dbt+SQLServer构建数据仓库(10):macro 以及 data vault的应用实例
大数据·数据仓库·sqlserver
lv__pf16 小时前
Spring配置类解析 【TL spring 11】
java·前端·spring
风流 少年17 小时前
Spring AI 2.0:Hello World
java·人工智能·spring
@卓越俊逸_角立杰出@1 天前
java实现Agent+ReAct demo(Spring Boot + Spring AI Alibaba ReAct Agent)
java·spring·react.js
不才不才不不才1 天前
Spring 源码系列(20): @SpringBootApplication 三注解拆解
java·后端·spring
少晓年1 天前
Spring Security OAuth2.0 自定义过滤器实践:从原理到实战
spring
盗理者2 天前
AI Agent 技能分享|SQL 性能诊断与优化
java·sql·spring·skill
月光有害2 天前
理解 Spring 依赖注入:从构造器注入到集合与条件 Bean
java·后端·spring
小当家.1052 天前
LLM服务缓存与连接池管理:三层缓存架构与ChatClient池化
java·后端·spring·缓存·llm·agent
小当家.1052 天前
Token成本控制实战:语义缓存、上下文压缩与工具缓存
java·spring·缓存·token·上下文