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