mirror of https://github.com/elunez/eladmin
升级依赖包
parent
b9aca9366d
commit
837f23080b
|
@ -9,7 +9,7 @@
|
|||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<properties>
|
||||
<hutool.version>5.3.4</hutool.version>
|
||||
<hutool.version>5.7.22</hutool.version>
|
||||
</properties>
|
||||
|
||||
<artifactId>eladmin-common</artifactId>
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
*/
|
||||
package me.zhengjie.config;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.fasterxml.classmate.TypeResolver;
|
||||
import com.google.common.base.Predicates;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
@ -29,14 +29,18 @@ import springfox.documentation.builders.ApiInfoBuilder;
|
|||
import springfox.documentation.builders.PathSelectors;
|
||||
import springfox.documentation.schema.AlternateTypeRule;
|
||||
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.service.contexts.SecurityContext;
|
||||
import springfox.documentation.spring.web.plugins.Docket;
|
||||
import springfox.documentation.swagger2.annotations.EnableSwagger2;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import static com.google.common.collect.Lists.newArrayList;
|
||||
|
||||
import static springfox.documentation.schema.AlternateTypeRules.newRule;
|
||||
|
||||
/**
|
||||
|
@ -62,7 +66,7 @@ public class SwaggerConfig {
|
|||
.pathMapping("/")
|
||||
.apiInfo(apiInfo())
|
||||
.select()
|
||||
.paths(Predicates.not(PathSelectors.regex("/error.*")))
|
||||
.paths(PathSelectors.regex("^(?!/error).*"))
|
||||
.paths(PathSelectors.any())
|
||||
.build()
|
||||
//添加登陆认证
|
||||
|
@ -98,7 +102,7 @@ public class SwaggerConfig {
|
|||
private SecurityContext getContextByPath() {
|
||||
return SecurityContext.builder()
|
||||
.securityReferences(defaultAuth())
|
||||
.forPaths(PathSelectors.regex("^(?!/auth).*$"))
|
||||
.operationSelector(o->o.requestMappingPattern().matches("^(?!/auth).*$"))
|
||||
.build();
|
||||
}
|
||||
|
||||
|
@ -128,7 +132,7 @@ class SwaggerDataConfig {
|
|||
|
||||
@Override
|
||||
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)));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
@ -15,16 +15,17 @@
|
|||
*/
|
||||
package me.zhengjie.utils;
|
||||
|
||||
import cn.hutool.core.lang.Validator;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import me.zhengjie.exception.BadRequestException;
|
||||
import org.hibernate.validator.internal.constraintvalidators.hv.EmailValidator;
|
||||
|
||||
/**
|
||||
* 验证工具
|
||||
*
|
||||
* @author Zheng Jie
|
||||
* @date 2018-11-23
|
||||
*/
|
||||
public class ValidationUtil{
|
||||
public class ValidationUtil {
|
||||
|
||||
/**
|
||||
* 验证空
|
||||
|
@ -36,10 +37,10 @@ public class ValidationUtil{
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证是否为邮箱
|
||||
*/
|
||||
public static boolean isEmail(String email) {
|
||||
return new EmailValidator().isValid(email, null);
|
||||
}
|
||||
/**
|
||||
* 验证是否为邮箱
|
||||
*/
|
||||
public static boolean isEmail(String email) {
|
||||
return Validator.isEmail(email);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package me.zhengjie.utils;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
package me.zhengjie.utils;
|
||||
|
||||
import org.junit.Test;
|
||||
import static org.junit.Assert.*;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static me.zhengjie.utils.EncryptUtils.*;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
public class EncryptUtilsTest {
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package me.zhengjie.utils;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.mock.web.MockMultipartFile;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static me.zhengjie.utils.FileUtil.*;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
public class FileUtilTest {
|
||||
|
||||
|
|
|
@ -1,13 +1,18 @@
|
|||
package me.zhengjie.utils;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.mock.web.MockHttpServletRequest;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.Date;
|
||||
|
||||
import static me.zhengjie.utils.StringUtils.*;
|
||||
import static org.junit.Assert.*;
|
||||
import static me.zhengjie.utils.StringUtils.getIp;
|
||||
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 {
|
||||
|
||||
|
@ -40,4 +45,4 @@ public class StringUtilsTest {
|
|||
public void testGetIP() {
|
||||
assertEquals("127.0.0.1", getIp(new MockHttpServletRequest()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<name>代码生成模块</name>
|
||||
|
||||
<properties>
|
||||
<configuration.version>1.9</configuration.version>
|
||||
<configuration.version>1.10</configuration.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<name>核心模块</name>
|
||||
|
||||
<properties>
|
||||
<jjwt.version>0.11.1</jjwt.version>
|
||||
<jjwt.version>0.11.2</jjwt.version>
|
||||
<!-- oshi监控需要指定jna版本, 问题详见 https://github.com/oshi/oshi/issues/1040 -->
|
||||
<jna.version>5.8.0</jna.version>
|
||||
</properties>
|
||||
|
@ -84,7 +84,7 @@
|
|||
<dependency>
|
||||
<groupId>com.github.oshi</groupId>
|
||||
<artifactId>oshi-core</artifactId>
|
||||
<version>5.7.1</version>
|
||||
<version>6.1.4</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ public class ConfigurerAdapter implements WebMvcConfigurer {
|
|||
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
|
||||
CorsConfiguration config = new CorsConfiguration();
|
||||
config.setAllowCredentials(true);
|
||||
config.addAllowedOrigin("*");
|
||||
config.addAllowedOriginPattern("*");
|
||||
config.addAllowedHeader("*");
|
||||
config.addAllowedMethod("*");
|
||||
source.registerCorsConfiguration("/**", config);
|
||||
|
|
|
@ -15,9 +15,8 @@
|
|||
*/
|
||||
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 me.zhengjie.exception.BadRequestException;
|
||||
import me.zhengjie.modules.system.service.MonitorService;
|
||||
import me.zhengjie.utils.ElAdminConstant;
|
||||
import me.zhengjie.utils.FileUtil;
|
||||
|
@ -177,7 +176,7 @@ public class MonitorServiceImpl implements MonitorService {
|
|||
long time = ManagementFactory.getRuntimeMXBean().getStartTime();
|
||||
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("day", formatBetween);
|
||||
|
|
|
@ -5,4 +5,4 @@
|
|||
| __| | | (_| | (_| | | | | | | | | | |
|
||||
\___|_| \__,_|\__,_|_| |_| |_|_|_| |_|
|
||||
|
||||
:: Spring Boot :: (v2.1.0.RELEASE)
|
||||
:: Spring Boot :: (v2.6.4)
|
|
@ -1,11 +1,8 @@
|
|||
package me.zhengjie;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||
public class EladminSystemApplicationTests {
|
||||
|
||||
|
|
|
@ -1,64 +1,62 @@
|
|||
package me.zhengjie;
|
||||
|
||||
import me.zhengjie.modules.security.service.UserDetailsServiceImpl;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||
public class LoginCacheTest {
|
||||
|
||||
@Resource(name = "userDetailsService")
|
||||
private UserDetailsServiceImpl userDetailsService;
|
||||
ExecutorService executor = Executors.newCachedThreadPool();
|
||||
@Resource(name = "userDetailsService")
|
||||
private UserDetailsServiceImpl userDetailsService;
|
||||
|
||||
@Test
|
||||
public void testCache() throws InterruptedException {
|
||||
long start1 = System.currentTimeMillis();
|
||||
int size = 1000;
|
||||
CountDownLatch latch = new CountDownLatch(size);
|
||||
for (int i = 0; i < size; i++) {
|
||||
executor.submit(() -> userDetailsService.loadUserByUsername("admin"));
|
||||
ExecutorService executor = Executors.newCachedThreadPool();
|
||||
|
||||
@Test
|
||||
public void testCache() throws InterruptedException {
|
||||
long start1 = System.currentTimeMillis();
|
||||
int size = 1000;
|
||||
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.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) + "毫秒");
|
||||
System.out.println("剩余未完成数量" + latch.getCount());
|
||||
});
|
||||
}
|
||||
|
||||
@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();
|
||||
}
|
||||
|
||||
latch.await();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,8 +14,8 @@
|
|||
|
||||
<properties>
|
||||
<mail.version>1.4.7</mail.version>
|
||||
<qiniu.version>[7.2.0, 7.2.99]</qiniu.version>
|
||||
<alipay.version>4.9.153.ALL</alipay.version>
|
||||
<qiniu.version>7.9.3</qiniu.version>
|
||||
<alipay.version>4.22.57.ALL</alipay.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
@ -47,4 +47,4 @@
|
|||
<version>${alipay.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
</project>
|
||||
|
|
54
pom.xml
54
pom.xml
|
@ -23,7 +23,7 @@
|
|||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.2.10.RELEASE</version>
|
||||
<version>2.6.4</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
|
@ -34,10 +34,10 @@
|
|||
<java.version>1.8</java.version>
|
||||
<log4jdbc.version>1.16</log4jdbc.version>
|
||||
<swagger.version>2.9.2</swagger.version>
|
||||
<fastjson.version>1.2.70</fastjson.version>
|
||||
<druid.version>1.1.24</druid.version>
|
||||
<commons-pool2.version>2.5.0</commons-pool2.version>
|
||||
<mapstruct.version>1.3.1.Final</mapstruct.version>
|
||||
<fastjson.version>1.2.79</fastjson.version>
|
||||
<druid.version>1.2.8</druid.version>
|
||||
<commons-pool2.version>2.11.1</commons-pool2.version>
|
||||
<mapstruct.version>1.4.2.Final</mapstruct.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
@ -80,6 +80,7 @@
|
|||
</dependency>
|
||||
|
||||
<!--spring boot 集成redis所需common-pool2-->
|
||||
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 -->
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-pool2</artifactId>
|
||||
|
@ -98,37 +99,14 @@
|
|||
</dependency>
|
||||
|
||||
<!-- Swagger UI 相关 -->
|
||||
<!-- https://mvnrepository.com/artifact/com.github.xiaoymin/knife4j-spring-boot-starter -->
|
||||
<dependency>
|
||||
<groupId>io.springfox</groupId>
|
||||
<artifactId>springfox-swagger2</artifactId>
|
||||
<version>${swagger.version}</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>
|
||||
<groupId>com.github.xiaoymin</groupId>
|
||||
<artifactId>knife4j-spring-boot-starter</artifactId>
|
||||
<version>3.0.3</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!--Mysql依赖包-->
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
|
@ -144,13 +122,13 @@
|
|||
</dependency>
|
||||
|
||||
<!-- ip2region IP库 -->
|
||||
<!-- https://mvnrepository.com/artifact/net.dreamlu/mica-ip2region -->
|
||||
<dependency>
|
||||
<groupId>net.dreamlu</groupId>
|
||||
<artifactId>mica-ip2region</artifactId>
|
||||
<version>2.5.6</version>
|
||||
<version>2.6.3</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!--lombok插件-->
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
|
@ -162,12 +140,12 @@
|
|||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi</artifactId>
|
||||
<version>3.17</version>
|
||||
<version>5.2.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml</artifactId>
|
||||
<version>3.17</version>
|
||||
<version>5.2.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>xerces</groupId>
|
||||
|
@ -211,7 +189,7 @@
|
|||
<dependency>
|
||||
<groupId>nl.basjes.parse.useragent</groupId>
|
||||
<artifactId>yauaa</artifactId>
|
||||
<version>5.23</version>
|
||||
<version>6.11</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
|
Loading…
Reference in New Issue