From e8ee0ff8c86e49a8efb589efa399065abc223140 Mon Sep 17 00:00:00 2001 From: heqijun Date: Thu, 5 Jun 2025 15:56:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9E=84=E5=BB=BAbeacon-cache=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- beacon-cache/pom.xml | 47 +++++++++++ .../com/mashibing/cache/CacheApplication.java | 22 +++++ .../mashibing/cache/config/RedisConfig.java | 83 +++++++++++++++++++ .../cache/controller/CacheController.java | 45 ++++++++++ beacon-cache/src/main/resources/bootstrap.yml | 18 ++++ pom.xml | 9 ++ 6 files changed, 224 insertions(+) create mode 100644 beacon-cache/pom.xml create mode 100644 beacon-cache/src/main/java/com/mashibing/cache/CacheApplication.java create mode 100644 beacon-cache/src/main/java/com/mashibing/cache/config/RedisConfig.java create mode 100644 beacon-cache/src/main/java/com/mashibing/cache/controller/CacheController.java create mode 100644 beacon-cache/src/main/resources/bootstrap.yml diff --git a/beacon-cache/pom.xml b/beacon-cache/pom.xml new file mode 100644 index 0000000..359ef13 --- /dev/null +++ b/beacon-cache/pom.xml @@ -0,0 +1,47 @@ + + + 4.0.0 + + com.mashibing + beacon-cloud + 1.0-SNAPSHOT + + + beacon-cache + + + + + org.springframework.boot + spring-boot-starter-web + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + + + + + + + com.msb.cloud + horse-framework-starter-redis + + + + \ No newline at end of file diff --git a/beacon-cache/src/main/java/com/mashibing/cache/CacheApplication.java b/beacon-cache/src/main/java/com/mashibing/cache/CacheApplication.java new file mode 100644 index 0000000..da21b37 --- /dev/null +++ b/beacon-cache/src/main/java/com/mashibing/cache/CacheApplication.java @@ -0,0 +1,22 @@ +package com.mashibing.cache; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +/** + * @author heqijun + * @ClassName: CacheApplication + * @Description: CacheApplication模块启动类 + * @date 2025/6/5 13:35 + */ + +@SpringBootApplication +@EnableFeignClients +@EnableDiscoveryClient +public class CacheApplication { + public static void main(String[] args) { + SpringApplication.run(CacheApplication.class, args); + } +} diff --git a/beacon-cache/src/main/java/com/mashibing/cache/config/RedisConfig.java b/beacon-cache/src/main/java/com/mashibing/cache/config/RedisConfig.java new file mode 100644 index 0000000..de16b5a --- /dev/null +++ b/beacon-cache/src/main/java/com/mashibing/cache/config/RedisConfig.java @@ -0,0 +1,83 @@ +package com.mashibing.cache.config; + +import com.fasterxml.jackson.databind.Module; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +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.RedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +/** + * @author heqijun + * @ClassName: RedisConfig + * @Description: RedisTemplate配置类,但是不用了 + * @date 2025/6/5 13:51 + */ +// +//@Configuration +//public class RedisConfig { +// // 因为默认使用data-redis提供的RedisTemplate对象时, +// // 针对key和value的序列化方式都是byte[],这种方式在图形化界面上的查看不友好, +// // 将key做String的序列化,将Value做JSON的序列化。 +// // 同时也是为了让RedisTemplate支持JDK8的日期格式 +// @Bean +// public RedisTemplate redisTemplate(RedisConnectionFactory factory, RedisSerializer redisSerializer) { +// //1. 构建RedisTemplate对象 +// RedisTemplate redisTemplate = new RedisTemplate<>(); +// +// //2. 设置RedisConnectionFactory +// redisTemplate.setConnectionFactory(factory); +// +// //3. 设置Redis的key的序列化方式 +// redisTemplate.setKeySerializer(RedisSerializer.string()); +// redisTemplate.setHashKeySerializer(RedisSerializer.string()); +// +// //4. 设置Redis的value的序列化方式 Date +// redisTemplate.setValueSerializer(redisSerializer); +// redisTemplate.setHashValueSerializer(redisSerializer); +// +// //5. 保证生效 +// redisTemplate.afterPropertiesSet(); +// +// //6. 返回RedisTemplate +// return redisTemplate; +// } +// +// @Bean +// public RedisSerializer redisSerializer() { +// //1. 构建Jackson的ObjectMapper +// ObjectMapper mapper = new ObjectMapper(); +// +// //2. 设置JDK8日期格式的支持 +// DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); +// DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); +// JavaTimeModule javaTimeModule = new JavaTimeModule(); +// javaTimeModule +// .addSerializer(LocalDate.class, new LocalDateSerializer(dateFormatter)) +// .addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(dateTimeFormatter)) +// .addDeserializer(LocalDate.class, new LocalDateDeserializer(dateFormatter)) +// .addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(dateTimeFormatter)); +// mapper.registerModule(javaTimeModule); +// +// //3. 构建Jackson2JsonRedisSerializer +// Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); +// +// //4. 设置好对JDK8日期的支持 +// jackson2JsonRedisSerializer.setObjectMapper(mapper); +// +// return jackson2JsonRedisSerializer; +// } +// +//} diff --git a/beacon-cache/src/main/java/com/mashibing/cache/controller/CacheController.java b/beacon-cache/src/main/java/com/mashibing/cache/controller/CacheController.java new file mode 100644 index 0000000..3211cd7 --- /dev/null +++ b/beacon-cache/src/main/java/com/mashibing/cache/controller/CacheController.java @@ -0,0 +1,45 @@ +package com.mashibing.cache.controller; + +import com.msb.framework.redis.RedisClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +/** + * @author heqijun + * @ClassName: CacheController + * @Description: TODO(这里用一句话描述这个类的作用) + * @date 2025/6/5 13:46 + */ + +@RestController +@RequestMapping("cache") +public class CacheController { + + @Autowired + private RedisClient redisClient; + + @GetMapping("getString/{key}") + public String getString(@PathVariable String key) { + return redisClient.get(key); + } + + @GetMapping("setString/{key}/{value}") + public String setString(@PathVariable String key, @PathVariable String value) { + redisClient.set(key, value); + return "保存成功"; + } + + @GetMapping("getHash/{key}") + public Map getHash(@PathVariable String key) { + return redisClient.hGetAll(key); + } + + @PostMapping("setHash/{key}") + public String setHash(@PathVariable String key, @RequestBody Map hash) { + redisClient + return "保存成功"; + } +} diff --git a/beacon-cache/src/main/resources/bootstrap.yml b/beacon-cache/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..1b2ddd6 --- /dev/null +++ b/beacon-cache/src/main/resources/bootstrap.yml @@ -0,0 +1,18 @@ +# 服务名称 +spring: + application: + name: beacon-cache + # 多环境 + profiles: + active: dev + # nacos注册中心地址 + cloud: + nacos: + discovery: + server-addr: 192.168.1.13:8848 + # nacos配置中心地址: + config: + server-addr: 192.168.1.13:8848 + file-extension: yml + +# beacon-cache-dev.yml \ No newline at end of file diff --git a/pom.xml b/pom.xml index ba078f7..8932c53 100644 --- a/pom.xml +++ b/pom.xml @@ -11,6 +11,7 @@ beacon-api beacon-common + beacon-cache @@ -24,6 +25,7 @@ Hoxton.SR12 2.2.7.RELEASE + 1.0.0 @@ -42,6 +44,13 @@ pom import + + com.msb.cloud + horse-framework-starters + ${horse-version} + pom + import +