springboot升级到2.7.0

master
chendt 3 years ago
parent 19f26c4cbc
commit b7b4ea8121

@ -23,7 +23,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.plugin.version>3.7.0</maven.compiler.plugin.version> <maven.compiler.plugin.version>3.7.0</maven.compiler.plugin.version>
<spring-boot.version>2.3.12.RELEASE</spring-boot.version> <spring-boot.version>2.7.0</spring-boot.version>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<guava.version>31.1-jre</guava.version> <guava.version>31.1-jre</guava.version>
<hutool.version>5.7.22</hutool.version> <hutool.version>5.7.22</hutool.version>

@ -12,26 +12,8 @@ spring:
date-format: yyyy-MM-dd HH:mm:ss date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8 time-zone: GMT+8
mvc: mvc:
formcontent: pathmatch:
filter: matching-strategy: ANT_PATH_MATCHER
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
# mybaits-plus配置 # mybaits-plus配置
mybatis-plus: mybatis-plus:
# MyBatis Mapper所对应的XML文件位置 # MyBatis Mapper所对应的XML文件位置

@ -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 <T extends RequestMappingInfoHandlerMapping> void customizeSpringfoxHandlerMappings(List<T> mappings) {
List<T> copy = mappings.stream()
.filter(mapping -> mapping.getPatternParser() == null)
.collect(Collectors.toList());
mappings.clear();
mappings.addAll(copy);
}
@SuppressWarnings("unchecked")
private List<RequestMappingInfoHandlerMapping> getHandlerMappings(Object bean) {
try {
Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings");
field.setAccessible(true);
return (List<RequestMappingInfoHandlerMapping>) field.get(bean);
} catch (IllegalArgumentException | IllegalAccessException e) {
throw new IllegalStateException(e);
}
}
};
}
}

@ -12,8 +12,10 @@ package com.yami.shop.common.util;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.util.Arrays;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
/** /**
@ -23,6 +25,8 @@ import java.util.concurrent.TimeUnit;
public class RedisUtil { public class RedisUtil {
private static RedisTemplate<String, Object> redisTemplate = SpringContextUtils.getBean("redisTemplate", RedisTemplate.class); private static RedisTemplate<String, Object> redisTemplate = SpringContextUtils.getBean("redisTemplate", RedisTemplate.class);
public static final StringRedisTemplate STRING_REDIS_TEMPLATE = SpringContextUtils.getBean("stringRedisTemplate",StringRedisTemplate.class);
//=============================common============================ //=============================common============================
/** /**
@ -50,7 +54,7 @@ public class RedisUtil {
* @param key null * @param key null
* @return () 0 -1 * @return () 0 -1
*/ */
public static long getExpire(String key) { public static Long getExpire(String key) {
return redisTemplate.getExpire(key, TimeUnit.SECONDS); return redisTemplate.getExpire(key, TimeUnit.SECONDS);
} }
@ -60,7 +64,7 @@ public class RedisUtil {
* @param key * @param key
* @return true false * @return true false
*/ */
public static boolean hasKey(String key) { public static Boolean hasKey(String key) {
try { try {
return redisTemplate.hasKey(key); return redisTemplate.hasKey(key);
} catch (Exception e) { } catch (Exception e) {
@ -80,7 +84,7 @@ public class RedisUtil {
if (key.length == 1) { if (key.length == 1) {
redisTemplate.delete(key[0]); redisTemplate.delete(key[0]);
} else { } else {
redisTemplate.delete(CollectionUtils.arrayToList(key)); redisTemplate.delete(Arrays.asList(key));
} }
} }
} }
@ -145,11 +149,11 @@ public class RedisUtil {
* @param delta (0) * @param delta (0)
* @return * @return
*/ */
public static long incr(String key, long delta) { public static Long incr(String key, long delta) {
if (delta < 0) { if (delta < 0) {
throw new RuntimeException("递增因子必须大于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) * @param delta (0)
* @return * @return
*/ */
public static long decr(String key, long delta) { public static Long decr(String key, long delta) {
if (delta < 0) { if (delta < 0) {
throw new RuntimeException("递减因子必须大于0"); throw new RuntimeException("递减因子必须大于0");
} }
return redisTemplate.opsForValue().increment(key, -delta); return STRING_REDIS_TEMPLATE.opsForValue().increment(key, -delta);
} }
} }

@ -9,7 +9,7 @@ spring:
instanceName: clusteredScheduler instanceName: clusteredScheduler
instanceId: AUTO instanceId: AUTO
jobStore: jobStore:
class: org.quartz.impl.jdbcjobstore.JobStoreTX class: org.springframework.scheduling.quartz.LocalDataSourceJobStore
driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
tablePrefix: QRTZ_ tablePrefix: QRTZ_
isClustered: true isClustered: true

@ -21,8 +21,8 @@ public class CorsConfig {
@Bean @Bean
public CorsConfigurationSource corsConfigurationSource() { public CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration(); CorsConfiguration configuration = new CorsConfiguration();
// configuration.addAllowedOriginPattern("*"); configuration.addAllowedOriginPattern("*");
configuration.addAllowedOrigin("*"); // configuration.addAllowedOrigin("*");
//修改为添加而不是设置 //修改为添加而不是设置
configuration.addAllowedMethod("*"); configuration.addAllowedMethod("*");
//这里很重要,起码需要允许 Access-Control-Allow-Origin //这里很重要,起码需要允许 Access-Control-Allow-Origin

Loading…
Cancel
Save