Skip to content

Commit c8d84da

Browse files
authored
🎨 #3702 【小程序】多小程序spring starter增加Redis Template支持
1 parent 118839a commit c8d84da

File tree

2 files changed

+48
-3
lines changed

2 files changed

+48
-3
lines changed

spring-boot-starters/wx-java-miniapp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/configuration/WxMaMultiServiceConfiguration.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.binarywang.spring.starter.wxjava.miniapp.configuration.services.WxMaInJedisConfiguration;
44
import com.binarywang.spring.starter.wxjava.miniapp.configuration.services.WxMaInMemoryConfiguration;
5+
import com.binarywang.spring.starter.wxjava.miniapp.configuration.services.WxMaInRedisTemplateConfiguration;
56
import com.binarywang.spring.starter.wxjava.miniapp.configuration.services.WxMaInRedissonConfiguration;
67
import com.binarywang.spring.starter.wxjava.miniapp.properties.WxMaMultiProperties;
78
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@@ -17,9 +18,10 @@
1718
@Configuration
1819
@EnableConfigurationProperties(WxMaMultiProperties.class)
1920
@Import({
20-
WxMaInJedisConfiguration.class,
21-
WxMaInMemoryConfiguration.class,
22-
WxMaInRedissonConfiguration.class,
21+
WxMaInJedisConfiguration.class,
22+
WxMaInMemoryConfiguration.class,
23+
WxMaInRedissonConfiguration.class,
24+
WxMaInRedisTemplateConfiguration.class
2325
})
2426
public class WxMaMultiServiceConfiguration {
2527
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.binarywang.spring.starter.wxjava.miniapp.configuration.services;
2+
3+
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
4+
import cn.binarywang.wx.miniapp.config.impl.WxMaRedisBetterConfigImpl;
5+
import com.binarywang.spring.starter.wxjava.miniapp.properties.WxMaMultiProperties;
6+
import com.binarywang.spring.starter.wxjava.miniapp.service.WxMaMultiServices;
7+
import lombok.RequiredArgsConstructor;
8+
import me.chanjar.weixin.common.redis.RedisTemplateWxRedisOps;
9+
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
10+
import org.springframework.context.ApplicationContext;
11+
import org.springframework.context.annotation.Bean;
12+
import org.springframework.context.annotation.Configuration;
13+
import org.springframework.data.redis.core.StringRedisTemplate;
14+
15+
/**
16+
* 自动装配基于 redisTemplate 策略配置
17+
*
18+
* @author <a href="mailto:huangbing0730@gmail">hb0730</a> 2025/9/10
19+
*/
20+
@Configuration
21+
@ConditionalOnProperty(prefix = WxMaMultiProperties.PREFIX + ".config-storage", name = "type", havingValue = "redis_template")
22+
@RequiredArgsConstructor
23+
public class WxMaInRedisTemplateConfiguration extends AbstractWxMaConfiguration {
24+
private final WxMaMultiProperties wxMaMultiProperties;
25+
private final ApplicationContext applicationContext;
26+
27+
@Bean
28+
public WxMaMultiServices wxMaMultiServices() {
29+
return this.wxMaMultiServices(wxMaMultiProperties);
30+
}
31+
32+
@Override
33+
protected WxMaDefaultConfigImpl wxMaConfigStorage(WxMaMultiProperties wxMaMultiProperties) {
34+
return this.configRedisTemplate(wxMaMultiProperties);
35+
}
36+
37+
private WxMaDefaultConfigImpl configRedisTemplate(WxMaMultiProperties wxMaMultiProperties) {
38+
StringRedisTemplate redisTemplate = applicationContext.getBean(StringRedisTemplate.class);
39+
RedisTemplateWxRedisOps wxRedisOps = new RedisTemplateWxRedisOps(redisTemplate);
40+
return new WxMaRedisBetterConfigImpl(wxRedisOps, wxMaMultiProperties.getConfigStorage().getKeyPrefix());
41+
}
42+
43+
}

0 commit comments

Comments
 (0)