升级依赖包

pull/735/head
luoqiangzheng@hz-cpp.com 2022-03-14 15:05:25 +08:00
parent b9aca9366d
commit 837f23080b
16 changed files with 108 additions and 125 deletions

View File

@ -9,7 +9,7 @@
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<properties> <properties>
<hutool.version>5.3.4</hutool.version> <hutool.version>5.7.22</hutool.version>
</properties> </properties>
<artifactId>eladmin-common</artifactId> <artifactId>eladmin-common</artifactId>

View File

@ -15,8 +15,8 @@
*/ */
package me.zhengjie.config; package me.zhengjie.config;
import cn.hutool.core.collection.CollUtil;
import com.fasterxml.classmate.TypeResolver; import com.fasterxml.classmate.TypeResolver;
import com.google.common.base.Predicates;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -29,14 +29,18 @@ import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.PathSelectors;
import springfox.documentation.schema.AlternateTypeRule; import springfox.documentation.schema.AlternateTypeRule;
import springfox.documentation.schema.AlternateTypeRuleConvention; import springfox.documentation.schema.AlternateTypeRuleConvention;
import springfox.documentation.service.*; import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.ApiKey;
import springfox.documentation.service.AuthorizationScope;
import springfox.documentation.service.SecurityReference;
import springfox.documentation.service.SecurityScheme;
import springfox.documentation.spi.DocumentationType; import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.contexts.SecurityContext; import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2; import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import static com.google.common.collect.Lists.newArrayList;
import static springfox.documentation.schema.AlternateTypeRules.newRule; import static springfox.documentation.schema.AlternateTypeRules.newRule;
/** /**
@ -62,7 +66,7 @@ public class SwaggerConfig {
.pathMapping("/") .pathMapping("/")
.apiInfo(apiInfo()) .apiInfo(apiInfo())
.select() .select()
.paths(Predicates.not(PathSelectors.regex("/error.*"))) .paths(PathSelectors.regex("^(?!/error).*"))
.paths(PathSelectors.any()) .paths(PathSelectors.any())
.build() .build()
//添加登陆认证 //添加登陆认证
@ -98,7 +102,7 @@ public class SwaggerConfig {
private SecurityContext getContextByPath() { private SecurityContext getContextByPath() {
return SecurityContext.builder() return SecurityContext.builder()
.securityReferences(defaultAuth()) .securityReferences(defaultAuth())
.forPaths(PathSelectors.regex("^(?!/auth).*$")) .operationSelector(o->o.requestMappingPattern().matches("^(?!/auth).*$"))
.build(); .build();
} }
@ -128,7 +132,7 @@ class SwaggerDataConfig {
@Override @Override
public List<AlternateTypeRule> rules() { public List<AlternateTypeRule> rules() {
return newArrayList(newRule(resolver.resolve(Pageable.class), resolver.resolve(Page.class))); return CollUtil.newArrayList(newRule(resolver.resolve(Pageable.class), resolver.resolve(Page.class)));
} }
}; };
} }

View File

@ -15,16 +15,17 @@
*/ */
package me.zhengjie.utils; package me.zhengjie.utils;
import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import me.zhengjie.exception.BadRequestException; import me.zhengjie.exception.BadRequestException;
import org.hibernate.validator.internal.constraintvalidators.hv.EmailValidator;
/** /**
* *
*
* @author Zheng Jie * @author Zheng Jie
* @date 2018-11-23 * @date 2018-11-23
*/ */
public class ValidationUtil{ public class ValidationUtil {
/** /**
* *
@ -36,10 +37,10 @@ public class ValidationUtil{
} }
} }
/** /**
* *
*/ */
public static boolean isEmail(String email) { public static boolean isEmail(String email) {
return new EmailValidator().isValid(email, null); return Validator.isEmail(email);
} }
} }

View File

@ -1,6 +1,6 @@
package me.zhengjie.utils; package me.zhengjie.utils;
import org.junit.Test; import org.junit.jupiter.api.Test;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;

View File

