Browse Source

保存数据乱码问题解决 刷新缓存 数据状态改为失效 不生效问题修复

wuxw7 8 years ago
parent
commit
dc9f714d1b

+ 7 - 1
CenterService/src/main/java/com/java110/center/smo/impl/CenterServiceCacheSMOImpl.java

@@ -93,6 +93,9 @@ public class CenterServiceCacheSMOImpl implements ICenterServiceCacheSMO {
         if(serviceSqls == null || serviceSqls.size() == 0){
             return;
         }
+        //删除原始数据
+        ServiceSqlCache.removeData(ServiceSqlCache._SUFFIX_SERVICE_SQL);
+
         for(ServiceSql serviceSql: serviceSqls){
             ServiceSqlCache.setServiceSql(serviceSql);
         }
@@ -115,7 +118,8 @@ public class CenterServiceCacheSMOImpl implements ICenterServiceCacheSMO {
 
     private void doFlushMapping() {
         List<Mapping> mappings = centerServiceDAOImpl.getMappingInfoAll();
-
+        //删除原始数据
+        MappingCache.removeData(MappingCache._SUFFIX_MAPPING);
         for(Mapping mapping : mappings){
             MappingCache.setVaule(mapping);
         }
@@ -166,6 +170,8 @@ public class CenterServiceCacheSMOImpl implements ICenterServiceCacheSMO {
                 appRoustsMap.put(appInfo.get("app_id").toString(),appRoutes);
             }
         }
+        //删除原始数据
+        AppRouteCache.removeData(AppRouteCache._SUFFIX_APP_ROUTE);
 
         for (String appId : appRoustsMap.keySet()) {
             AppRouteCache.setAppRoute(appRoustsMap.get(appId));

+ 9 - 1
CenterService/src/main/resources/application-dev.yml

@@ -17,7 +17,15 @@ eureka:
       #defaultZone: http://localhost:8761/eureka/
 server:
   port: 8001
+  tomcat:
+    uri-encoding: UTF-8
+
 spring:
+  http:
+    encoding:
+      charset: UTF-8
+      enabled: true
+      force: true
   application:
     name: center-service
   redis:
@@ -39,7 +47,7 @@ spring:
     filters: stat,wall,log4j
     poolPreparedStatements: true
     type: com.alibaba.druid.pool.DruidDataSource
-    url: jdbc:mysql://192.168.31.199:3306/TT
+    url: jdbc:mysql://192.168.31.199:3306/TT?useUnicode=true&characterEncoding=utf-8
     maxPoolPreparedStatementPerConnectionSize: 20
     password: TT@12345678
     testOnBorrow: false

+ 9 - 1
CenterService/src/main/resources/application-prod.yml

@@ -17,7 +17,15 @@ eureka:
       #defaultZone: http://localhost:8761/eureka/
 server:
   port: 8001
+  tomcat:
+    uri-encoding: UTF-8
+
 spring:
+  http:
+    encoding:
+      charset: UTF-8
+      enabled: true
+      force: true
   application:
     name: center-service
   redis:
@@ -39,7 +47,7 @@ spring:
     filters: stat,wall,log4j
     poolPreparedStatements: true
     type: com.alibaba.druid.pool.DruidDataSource
-    url: jdbc:mysql://135.192.86.200:3306/TT
+    url: jdbc:mysql://135.192.86.200:3306/TT?useUnicode=true&characterEncoding=utf-8
     maxPoolPreparedStatementPerConnectionSize: 20
     password: TT@12345678
     testOnBorrow: false

+ 9 - 1
CenterService/src/main/resources/application-test.yml

@@ -17,7 +17,15 @@ eureka:
       #defaultZone: http://localhost:8761/eureka/
 server:
   port: 8001
+  tomcat:
+    uri-encoding: UTF-8
+
 spring:
+  http:
+    encoding:
+      charset: UTF-8
+      enabled: true
+      force: true
   application:
     name: center-service
   redis:
@@ -39,7 +47,7 @@ spring:
     filters: stat,wall,log4j
     poolPreparedStatements: true
     type: com.alibaba.druid.pool.DruidDataSource
-    url: jdbc:mysql://135.192.86.200:3306/TT
+    url: jdbc:mysql://135.192.86.200:3306/TT?useUnicode=true&characterEncoding=utf-8
     maxPoolPreparedStatementPerConnectionSize: 20
     password: TT@12345678
     testOnBorrow: false

+ 9 - 1
ConsoleService/src/main/resources/application-dev.yml

@@ -28,7 +28,15 @@ server:
   session:
       cookie:
         http-only: true
+  tomcat:
+    uri-encoding: UTF-8
+
 spring:
+  http:
+    encoding:
+      charset: UTF-8
+      enabled: true
+      force: true
   application:
     name: console-service
   redis:
@@ -50,7 +58,7 @@ spring:
     filters: stat,wall,log4j
     poolPreparedStatements: true
     type: com.alibaba.druid.pool.DruidDataSource
-    url: jdbc:mysql://192.168.31.199:3306/TT
+    url: jdbc:mysql://192.168.31.199:3306/TT?useUnicode=true&characterEncoding=utf-8
     maxPoolPreparedStatementPerConnectionSize: 20
     password: TT@12345678
     testOnBorrow: false

+ 9 - 1
ConsoleService/src/main/resources/application-prod.yml

@@ -28,7 +28,15 @@ server:
   session:
       cookie:
         http-only: true
+  tomcat:
+    uri-encoding: UTF-8
+
 spring:
+  http:
+    encoding:
+      charset: UTF-8
+      enabled: true
+      force: true
   application:
     name: console-service
   redis:
@@ -50,7 +58,7 @@ spring:
     filters: stat,wall,log4j
     poolPreparedStatements: true
     type: com.alibaba.druid.pool.DruidDataSource
-    url: jdbc:mysql://135.192.86.200:3306/TT
+    url: jdbc:mysql://135.192.86.200:3306/TT?useUnicode=true&characterEncoding=utf-8
     maxPoolPreparedStatementPerConnectionSize: 20
     password: TT@12345678
     testOnBorrow: false

+ 9 - 1
ConsoleService/src/main/resources/application-test.yml

@@ -27,7 +27,15 @@ server:
   session:
       cookie:
         http-only: true
+  tomcat:
+    uri-encoding: UTF-8
+
 spring:
+  http:
+    encoding:
+      charset: UTF-8
+      enabled: true
+      force: true
   application:
     name: console-service
   redis:
@@ -49,7 +57,7 @@ spring:
     filters: stat,wall,log4j
     poolPreparedStatements: true
     type: com.alibaba.druid.pool.DruidDataSource
-    url: jdbc:mysql://135.192.86.200:3306/TT
+    url: jdbc:mysql://135.192.86.200:3306/TT?useUnicode=true&characterEncoding=utf-8
     maxPoolPreparedStatementPerConnectionSize: 20
     password: TT@12345678
     testOnBorrow: false

+ 1 - 1
ConsoleService/src/main/resources/application.yml

@@ -1,3 +1,3 @@
 spring:
   profiles:
-    active: test
+    active: dev

+ 8 - 2
java110-common/src/main/java/com/java110/common/cache/AppRouteCache.java

@@ -5,6 +5,7 @@ import com.java110.entity.center.AppRoute;
 import redis.clients.jedis.Jedis;
 
 import java.util.List;
+import java.util.Set;
 
 /**
  * 路由配置
@@ -12,6 +13,9 @@ import java.util.List;
  */
 public class AppRouteCache extends BaseCache {
 
+    //后缀 用来刷缓存时删除 所有以这个为后缀的数据
+    public final static String _SUFFIX_APP_ROUTE = "_SUFFIX_APP_ROUTE";
+
     /**
      * 获取 路由配置
      * @param appId
@@ -22,7 +26,7 @@ public class AppRouteCache extends BaseCache {
         Jedis redis = null;
         try {
             redis = getJedis();
-            appRoutes = SerializeUtil.unserializeList(redis.get(appId.getBytes()),AppRoute.class);
+            appRoutes = SerializeUtil.unserializeList(redis.get((appId+_SUFFIX_APP_ROUTE).getBytes()),AppRoute.class);
             if(appRoutes == null || appRoutes.size() ==0) {
                 return null;
             }
@@ -43,11 +47,13 @@ public class AppRouteCache extends BaseCache {
         Jedis redis = null;
         try {
             redis = getJedis();
-            redis.set(appRoutes.get(0).getAppId().getBytes(),SerializeUtil.serializeList(appRoutes));
+            redis.set((appRoutes.get(0).getAppId()+_SUFFIX_APP_ROUTE).getBytes(),SerializeUtil.serializeList(appRoutes));
         }finally {
             if(redis != null){
                 redis.close();
             }
         }
     }
+
+
 }

+ 24 - 0
java110-common/src/main/java/com/java110/common/cache/BaseCache.java

@@ -4,6 +4,8 @@ import com.java110.common.factory.ApplicationContextFactory;
 import redis.clients.jedis.Jedis;
 import redis.clients.jedis.JedisPool;
 
+import java.util.Set;
+
 /**
  * 缓存基类
  * Created by wuxw on 2018/4/14.
@@ -15,4 +17,26 @@ public class BaseCache {
         return jedisPool.getResource();
     }
 
+    /**
+     * 删除数据
+     * @param pattern
+     */
+    public static void removeData(String pattern){
+        Jedis redis = null;
+        try {
+            redis = getJedis();
+            Set<String> keys = redis.keys("*"+pattern);
+            if(keys == null || keys.size() == 0){
+                return ;
+            }
+            for(String key : keys){
+                redis.del(key);
+            }
+        }finally {
+            if(redis != null){
+                redis.close();
+            }
+        }
+    }
+
 }

+ 7 - 5
java110-common/src/main/java/com/java110/common/cache/MappingCache.java

@@ -14,6 +14,8 @@ import java.util.List;
  */
 public class MappingCache extends BaseCache {
 
+    //后缀 用来刷缓存时删除 所有以这个为后缀的数据
+    public final static String _SUFFIX_MAPPING = "_SUFFIX_MAPPING";
 
     /**
      * 获取值
@@ -25,7 +27,7 @@ public class MappingCache extends BaseCache {
         Jedis redis = null;
         try {
             redis = getJedis();
-            Object object = SerializeUtil.unserialize(redis.get((domain + key).getBytes()));
+            Object object = SerializeUtil.unserialize(redis.get((domain + key+_SUFFIX_MAPPING).getBytes()));
             if (object == null) {
                 return null;
             }
@@ -53,7 +55,7 @@ public class MappingCache extends BaseCache {
         Jedis redis = null;
         try {
             redis = getJedis();
-            Object obj = SerializeUtil.unserialize(redis.get((DomainContant.COMMON_DOMAIN+key).getBytes()));
+            Object obj = SerializeUtil.unserialize(redis.get((DomainContant.COMMON_DOMAIN+key+_SUFFIX_MAPPING).getBytes()));
             if(obj instanceof Mapping){
                 return (Mapping) obj;
             }
@@ -74,7 +76,7 @@ public class MappingCache extends BaseCache {
         Jedis redis = null;
         try {
             redis = getJedis();
-            return SerializeUtil.unserializeList(redis.get(domain.getBytes()),Mapping.class);
+            return SerializeUtil.unserializeList(redis.get((domain+_SUFFIX_MAPPING).getBytes()),Mapping.class);
         }finally {
             if(redis != null){
                 redis.close();
@@ -90,7 +92,7 @@ public class MappingCache extends BaseCache {
         Jedis redis = null;
         try {
             redis = getJedis();
-            redis.set((mapping.getDomain()+mapping.getKey()).getBytes(),SerializeUtil.serialize(mapping));
+            redis.set((mapping.getDomain()+mapping.getKey()+_SUFFIX_MAPPING).getBytes(),SerializeUtil.serialize(mapping));
         }finally {
             if(redis != null){
                 redis.close();
@@ -106,7 +108,7 @@ public class MappingCache extends BaseCache {
         Jedis redis = null;
         try {
             redis = getJedis();
-            redis.set((mappings.get(0).getDomain()).getBytes(),SerializeUtil.serializeList(mappings));
+            redis.set((mappings.get(0).getDomain()+_SUFFIX_MAPPING).getBytes(),SerializeUtil.serializeList(mappings));
         }finally {
             if(redis != null){
                 redis.close();

+ 5 - 2
java110-common/src/main/java/com/java110/common/cache/ServiceSqlCache.java

@@ -10,6 +10,9 @@ import redis.clients.jedis.Jedis;
  */
 public class ServiceSqlCache extends BaseCache {
 
+    //后缀 用来刷缓存时删除 所有以这个为后缀的数据
+    public final static String _SUFFIX_SERVICE_SQL = "_SUFFIX_SERVICE_SQL";
+
     /**
      * 查询 服务sql
      * @param serviceCode
@@ -19,7 +22,7 @@ public class ServiceSqlCache extends BaseCache {
         Jedis redis = null;
         try {
             redis = getJedis();
-            Object obj = SerializeUtil.unserialize(redis.get(serviceCode.getBytes()));
+            Object obj = SerializeUtil.unserialize(redis.get((serviceCode+_SUFFIX_SERVICE_SQL).getBytes()));
             if(obj instanceof ServiceSql){
                 return (ServiceSql) obj;
             }
@@ -39,7 +42,7 @@ public class ServiceSqlCache extends BaseCache {
         Jedis redis = null;
         try {
             redis = getJedis();
-            redis.set(serviceSql.getServiceCode().getBytes(),SerializeUtil.serialize(serviceSql));
+            redis.set((serviceSql.getServiceCode()+_SUFFIX_SERVICE_SQL).getBytes(),SerializeUtil.serialize(serviceSql));
         }finally {
             if(redis != null){
                 redis.close();

+ 2 - 2
java110-config/db/CenterService/create_table.db

@@ -243,10 +243,10 @@ INSERT INTO c_service(service_code,invoke_model,business_type_cd,`name`,seq,url,
 VALUES('save.center.mapping','S','Q','保存映射信息',1,'http://center-service/businessApi/do','8000418002');
 
 INSERT INTO c_service(service_code,invoke_model,business_type_cd,`name`,seq,url,provide_app_id)
-VALUES('delete.center.mapping','S','Q','保存映射信息',1,'http://center-service/businessApi/do','8000418002');
+VALUES('delete.center.mapping','S','Q','删除映射信息',1,'http://center-service/businessApi/do','8000418002');
 
 INSERT INTO c_service(service_code,invoke_model,business_type_cd,`name`,seq,url,provide_app_id)
-VALUES('update.center.mapping','S','Q','保存映射信息',1,'http://center-service/businessApi/do','8000418002');
+VALUES('update.center.mapping','S','Q','修改映射信息',1,'http://center-service/businessApi/do','8000418002');
 
 insert into c_route(app_id,service_id,order_type_cd,status_cd) values(
 '8000418001','1','Q','0'

+ 1 - 1
java110-config/db/ConsoleService/create_table.db

@@ -84,7 +84,7 @@ create table c_template_col(
 );
 
 
-insert into c_template(template_code,name,html_name,url) values('mapping','映射管理','list_template','LIST->query.center.mapping;QUERY->mapping_query_url');
+insert into c_template(template_code,name,html_name,url) values('mapping','映射管理','list_template','LIST->query.center.mapping;QUERY->mapping_query_url;INSERT->save.center.mapping;UPDATE->update.center.mapping;DELETE->delete.center.mapping');
 
 insert into c_template_col(template_code,col_name,col_code,col_model,seq) values('mapping','列ID','id','{ "name": "id","index": "id","width": "90",
                                                                                                              "editable": true,

+ 39 - 0
java110-service/src/main/java/com/java110/service/configuration/CustomMVCConfiguration.java

@@ -0,0 +1,39 @@
+package com.java110.service.configuration;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.StringHttpMessageConverter;
+import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+
+import java.nio.charset.Charset;
+import java.util.List;
+
+/**
+ * 前台提交乱码解决
+ * Created by wuxw on 2018/5/14.
+ */
+@Configuration
+public class CustomMVCConfiguration extends WebMvcConfigurerAdapter {
+
+    @Bean
+    public HttpMessageConverter<String> responseBodyConverter() {
+        StringHttpMessageConverter converter = new StringHttpMessageConverter(
+                Charset.forName("UTF-8"));
+        return converter;
+    }
+
+    @Override
+    public void configureMessageConverters(
+            List<HttpMessageConverter<?>> converters) {
+        super.configureMessageConverters(converters);
+        converters.add(responseBodyConverter());
+    }
+
+    @Override
+    public void configureContentNegotiation(
+            ContentNegotiationConfigurer configurer) {
+        configurer.favorPathExtension(false);
+    }
+}

+ 1 - 0
java110-service/src/main/java/com/java110/service/configuration/ServiceConfiguration.java

@@ -19,4 +19,5 @@ public class ServiceConfiguration {
 
         return registrationBean;
     }
+
 }