From 5bc904db9ae6ca87a16edcfb924bcf9e80b19309 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期二, 27 九月 2022 17:17:13 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/config/WebMvcConfigurer.java | 4 + src/main/java/com/lf/server/config/RedisConfig.java | 94 +++++++++++++++++++++++++++++++ src/main/java/com/lf/server/interceptor/CrosFilter.java | 10 +- src/main/java/com/lf/server/LfApplication.java | 3 src/main/java/com/lf/server/config/PropertiesConfig.java | 11 +++ src/main/java/com/lf/server/config/WebConfig.java | 26 ++++---- src/main/resources/application.yml | 17 +---- 7 files changed, 133 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/lf/server/LfApplication.java b/src/main/java/com/lf/server/LfApplication.java index 22c82bd..d429924 100644 --- a/src/main/java/com/lf/server/LfApplication.java +++ b/src/main/java/com/lf/server/LfApplication.java @@ -3,14 +3,15 @@ import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import springfox.documentation.swagger2.annotations.EnableSwagger2; /** * LandApplication * @author */ -@SpringBootApplication(scanBasePackages={"com.lf.server.controller", "com.lf.server.service"}) @EnableSwagger2 +@SpringBootApplication(scanBasePackages={"com.lf.server.config", "com.lf.server.mapper", "com.lf.server.service","com.lf.server.controller"}) public class LfApplication { public static void main(String[] args) { SpringApplication.run(LfApplication.class, args); diff --git a/src/main/java/com/lf/server/config/PropertiesConfig.java b/src/main/java/com/lf/server/config/PropertiesConfig.java new file mode 100644 index 0000000..f5a1731 --- /dev/null +++ b/src/main/java/com/lf/server/config/PropertiesConfig.java @@ -0,0 +1,11 @@ +package com.lf.server.config; + +import org.springframework.stereotype.Component; + +/** + * 灞炴�ч厤缃被 + * @author WWW + */ +@Component +public class PropertiesConfig { +} diff --git a/src/main/java/com/lf/server/config/RedisConfig.java b/src/main/java/com/lf/server/config/RedisConfig.java new file mode 100644 index 0000000..ded146a --- /dev/null +++ b/src/main/java/com/lf/server/config/RedisConfig.java @@ -0,0 +1,94 @@ +package com.lf.server.config; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.boot.autoconfigure.AutoConfigureAfter; +import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; +import org.springframework.cache.Cache; +import org.springframework.cache.annotation.CachingConfigurerSupport; +import org.springframework.cache.interceptor.CacheErrorHandler; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +import java.util.HashMap; +import java.util.Map; + +/** + * RedisConfig + * @author WWW + */ +@Configuration +@AutoConfigureAfter(RedisAutoConfiguration.class) +public class RedisConfig extends CachingConfigurerSupport { + /** + * 閰嶇疆鑷畾涔塺edisTemplate + */ + @SuppressWarnings("deprecation") + @Bean + public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { + RedisTemplate<String, Object> template = new RedisTemplate<>(); + template.setConnectionFactory(redisConnectionFactory); + + // 浣跨敤Jackson2JsonRedisSerializer鏉ュ簭鍒楀寲鍜屽弽搴忓垪鍖杛edis鐨剉alue鍊� + Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<Object>(Object.class); + + ObjectMapper mapper = new ObjectMapper(); + mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); + serializer.setObjectMapper(mapper); + + template.setValueSerializer(serializer); + + //浣跨敤StringRedisSerializer鏉ュ簭鍒楀寲鍜屽弽搴忓垪鍖杛edis鐨刱ey鍊� + template.setKeySerializer(new StringRedisSerializer()); + template.setHashKeySerializer(new StringRedisSerializer()); + template.setHashValueSerializer(serializer); + template.afterPropertiesSet(); + + return template; + } + + @Bean + @Override + public CacheErrorHandler errorHandler() { + // 寮傚父澶勭悊锛屽綋Redis鍙戠敓寮傚父鏃讹紝鎵撳嵃鏃ュ織锛屼絾鏄▼搴忔甯歌蛋 + return new CacheErrorHandler() { + @Override + public void handleCacheGetError(RuntimeException e, Cache cache, Object key) { + Map<String, Object> error = new HashMap<String, Object>(3); + error.put("e", e); + error.put("cache", cache); + error.put("key", key); + } + + @Override + public void handleCachePutError(RuntimeException e, Cache cache, Object key, Object value) { + Map<String, Object> error = new HashMap<String, Object>(4); + error.put("e", e); + error.put("cache", cache); + error.put("key", key); + error.put("value", value); + } + + @Override + public void handleCacheEvictError(RuntimeException e, Cache cache, Object key) { + Map<String, Object> error = new HashMap<String, Object>(3); + error.put("e", e); + error.put("cache", cache); + error.put("key", key); + } + + @Override + public void handleCacheClearError(RuntimeException e, Cache cache) { + Map<String, Object> error = new HashMap<String, Object>(2); + error.put("e", e); + error.put("cache", cache); + } + }; + } +} diff --git a/src/main/java/com/lf/server/config/WebConfig.java b/src/main/java/com/lf/server/config/WebConfig.java index d56c4e6..a74cf90 100644 --- a/src/main/java/com/lf/server/config/WebConfig.java +++ b/src/main/java/com/lf/server/config/WebConfig.java @@ -3,20 +3,19 @@ import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.support.config.FastJsonConfig; import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.MediaType; import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.stereotype.Component; import org.springframework.util.AntPathMatcher; import org.springframework.web.servlet.config.annotation.*; -import java.util.ArrayList; +import java.nio.charset.Charset; import java.util.List; /** * WebConfig * @author WWW */ -@Configuration +@Component public class WebConfig extends WebMvcConfigurationSupport { /** * swagger鎺у埗 @@ -44,11 +43,11 @@ @Override protected void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") + .allowCredentials(true) .allowedOrigins("*") + .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") .allowedHeaders("*") - .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE") - .maxAge(3600) - .allowCredentials(true); + .maxAge(3600); } /** @@ -65,19 +64,18 @@ @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); - FastJsonConfig fastJsonConfig = new FastJsonConfig(); - fastJsonConfig.setSerializerFeatures( + FastJsonConfig config = new FastJsonConfig(); + config.setSerializerFeatures( SerializerFeature.WriteNullListAsEmpty, SerializerFeature.WriteMapNullValue, - SerializerFeature.WriteNullStringAsEmpty, + //SerializerFeature.WriteNullStringAsEmpty, + SerializerFeature.WriteNullNumberAsZero, SerializerFeature.WriteNullBooleanAsFalse); // 缁撴灉鏄惁鏍煎紡鍖�,榛樿涓篺alse //SerializerFeature.PrettyFormat); - List<MediaType> fastMediaTypes = new ArrayList<>(); - converter.setSupportedMediaTypes(fastMediaTypes); - - converter.setFastJsonConfig(fastJsonConfig); + converter.setFastJsonConfig(config); + converter.setDefaultCharset(Charset.forName("UTF-8")); converters.add(converter); } } diff --git a/src/main/java/com/lf/server/config/WebMvcConfigurer.java b/src/main/java/com/lf/server/config/WebMvcConfigurer.java new file mode 100644 index 0000000..3227d18 --- /dev/null +++ b/src/main/java/com/lf/server/config/WebMvcConfigurer.java @@ -0,0 +1,4 @@ +package com.lf.server.config; + +public class WebMvcConfigurer { +} diff --git a/src/main/java/com/lf/server/interceptor/CrosFilter.java b/src/main/java/com/lf/server/interceptor/CrosFilter.java index ae8868d..7bdcf5e 100644 --- a/src/main/java/com/lf/server/interceptor/CrosFilter.java +++ b/src/main/java/com/lf/server/interceptor/CrosFilter.java @@ -1,11 +1,11 @@ package com.lf.server.interceptor; import org.springframework.stereotype.Component; - import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; + /** * 璺ㄥ煙杩囨护 @@ -22,19 +22,19 @@ } @Override - public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { - HttpServletResponse response = (HttpServletResponse) resp; + public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { + HttpServletResponse response = (HttpServletResponse) res; HttpServletRequest request = (HttpServletRequest) req; if (OPTIONS.equalsIgnoreCase(request.getMethod())) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Credentials", "true"); response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS"); - response.setHeader("Access-Control-Max-Age", "86400"); + response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "*"); response.setStatus(HttpServletResponse.SC_OK); } else { - chain.doFilter(req, resp); + chain.doFilter(req, res); } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 254ec56..2ceed21 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,8 +1,6 @@ server: tomcat: uri-encoding: UTF-8 - max-threads: 1000 - min-spare-threads: 5 port: 12316 context-path: /land @@ -13,8 +11,6 @@ url : jdbc:postgresql://192.168.20.39:5433/langfang driver-class-name: org.postgresql.Driver type: com.alibaba.druid.pool.DruidDataSource # 鑷畾涔夋暟鎹簮 - #url : jdbc:postgresql://127.0.0.1:5433/postgres - #Spring Boot 榛樿鏄笉娉ㄥ叆杩欎簺灞炴�у�肩殑锛岄渶瑕佽嚜宸辩粦瀹� #druid 鏁版嵁婧愪笓鏈夐厤缃� initialSize: 5 minIdle: 5 @@ -27,20 +23,17 @@ testOnBorrow: false testOnReturn: false poolPreparedStatements: true - #閰嶇疆鐩戞帶缁熻鎷︽埅鐨刦ilters锛宻tat:鐩戞帶缁熻銆乴og4j锛氭棩蹇楄褰曘�亀all锛氶槻寰ql娉ㄥ叆 #濡傛灉鍏佽鏃舵姤閿� java.lang.ClassNotFoundException: org.apache.log4j.Priority - #鍒欏鍏� log4j 渚濊禆鍗冲彲锛孧aven 鍦板潃锛歨ttps://mvnrepository.com/artifact/log4j/log4j filters: stat,wall,log4j maxPoolPreparedStatementPerConnectionSize: 20 useGlobalDataSourceStat: true connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 - -#ojdbc: -# jdbcUrl: jdbc:postgresql://192.168.20.106:5432/langfang -# driverclass: org.postgresql.Driver -# username: postgres -# password: postgres + redis: + host: 192.168.20.39 + port: 6379 + password: + database: 1 mybatis: type-aliases-package: com.terra.land.mapper -- Gitblit v1.9.3