@ -1,8 +1,9 @@
package me.zhengjie.utils; package me.zhengjie.utils;
import org.junit.Test; import org.junit.jupiter.api.Test;
import static org.junit.Assert.*;
import static me.zhengjie.utils.EncryptUtils.*; import static me.zhengjie.utils.EncryptUtils.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class EncryptUtilsTest { public class EncryptUtilsTest {

View File

@ -1,10 +1,10 @@
package me.zhengjie.utils; package me.zhengjie.utils;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.springframework.mock.web.MockMultipartFile; import org.springframework.mock.web.MockMultipartFile;
import static org.junit.Assert.*;
import static me.zhengjie.utils.FileUtil.*; import static me.zhengjie.utils.FileUtil.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class FileUtilTest { public class FileUtilTest {

View File

@ -1,13 +1,18 @@
package me.zhengjie.utils; package me.zhengjie.utils;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletRequest;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.Date;
import static me.zhengjie.utils.StringUtils.*; import static me.zhengjie.utils.StringUtils.getIp;
import static org.junit.Assert.*; import static me.zhengjie.utils.StringUtils.getWeekDay;
import static me.zhengjie.utils.StringUtils.toCamelCase;
import static me.zhengjie.utils.StringUtils.toCapitalizeCamelCase;
import static me.zhengjie.utils.StringUtils.toUnderScoreCase;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
public class StringUtilsTest { public class StringUtilsTest {

View File

@ -13,7 +13,7 @@
<name>代码生成模块</name> <name>代码生成模块</name>
<properties> <properties>
<configuration.version>1.9</configuration.version> <configuration.version>1.10</configuration.version>
</properties> </properties>
<dependencies> <dependencies>

View File

@ -13,7 +13,7 @@
<name>核心模块</name> <name>核心模块</name>
<properties> <properties>
<jjwt.version>0.11.1</jjwt.version> <jjwt.version>0.11.2</jjwt.version>
<!-- oshi监控需要指定jna版本, 问题详见 https://github.com/oshi/oshi/issues/1040 --> <!-- oshi监控需要指定jna版本, 问题详见 https://github.com/oshi/oshi/issues/1040 -->
<jna.version>5.8.0</jna.version> <jna.version>5.8.0</jna.version>
</properties> </properties>
@ -84,7 +84,7 @@
<dependency> <dependency>
<groupId>com.github.oshi</groupId> <groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId> <artifactId>oshi-core</artifactId>
<version>5.7.1</version> <version>6.1.4</version>
</dependency> </dependency>
</dependencies> </dependencies>

View File

@ -54,7 +54,7 @@ public class ConfigurerAdapter implements WebMvcConfigurer {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration(); CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true); config.setAllowCredentials(true);
config.addAllowedOrigin("*"); config.addAllowedOriginPattern("*");
config.addAllowedHeader("*"); config.addAllowedHeader("*");
config.addAllowedMethod("*"); config.addAllowedMethod("*");
source.registerCorsConfiguration("/**", config); source.registerCorsConfiguration("/**", config);

View File

@ -15,9 +15,8 @@
*/ */
package me.zhengjie.modules.system.service.impl; package me.zhengjie.modules.system.service.impl;
import cn.hutool.core.date.BetweenFormater; import cn.hutool.core.date.BetweenFormatter.Level;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import me.zhengjie.exception.BadRequestException;
import me.zhengjie.modules.system.service.MonitorService; import me.zhengjie.modules.system.service.MonitorService;
import me.zhengjie.utils.ElAdminConstant; import me.zhengjie.utils.ElAdminConstant;
import me.zhengjie.utils.FileUtil; import me.zhengjie.utils.FileUtil;
@ -177,7 +176,7 @@ public class MonitorServiceImpl implements MonitorService {
long time = ManagementFactory.getRuntimeMXBean().getStartTime(); long time = ManagementFactory.getRuntimeMXBean().getStartTime();
Date date = new Date(time); Date date = new Date(time);
// 计算项目运行时间 // 计算项目运行时间
String formatBetween = DateUtil.formatBetween(date, new Date(),BetweenFormater.Level.HOUR); String formatBetween = DateUtil.formatBetween(date, new Date(), Level.HOUR);
// 系统信息 // 系统信息
systemInfo.put("os", os.toString()); systemInfo.put("os", os.toString());
systemInfo.put("day", formatBetween); systemInfo.put("day", formatBetween);

View File

@ -5,4 +5,4 @@
| __| | | (_| | (_| | | | | | | | | | | | __| | | (_| | (_| | | | | | | | | | |
\___|_| \__,_|\__,_|_| |_| |_|_|_| |_| \___|_| \__,_|\__,_|_| |_| |_|_|_| |_|
:: Spring Boot :: (v2.1.0.RELEASE) :: Spring Boot :: (v2.6.4)

View File

@ -1,11 +1,8 @@
package me.zhengjie; package me.zhengjie;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class EladminSystemApplicationTests { public class EladminSystemApplicationTests {

View File

@ -1,64 +1,62 @@
package me.zhengjie; package me.zhengjie;
import me.zhengjie.modules.security.service.UserDetailsServiceImpl; import me.zhengjie.modules.security.service.UserDetailsServiceImpl;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class LoginCacheTest { public class LoginCacheTest {
@Resource(name = "userDetailsService") @Resource(name = "userDetailsService")
private UserDetailsServiceImpl userDetailsService; private UserDetailsServiceImpl userDetailsService;
ExecutorService executor = Executors.newCachedThreadPool();
@Test ExecutorService executor = Executors.newCachedThreadPool();
public void testCache() throws InterruptedException {
long start1 = System.currentTimeMillis(); @Test
int size = 1000; public void testCache() throws InterruptedException {
CountDownLatch latch = new CountDownLatch(size); long start1 = System.currentTimeMillis();
for (int i = 0; i < size; i++) { int size = 1000;
executor.submit(() -> userDetailsService.loadUserByUsername("admin")); CountDownLatch latch = new CountDownLatch(size);
for (int i = 0; i < size; i++) {
executor.submit(() -> userDetailsService.loadUserByUsername("admin"));
latch.countDown();
}
latch.await();
long end1 = System.currentTimeMillis();
// 关闭缓存
userDetailsService.setEnableCache(false);
long start2 = System.currentTimeMillis();
for (int i = 0; i < size; i++) {
userDetailsService.loadUserByUsername("admin");
}
long end2 = System.currentTimeMillis();
System.out.print("使用缓存:" + (end1 - start1) + "毫秒\n 不使用缓存:" + (end2 - start2) + "毫秒");
}
@Test
public void testCacheManager() throws InterruptedException {
int size = 1000;
CountDownLatch latch = new CountDownLatch(size);
for (int i = 0; i < size; i++) {
int mod = i % 10;
executor.submit(
() -> {
try {
Thread.sleep(mod * 2 + (int) (Math.random() * 10000));
} catch (InterruptedException e) {
e.printStackTrace();
}
userDetailsService.loadUserByUsername("admin" + mod);
latch.countDown(); latch.countDown();
} System.out.println("剩余未完成数量" + latch.getCount());
latch.await(); });
long end1 = System.currentTimeMillis();
//关闭缓存
userDetailsService.setEnableCache(false);
long start2 = System.currentTimeMillis();
for (int i = 0; i < size; i++) {
userDetailsService.loadUserByUsername("admin");
}
long end2 = System.currentTimeMillis();
System.out.print("使用缓存:" + (end1 - start1) + "毫秒\n 不使用缓存:" + (end2 - start2) + "毫秒");
} }
latch.await();
@Test }
public void testCacheManager() throws InterruptedException {
int size = 1000;
CountDownLatch latch = new CountDownLatch(size);
for (int i = 0; i < size; i++) {
int mod = i % 10;
executor.submit(() -> {
try {
Thread.sleep(mod * 2 + (int) (Math.random() * 10000));
} catch (InterruptedException e) {
e.printStackTrace();
}
userDetailsService.loadUserByUsername("admin" + mod);
latch.countDown();
System.out.println("剩余未完成数量" + latch.getCount());
});
}
latch.await();
}
} }

View File

@ -14,8 +14,8 @@
<properties> <properties>
<mail.version>1.4.7</mail.version> <mail.version>1.4.7</mail.version>
<qiniu.version>[7.2.0, 7.2.99]</qiniu.version> <qiniu.version>7.9.3</qiniu.version>
<alipay.version>4.9.153.ALL</alipay.version> <alipay.version>4.22.57.ALL</alipay.version>
</properties> </properties>
<dependencies> <dependencies>

54
pom.xml
View File

@ -23,7 +23,7 @@
<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>2.2.10.RELEASE</version> <version>2.6.4</version>
</parent> </parent>
<properties> <properties>
@ -34,10 +34,10 @@
<java.version>1.8</java.version> <java.version>1.8</java.version>
<log4jdbc.version>1.16</log4jdbc.version> <log4jdbc.version>1.16</log4jdbc.version>
<swagger.version>2.9.2</swagger.version> <swagger.version>2.9.2</swagger.version>
<fastjson.version>1.2.70</fastjson.version> <fastjson.version>1.2.79</fastjson.version>
<druid.version>1.1.24</druid.version> <druid.version>1.2.8</druid.version>
<commons-pool2.version>2.5.0</commons-pool2.version> <commons-pool2.version>2.11.1</commons-pool2.version>
<mapstruct.version>1.3.1.Final</mapstruct.version> <mapstruct.version>1.4.2.Final</mapstruct.version>
</properties> </properties>
<dependencies> <dependencies>
@ -80,6 +80,7 @@
</dependency> </dependency>
<!--spring boot 集成redis所需common-pool2--> <!--spring boot 集成redis所需common-pool2-->
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 -->
<dependency> <dependency>
<groupId>org.apache.commons</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId> <artifactId>commons-pool2</artifactId>
@ -98,37 +99,14 @@
</dependency> </dependency>
<!-- Swagger UI 相关 --> <!-- Swagger UI 相关 -->
<!-- https://mvnrepository.com/artifact/com.github.xiaoymin/knife4j-spring-boot-starter -->
<dependency> <dependency>
<groupId>io.springfox</groupId> <groupId>com.github.xiaoymin</groupId>
<artifactId>springfox-swagger2</artifactId> <artifactId>knife4j-spring-boot-starter</artifactId>
<version>${swagger.version}</version> <version>3.0.3</version>
<exclusions>
<exclusion>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
</exclusion>
<exclusion>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.21</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>1.5.21</version>
</dependency> </dependency>
<!--Mysql依赖包--> <!--Mysql依赖包-->
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
@ -144,13 +122,13 @@
</dependency> </dependency>
<!-- ip2region IP库 --> <!-- ip2region IP库 -->
<!-- https://mvnrepository.com/artifact/net.dreamlu/mica-ip2region -->
<dependency> <dependency>
<groupId>net.dreamlu</groupId> <groupId>net.dreamlu</groupId>
<artifactId>mica-ip2region</artifactId> <artifactId>mica-ip2region</artifactId>
<version>2.5.6</version> <version>2.6.3</version>
</dependency> </dependency>
<!--lombok插件--> <!--lombok插件-->
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
@ -162,12 +140,12 @@
<dependency> <dependency>
<groupId>org.apache.poi</groupId> <groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId> <artifactId>poi</artifactId>
<version>3.17</version> <version>5.2.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.poi</groupId> <groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId> <artifactId>poi-ooxml</artifactId>
<version>3.17</version> <version>5.2.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>xerces</groupId> <groupId>xerces</groupId>
@ -211,7 +189,7 @@
<dependency> <dependency>
<groupId>nl.basjes.parse.useragent</groupId> <groupId>nl.basjes.parse.useragent</groupId>
<artifactId>yauaa</artifactId> <artifactId>yauaa</artifactId>
<version>5.23</version> <version>6.11</version>
</dependency> </dependency>
</dependencies> </dependencies>