update: springboot 2.6.8 ==> 2.6.9

update: hutool 5.6.1 ==> 5.7.22
This commit is contained in:
YunaiV 2022-07-27 00:05:55 +08:00
parent 1b84f3f1ea
commit 9b785369ab
5 changed files with 22 additions and 26 deletions

View File

@ -16,7 +16,7 @@
<properties> <properties>
<revision>1.6.2-snapshot</revision> <revision>1.6.2-snapshot</revision>
<!-- 统一依赖管理 --> <!-- 统一依赖管理 -->
<spring.boot.version>2.6.8</spring.boot.version> <spring.boot.version>2.6.9</spring.boot.version>
<spring.cloud.version>2021.0.1</spring.cloud.version> <spring.cloud.version>2021.0.1</spring.cloud.version>
<spring.cloud.alibaba.version>2021.0.1.0</spring.cloud.alibaba.version> <spring.cloud.alibaba.version>2021.0.1.0</spring.cloud.alibaba.version>
<!-- Web 相关 --> <!-- Web 相关 -->
@ -53,7 +53,7 @@
<jasypt-spring-boot-starter.version>3.0.4</jasypt-spring-boot-starter.version> <jasypt-spring-boot-starter.version>3.0.4</jasypt-spring-boot-starter.version>
<lombok.version>1.18.20</lombok.version> <lombok.version>1.18.20</lombok.version>
<mapstruct.version>1.4.1.Final</mapstruct.version> <mapstruct.version>1.4.1.Final</mapstruct.version>
<hutool.version>5.6.1</hutool.version> <hutool.version>5.7.22</hutool.version>
<easyexcel.verion>2.2.7</easyexcel.verion> <easyexcel.verion>2.2.7</easyexcel.verion>
<velocity.version>2.2</velocity.version> <velocity.version>2.2</velocity.version>
<screw.version>1.0.5</screw.version> <screw.version>1.0.5</screw.version>

View File

