- 优化pom
- 将Junit4更新为Junit5
This commit is contained in:
yulinling 2025-06-21 00:29:21 +08:00
parent 93c2e74571
commit 47ef4d02e5
9 changed files with 186 additions and 123 deletions

235
pom.xml
View File

@ -1,164 +1,207 @@
<?xml version="1.0" encoding="UTF-8"?> <?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" <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"> 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> <modelVersion>4.0.0</modelVersion>
<!-- 父项目 -->
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.0</version> <version>3.5.0</version>
<relativePath/> <relativePath/>
</parent> </parent>
<groupId>asia.yulinling</groupId> <groupId>asia.yulinling</groupId>
<artifactId>workflow</artifactId> <artifactId>workflow</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<name>workflow</name> <name>workflow</name>
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<url/>
<licenses> <!-- 项目属性配置 -->
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties> <properties>
<java.version>17</java.version> <java.version>17</java.version>
<jjwt.veersion>0.9.1</jjwt.veersion> <jjwt.version>0.11.5</jjwt.version>
<jasypt.version>3.0.5</jasypt.version>
<mysql.version>8.3.0</mysql.version>
<mybatis-plus.version>3.5.12</mybatis-plus.version>
<hutool.version>5.8.38</hutool.version>
<druid-version>1.2.25</druid-version>
</properties> </properties>
<!-- 项目依赖 -->
<dependencies> <dependencies>
<!-- Spring Boot 核心 -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId> <artifactId>spring-boot-starter</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.github.ulisesbocchio</groupId> <!-- Spring Web -->
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.3.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
</dependency> </dependency>
<!-- Spring Security -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- 数据库相关 -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>${mysql.version}</version>
</dependency>
<!-- 数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid-version}</version>
</dependency>
<!-- MyBatis Plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-jsqlparser</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<!-- Redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<!-- 邮件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- Thymeleaf 模板 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- AOP -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!-- 工具类 -->
<dependency> <dependency>
<groupId>cn.hutool</groupId> <groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId> <artifactId>hutool-all</artifactId>
<version>5.8.38</version> <version>${hutool.version}</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>jakarta.mail</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency> </dependency>
<!-- Lombok -->
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
<!-- 安全配置相关 -->
<dependency> <dependency>
<groupId>com.baomidou</groupId> <groupId>com.github.ulisesbocchio</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId> <artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.5.12</version> <version>${jasypt.version}</version>
</dependency>
<!-- JWT -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>${jjwt.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.baomidou</groupId> <groupId>io.jsonwebtoken</groupId>
<artifactId>mybatis-plus-boot-starter-test</artifactId> <artifactId>jjwt-impl</artifactId>
<version>3.5.12</version> <version>${jjwt.version}</version>
<scope>runtime</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.baomidou</groupId> <groupId>io.jsonwebtoken</groupId>
<artifactId>mybatis-plus-jsqlparser</artifactId> <artifactId>jjwt-jackson</artifactId>
<version>3.5.12</version> <version>${jjwt.version}</version>
<scope>runtime</scope>
</dependency> </dependency>
<!-- 测试相关 -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>junit</groupId> <groupId>org.junit.jupiter</groupId>
<artifactId>junit</artifactId> <artifactId>junit-jupiter</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- JWT 工具jjwt -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.11.5</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.11.5</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.11.5</version>
</dependency>
<dependency> <dependency>
<groupId>org.mockito</groupId> <groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId> <artifactId>mockito-core</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </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.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!-- Lombok 注解处理支持 -->
<dependency> <dependency>
<groupId>org.jetbrains</groupId> <groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId> <artifactId>annotations</artifactId>
<version>RELEASE</version> <version>RELEASE</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<!-- 校验工具 -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>jakarta.validation</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId> <artifactId>jakarta.validation-api</artifactId>
</dependency> <version>3.0.2</version>
<!-- 对象池使用redis时必须引入 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency> </dependency>
</dependencies> </dependencies>
<!-- 插件配置 -->
<build> <build>
<plugins> <plugins>
<!-- 编译插件 -->
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<configuration> <configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<annotationProcessorPaths> <annotationProcessorPaths>
<path> <path>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
@ -167,6 +210,8 @@
</annotationProcessorPaths> </annotationProcessorPaths>
</configuration> </configuration>
</plugin> </plugin>
<!-- Spring Boot 打包插件 -->
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>
@ -179,7 +224,13 @@
</excludes> </excludes>
</configuration> </configuration>
</plugin> </plugin>
<!-- Maven Wrapper 插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-wrapper-plugin</artifactId>
</plugin>
</plugins> </plugins>
</build> </build>
</project> </project>

View File

@ -11,14 +11,26 @@ spring.sql.init.continue-on-error=true
spring.sql.init.schema-locations=classpath:db/schema.sql spring.sql.init.schema-locations=classpath:db/schema.sql
spring.sql.init.data-locations=classpath:db/data.sql spring.sql.init.data-locations=classpath:db/data.sql
# 连接池配置 # 连接池配置
spring.datasource.hikari.minimum-idle=5 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.hikari.connection-test-query=SELECT 1 spring.datasource.druid.pool.initial-size=5
spring.datasource.hikari.maximum-pool-size=20 spring.datasource.druid.pool.min-idle=5
spring.datasource.hikari.auto-commit=true spring.datasource.druid.pool.max-active=20
spring.datasource.hikari.idle-timeout=30000 spring.datasource.druid.pool.max-wait-millis=30000
spring.datasource.hikari.pool-name=MyAppHikariCP spring.datasource.druid.pool.test-while-idle=true
spring.datasource.hikari.max-lifetime=300000 spring.datasource.druid.pool.test-on-borrow=false
spring.datasource.hikari.connection-timeout=30000 spring.datasource.druid.pool.test-on-return=false
spring.datasource.druid.pool.validation-query=SELECT 1
spring.datasource.druid.pool.time-between-eviction-runs-millis=60000
spring.datasource.druid.pool.min-evictable-idle-time-millis=300000
#spring.datasource.hikari.minimum-idle=5
#spring.datasource.hikari.connection-test-query=SELECT 1
#spring.datasource.hikari.maximum-pool-size=20
#spring.datasource.hikari.auto-commit=true
#spring.datasource.hikari.idle-timeout=30000
#spring.datasource.hikari.pool-name=MyAppHikariCP
#spring.datasource.hikari.max-lifetime=300000
#spring.datasource.hikari.connection-timeout=30000
#spring.datasource.
# Redis配置 # Redis配置
spring.data.redis.host=122.152.201.90 spring.data.redis.host=122.152.201.90
spring.data.redis.port=6379 spring.data.redis.port=6379

View File

@ -1,7 +1,7 @@
package asia.yulinling.workflow; package asia.yulinling.workflow;
import org.jasypt.encryption.StringEncryptor; import org.jasypt.encryption.StringEncryptor;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
/** /**

View File

@ -1,12 +1,12 @@
package asia.yulinling.workflow; package asia.yulinling.workflow;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith; import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit.jupiter.SpringExtension;
@RunWith(SpringRunner.class) @ExtendWith(SpringExtension.class)
@SpringBootTest @SpringBootTest
public class WorkFlowMainTests { public class WorkFlowMainTests {

View File

@ -7,13 +7,13 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.test.autoconfigure.MybatisPlusTest; import com.baomidou.mybatisplus.test.autoconfigure.MybatisPlusTest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.Assert; import org.junit.jupiter.api.Assertions;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith; import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
import org.springframework.test.annotation.Rollback; import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
@ -29,7 +29,7 @@ import static org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTest
* @since 2025/6/4 * @since 2025/6/4
*/ */
@MybatisPlusTest @MybatisPlusTest
@RunWith(SpringRunner.class) @ExtendWith(SpringExtension.class)
@AutoConfigureTestDatabase(replace = NONE) @AutoConfigureTestDatabase(replace = NONE)
@Slf4j @Slf4j
public class UserMapperTest { public class UserMapperTest {
@ -39,7 +39,7 @@ public class UserMapperTest {
@Test @Test
public void selectAllUser2() { public void selectAllUser2() {
List<User> users = userMapper.selectList(null); List<User> users = userMapper.selectList(null);
Assert.assertTrue(CollUtil.isNotEmpty(users)); Assertions.assertTrue(CollUtil.isNotEmpty(users));
log.info("users={}", users); log.info("users={}", users);
} }
@ -47,7 +47,7 @@ public class UserMapperTest {
public void selectUserById() { public void selectUserById() {
// User user = userMapper.selectUserById(1L); // User user = userMapper.selectUserById(1L);
User user = userMapper.selectById(1); User user = userMapper.selectById(1);
Assert.assertNotNull(user); Assertions.assertNotNull(user);
log.info("user={}", user); log.info("user={}", user);
} }
@ -69,7 +69,7 @@ public class UserMapperTest {
// int i = userMapper.saveUser(user); // int i = userMapper.saveUser(user);
int i = userMapper.insert(user); int i = userMapper.insert(user);
Assert.assertEquals(1, i); Assertions.assertEquals(1, i);
} }
@Test @Test
@ -78,6 +78,6 @@ public class UserMapperTest {
public void deleteById() { public void deleteById() {
// int i = userMapper.deleteById(1L); // int i = userMapper.deleteById(1L);
int i = userMapper.deleteById(1); int i = userMapper.deleteById(1);
Assert.assertEquals(1, i); Assertions.assertEquals(1, i);
} }
} }

View File

@ -3,11 +3,11 @@ package asia.yulinling.workflow.service;
import asia.yulinling.workflow.WorkFlowMainTests; import asia.yulinling.workflow.WorkFlowMainTests;
import cn.hutool.core.io.resource.ResourceUtil; import cn.hutool.core.io.resource.ResourceUtil;
import jakarta.mail.MessagingException; import jakarta.mail.MessagingException;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.thymeleaf.context.Context;
import org.thymeleaf.TemplateEngine; import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.spring6.templateresolver.SpringResourceTemplateResolver; import org.thymeleaf.spring6.templateresolver.SpringResourceTemplateResolver;
import java.net.URL; import java.net.URL;

View File

@ -2,11 +2,11 @@ package asia.yulinling.workflow.service;
import asia.yulinling.workflow.WorkFlowMainTests; import asia.yulinling.workflow.WorkFlowMainTests;
import asia.yulinling.workflow.dto.request.PageParam; import asia.yulinling.workflow.dto.request.PageParam;
import asia.yulinling.workflow.model.ApiResponse;
import asia.yulinling.workflow.dto.response.PageResult; import asia.yulinling.workflow.dto.response.PageResult;
import asia.yulinling.workflow.model.ApiResponse;
import asia.yulinling.workflow.model.vo.user.UserVO; import asia.yulinling.workflow.model.vo.user.UserVO;
import org.junit.Assert; import org.junit.jupiter.api.Assertions;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
/** /**
@ -24,7 +24,7 @@ public class UserServiceTest extends WorkFlowMainTests {
@Test @Test
public void getUserList() { public void getUserList() {
ApiResponse<PageResult<UserVO>> users = userService.getUserList(); ApiResponse<PageResult<UserVO>> users = userService.getUserList();
Assert.assertEquals(200, users.getCode().intValue()); Assertions.assertEquals(200, users.getCode().intValue());
} }
@Test @Test
@ -32,6 +32,6 @@ public class UserServiceTest extends WorkFlowMainTests {
PageParam pageParam = new PageParam(); PageParam pageParam = new PageParam();
ApiResponse<PageResult<UserVO>> users = userService.getUserListByPage(pageParam); ApiResponse<PageResult<UserVO>> users = userService.getUserListByPage(pageParam);
Assert.assertEquals(200, users.getCode().intValue()); Assertions.assertEquals(200, users.getCode().intValue());
} }
} }

View File

@ -1,8 +1,8 @@
package asia.yulinling.workflow.utils; package asia.yulinling.workflow.utils;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito; import org.mockito.Mockito;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations; import org.springframework.data.redis.core.ValueOperations;

View File

@ -3,7 +3,7 @@ package asia.yulinling.workflow.utils;
import asia.yulinling.workflow.WorkFlowMainTests; import asia.yulinling.workflow.WorkFlowMainTests;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;