From b7b4ea81216107ae08fc6c71c37ec79aea17f029 Mon Sep 17 00:00:00 2001
From: chendt <18902722133@163.com>
Date: Mon, 7 Nov 2022 09:24:56 +0800
Subject: [PATCH] =?UTF-8?q?springboot=E5=8D=87=E7=BA=A7=E5=88=B02.7.0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 +-
.../src/main/resources/application.yml | 22 +-------
.../shop/common/config/Swagger2Config.java | 55 +++++++++++++++++++
.../com/yami/shop/common/util/RedisUtil.java | 18 +++---
.../src/main/resources/application-quartz.yml | 2 +-
.../security/common/config/CorsConfig.java | 4 +-
6 files changed, 72 insertions(+), 31 deletions(-)
create mode 100644 yami-shop-common/src/main/java/com/yami/shop/common/config/Swagger2Config.java
diff --git a/pom.xml b/pom.xml
index f3224e9..1db4f3e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
UTF-8
UTF-8
3.7.0
- 2.3.12.RELEASE
+ 2.7.0
1.8
31.1-jre
5.7.22
diff --git a/yami-shop-api/src/main/resources/application.yml b/yami-shop-api/src/main/resources/application.yml
index 3f89780..26d9859 100644
--- a/yami-shop-api/src/main/resources/application.yml
+++ b/yami-shop-api/src/main/resources/application.yml
@@ -12,26 +12,8 @@ spring:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
mvc:
- formcontent:
- filter:
- enabled: false
- autoconfigure:
- exclude: org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration,\
- org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration,\
- org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\
- org.springframework.boot.autoconfigure.jdbc.XADataSourceAutoConfiguration,\
- org.springframework.boot.autoconfigure.jdbc.JndiDataSourceAutoConfiguration,\
- org.springframework.boot.autoconfigure.transaction.jta.JtaAutoConfiguration,\
- org.springframework.boot.autoconfigure.websocket.WebSocketAutoConfiguration,\
- org.springframework.boot.autoconfigure.websocket.WebSocketMessagingAutoConfiguration,\
- org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration,\
- org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAutoConfiguration,\
- org.springframework.boot.autoconfigure.mustache.MustacheAutoConfiguration,\
- org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration,\
- org.springframework.boot.autoconfigure.mail.MailSenderValidatorAutoConfiguration,\
- org.springframework.boot.actuate.autoconfigure.TraceRepositoryAutoConfiguration,\
- org.springframework.boot.actuate.autoconfigure.TraceWebFilterAutoConfiguration,\
- org.springframework.boot.actuate.autoconfigure.MetricFilterAutoConfiguration
+ pathmatch:
+ matching-strategy: ANT_PATH_MATCHER
# mybaits-plus配置
mybatis-plus:
# MyBatis Mapper所对应的XML文件位置
diff --git a/yami-shop-common/src/main/java/com/yami/shop/common/config/Swagger2Config.java b/yami-shop-common/src/main/java/com/yami/shop/common/config/Swagger2Config.java
new file mode 100644
index 0000000..cf475da
--- /dev/null
+++ b/yami-shop-common/src/main/java/com/yami/shop/common/config/Swagger2Config.java
@@ -0,0 +1,55 @@
+package com.yami.shop.common.config;
+
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.config.BeanPostProcessor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.util.ReflectionUtils;
+import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping;
+import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider;
+import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider;
+
+import java.lang.reflect.Field;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author FrozenWatermelon
+ * @date 2022/4/24
+ */
+@Configuration
+public class Swagger2Config {
+
+ @Bean
+ public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() {
+ return new BeanPostProcessor() {
+
+ @Override
+ public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
+ if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) {
+ customizeSpringfoxHandlerMappings(getHandlerMappings(bean));
+ }
+ return bean;
+ }
+
+ private void customizeSpringfoxHandlerMappings(List mappings) {
+ List copy = mappings.stream()
+ .filter(mapping -> mapping.getPatternParser() == null)
+ .collect(Collectors.toList());
+ mappings.clear();
+ mappings.addAll(copy);
+ }
+
+ @SuppressWarnings("unchecked")
+ private List getHandlerMappings(Object bean) {
+ try {
+ Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings");
+ field.setAccessible(true);
+ return (List) field.get(bean);
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ throw new IllegalStateException(e);
+ }
+ }
+ };
+ }
+}
diff --git a/yami-shop-common/src/main/java/com/yami/shop/common/util/RedisUtil.java b/yami-shop-common/src/main/java/com/yami/shop/common/util/RedisUtil.java
index bf16ecd..1449258 100644
--- a/yami-shop-common/src/main/java/com/yami/shop/common/util/RedisUtil.java
+++ b/yami-shop-common/src/main/java/com/yami/shop/common/util/RedisUtil.java
@@ -12,8 +12,10 @@ package com.yami.shop.common.util;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.util.CollectionUtils;
+import java.util.Arrays;
import java.util.concurrent.TimeUnit;
/**
@@ -23,6 +25,8 @@ import java.util.concurrent.TimeUnit;
public class RedisUtil {
private static RedisTemplate redisTemplate = SpringContextUtils.getBean("redisTemplate", RedisTemplate.class);
+ public static final StringRedisTemplate STRING_REDIS_TEMPLATE = SpringContextUtils.getBean("stringRedisTemplate",StringRedisTemplate.class);
+
//=============================common============================
/**
@@ -50,7 +54,7 @@ public class RedisUtil {
* @param key 键 不能为null
* @return 时间(秒) 返回0代表为永久有效 失效时间为负数,说明该主键未设置失效时间(失效时间默认为-1)
*/
- public static long getExpire(String key) {
+ public static Long getExpire(String key) {
return redisTemplate.getExpire(key, TimeUnit.SECONDS);
}
@@ -60,7 +64,7 @@ public class RedisUtil {
* @param key 键
* @return true 存在 false 不存在
*/
- public static boolean hasKey(String key) {
+ public static Boolean hasKey(String key) {
try {
return redisTemplate.hasKey(key);
} catch (Exception e) {
@@ -80,7 +84,7 @@ public class RedisUtil {
if (key.length == 1) {
redisTemplate.delete(key[0]);
} else {
- redisTemplate.delete(CollectionUtils.arrayToList(key));
+ redisTemplate.delete(Arrays.asList(key));
}
}
}
@@ -145,11 +149,11 @@ public class RedisUtil {
* @param delta 要增加几(大于0)
* @return
*/
- public static long incr(String key, long delta) {
+ public static Long incr(String key, long delta) {
if (delta < 0) {
throw new RuntimeException("递增因子必须大于0");
}
- return redisTemplate.opsForValue().increment(key, delta);
+ return STRING_REDIS_TEMPLATE.opsForValue().increment(key, delta);
}
/**
@@ -159,10 +163,10 @@ public class RedisUtil {
* @param delta 要减少几(小于0)
* @return
*/
- public static long decr(String key, long delta) {
+ public static Long decr(String key, long delta) {
if (delta < 0) {
throw new RuntimeException("递减因子必须大于0");
}
- return redisTemplate.opsForValue().increment(key, -delta);
+ return STRING_REDIS_TEMPLATE.opsForValue().increment(key, -delta);
}
}
\ No newline at end of file
diff --git a/yami-shop-quartz/src/main/resources/application-quartz.yml b/yami-shop-quartz/src/main/resources/application-quartz.yml
index 47fa422..c2b7366 100644
--- a/yami-shop-quartz/src/main/resources/application-quartz.yml
+++ b/yami-shop-quartz/src/main/resources/application-quartz.yml
@@ -9,7 +9,7 @@ spring:
instanceName: clusteredScheduler
instanceId: AUTO
jobStore:
- class: org.quartz.impl.jdbcjobstore.JobStoreTX
+ class: org.springframework.scheduling.quartz.LocalDataSourceJobStore
driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
tablePrefix: QRTZ_
isClustered: true
diff --git a/yami-shop-security/yami-shop-security-common/src/main/java/com/yami/shop/security/common/config/CorsConfig.java b/yami-shop-security/yami-shop-security-common/src/main/java/com/yami/shop/security/common/config/CorsConfig.java
index 890272a..6727c6b 100644
--- a/yami-shop-security/yami-shop-security-common/src/main/java/com/yami/shop/security/common/config/CorsConfig.java
+++ b/yami-shop-security/yami-shop-security-common/src/main/java/com/yami/shop/security/common/config/CorsConfig.java
@@ -21,8 +21,8 @@ public class CorsConfig {
@Bean
public CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
-// configuration.addAllowedOriginPattern("*");
- configuration.addAllowedOrigin("*");
+ configuration.addAllowedOriginPattern("*");
+// configuration.addAllowedOrigin("*");
//修改为添加而不是设置
configuration.addAllowedMethod("*");
//这里很重要,起码需要允许 Access-Control-Allow-Origin