@ -41,11 +41,6 @@ public class JsonUtils {
JsonUtils.objectMapper = objectMapper; JsonUtils.objectMapper = objectMapper;
} }
@SneakyThrows
public static String toJsonPrettyString(Object object) {
return objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(object);
}
@SneakyThrows @SneakyThrows
public static String toJsonString(Object object) { public static String toJsonString(Object object) {
return objectMapper.writeValueAsString(object); return objectMapper.writeValueAsString(object);
@ -56,6 +51,10 @@ public class JsonUtils {
return objectMapper.writeValueAsBytes(object); return objectMapper.writeValueAsBytes(object);
} }
@SneakyThrows
public static String toJsonPrettyString(Object object) {
return objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(object);
}
public static <T> T parseObject(String text, Class<T> clazz) { public static <T> T parseObject(String text, Class<T> clazz) {
if (StrUtil.isEmpty(text)) { if (StrUtil.isEmpty(text)) {
@ -137,7 +136,7 @@ public class JsonUtils {
} }
public static boolean isJson(String text) { public static boolean isJson(String text) {
return JSONUtil.isJson(text); return JSONUtil.isTypeJSON(text);
} }
} }

View File

@ -38,7 +38,7 @@ public class BizTraceAspect {
String operationName = getOperationName(joinPoint, trace); String operationName = getOperationName(joinPoint, trace);
Span span = tracer.buildSpan(operationName) Span span = tracer.buildSpan(operationName)
.withTag(Tags.COMPONENT.getKey(), "biz") .withTag(Tags.COMPONENT.getKey(), "biz")
.startManual(); .start();
try { try {
// 执行原有方法 // 执行原有方法
return joinPoint.proceed(); return joinPoint.proceed();

View File

@ -40,7 +40,7 @@ public class RandomUtils {
// Integer // Integer
PODAM_FACTORY.getStrategy().addOrReplaceTypeManufacturer(Integer.class, (dataProviderStrategy, attributeMetadata, map) -> { PODAM_FACTORY.getStrategy().addOrReplaceTypeManufacturer(Integer.class, (dataProviderStrategy, attributeMetadata, map) -> {
// 如果是 status 的字段返回 0 1 // 如果是 status 的字段返回 0 1
if (attributeMetadata.getAttributeName().equals("status")) { if ("status".equals(attributeMetadata.getAttributeName())) {
return RandomUtil.randomEle(CommonStatusEnum.values()).getStatus(); return RandomUtil.randomEle(CommonStatusEnum.values()).getStatus();
} }
// 如果是 typestatus 结尾的字段返回 tinyint 范围 // 如果是 typestatus 结尾的字段返回 tinyint 范围
@ -53,7 +53,7 @@ public class RandomUtils {
// Boolean // Boolean
PODAM_FACTORY.getStrategy().addOrReplaceTypeManufacturer(Boolean.class, (dataProviderStrategy, attributeMetadata, map) -> { PODAM_FACTORY.getStrategy().addOrReplaceTypeManufacturer(Boolean.class, (dataProviderStrategy, attributeMetadata, map) -> {
// 如果是 deleted 的字段返回非删除 // 如果是 deleted 的字段返回非删除
if (attributeMetadata.getAttributeName().equals("deleted")) { if ("deleted".equals(attributeMetadata.getAttributeName())) {
return false; return false;
} }
return RandomUtil.randomBoolean(); return RandomUtil.randomBoolean();

View File

@ -3,7 +3,6 @@ package cn.iocoder.yudao.framework.swagger.config;
import cn.iocoder.yudao.framework.swagger.core.SpringFoxHandlerProviderBeanPostProcessor; import cn.iocoder.yudao.framework.swagger.core.SpringFoxHandlerProviderBeanPostProcessor;
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
@ -22,6 +21,7 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID;
import static springfox.documentation.builders.RequestHandlerSelectors.basePackage; import static springfox.documentation.builders.RequestHandlerSelectors.basePackage;
/** /**
@ -44,27 +44,22 @@ public class YudaoSwaggerAutoConfiguration {
} }
@Bean @Bean
@ConditionalOnMissingBean public Docket createRestApi(SwaggerProperties properties) {
public SwaggerProperties swaggerProperties() {
return new SwaggerProperties();
}
@Bean
public Docket createRestApi() {
SwaggerProperties properties = swaggerProperties();
// 创建 Docket 对象 // 创建 Docket 对象
return new Docket(DocumentationType.SWAGGER_2) return new Docket(DocumentationType.SWAGGER_2)
// 用来创建该 API 的基本信息展示在文档的页面中自定义展示的信息 // 用来创建该 API 的基本信息展示在文档的页面中自定义展示的信息
.apiInfo(apiInfo(properties)) .apiInfo(apiInfo(properties))
// 设置扫描指定 package 包下的 // 设置扫描指定 package 包下的
.select() .select()
.apis(basePackage(properties.getBasePackage())) .apis(basePackage(properties.getBasePackage()))
// .apis(basePackage("cn.iocoder.yudao.module.system")) // 可用于 swagger 无法展示时使用 // .apis(basePackage("cn.iocoder.yudao.module.system")) // 可用于 swagger 无法展示时使用
.paths(PathSelectors.any()) .paths(PathSelectors.any())
.build() .build()
// 安全上下文认证
.securitySchemes(securitySchemes()) .securitySchemes(securitySchemes())
.globalRequestParameters(globalRequestParameters()) .securityContexts(securityContexts())
.securityContexts(securityContexts()); // 全局参数多租户 header
.globalRequestParameters(globalRequestParameters());
} }
// ========== apiInfo ========== // ========== apiInfo ==========
@ -99,7 +94,8 @@ public class YudaoSwaggerAutoConfiguration {
private static List<SecurityContext> securityContexts() { private static List<SecurityContext> securityContexts() {
return Collections.singletonList(SecurityContext.builder() return Collections.singletonList(SecurityContext.builder()
.securityReferences(securityReferences()) .securityReferences(securityReferences())
.forPaths(PathSelectors.regex("^(?!auth).*$")) // 通过 PathSelectors.regex("^(?!auth).*$")排除包含 "auth" 的接口不需要使用securitySchemes
.operationSelector(o -> o.requestMappingPattern().matches("^(?!auth).*$"))
.build()); .build());
} }
@ -114,7 +110,8 @@ public class YudaoSwaggerAutoConfiguration {
// ========== globalRequestParameters ========== // ========== globalRequestParameters ==========
private static List<RequestParameter> globalRequestParameters() { private static List<RequestParameter> globalRequestParameters() {
RequestParameterBuilder tenantParameter = new RequestParameterBuilder().name("tenant-id").description("租户编号") RequestParameterBuilder tenantParameter = new RequestParameterBuilder()
.name(HEADER_TENANT_ID).description("租户编号")
.in(ParameterType.HEADER).example(new ExampleBuilder().value(1L).build()); .in(ParameterType.HEADER).example(new ExampleBuilder().value(1L).build());
return Collections.singletonList(tenantParameter.build()); return Collections.singletonList(tenantParameter.build());
} }