wangwei 7 gadi atpakaļ
vecāks
revīzija
e8aeb12193

+ 15 - 1
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/provider/DemoCloudServiceProvider.java

@@ -1,10 +1,13 @@
 package cn.com.qmth.examcloud.core.basic.api.provider;
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import cn.com.qmth.examcloud.commons.web.redis.RedisClient;
 import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import cn.com.qmth.examcloud.core.basic.api.DemoCloudService;
 import cn.com.qmth.examcloud.core.basic.api.request.GetXxxReq;
@@ -20,12 +23,23 @@ public class DemoCloudServiceProvider extends ControllerSupport implements DemoC
 
 	DemoService demoService;
 
+	@Autowired
+	RedisClient redisClient;
+
 	@ApiOperation(value = "DEMO", notes = "DEMO")
-	@PostMapping("getXxx")
+	@PostMapping({"getXxx", "getYYY"})
 	@Override
 	public GetXxxResp getXxx(@RequestBody GetXxxReq req) {
 		GetXxxResp resp = new GetXxxResp();
 		resp.setS("test");
+		redisClient.set("fuck", resp, 10);
+		return resp;
+	}
+
+	@ApiOperation(value = "DEMO", notes = "DEMO")
+	@PutMapping({"getXxx", "getYYY"})
+	public GetXxxResp getXxx2(@RequestBody GetXxxReq req) {
+		GetXxxResp resp = redisClient.get("fuck", GetXxxResp.class);
 		return resp;
 	}
 

+ 29 - 5
examcloud-core-basic-starter/src/main/java/cn/com/qmth/examcloud/core/basic/starter/CoreBasicApp.java

@@ -13,25 +13,32 @@ import org.springframework.cloud.netflix.feign.EnableFeignClients;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+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 org.springframework.web.client.RestTemplate;
 import org.springframework.web.multipart.MultipartResolver;
 import org.springframework.web.multipart.commons.CommonsMultipartResolver;
 
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.qmth.commons.query.dao.impl.BaseQueryDaoImpl;
 
 import cn.com.qmth.examcloud.commons.base.logging.ExamCloudLog;
 import cn.com.qmth.examcloud.commons.base.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.base.logging.SLF4JImpl;
 
-@ComponentScan(basePackages = { "com.qmth.commons", "cn.com.qmth" })
-@EntityScan(basePackages = { "com.qmth.commons", "cn.com.qmth" })
-@EnableJpaRepositories(basePackages = { "com.qmth.commons",
-		"cn.com.qmth" }, repositoryBaseClass = BaseQueryDaoImpl.class)
+@ComponentScan(basePackages = {"com.qmth.commons", "cn.com.qmth"})
+@EntityScan(basePackages = {"com.qmth.commons", "cn.com.qmth"})
+@EnableJpaRepositories(basePackages = {"com.qmth.commons",
+		"cn.com.qmth"}, repositoryBaseClass = BaseQueryDaoImpl.class)
 @SpringBootApplication
 @EnableEurekaClient
 @EnableFeignClients
 @EnableDiscoveryClient
-@EnableAutoConfiguration(exclude = { MultipartAutoConfiguration.class })
+@EnableAutoConfiguration(exclude = {MultipartAutoConfiguration.class})
 public class CoreBasicApp {
 
 	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(CoreBasicApp.class);
@@ -50,6 +57,23 @@ public class CoreBasicApp {
 		return new RestTemplate();
 	}
 
+	@Bean
+	public RedisTemplate<String, Object> redisTemplate(
+			RedisConnectionFactory redisConnectionFactory) {
+		RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
+		redisTemplate.setConnectionFactory(redisConnectionFactory);
+		Jackson2JsonRedisSerializer<?> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(
+				Object.class);
+		ObjectMapper objectMapper = new ObjectMapper();
+		objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
+		objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
+		jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
+		redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
+		redisTemplate.setKeySerializer(new StringRedisSerializer());
+		redisTemplate.afterPropertiesSet();
+		return redisTemplate;
+	}
+
 	@Bean(name = "multipartResolver")
 	public MultipartResolver multipartResolver() {
 		CommonsMultipartResolver resolver = new CommonsMultipartResolver();