springboot集成当当的config-toolkit,有问题有问题

布谷歌 2020-10-14 07:35:58
springboot集成当当的config-toolkit,配置都没问题。
但是比如Redis,会出现如下问题。



配置没问题,下图可以证明:



怀疑跟springboot启动顺序有关,但是不知道从何下手,求指教!
...全文
9091 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
布谷歌 2020-10-20
  • 打赏
  • 举报
回复
非常感谢 @浪费七年时间, 已找到原因。
浪费七年时间 2020-10-19
  • 打赏
  • 举报
回复
引用 8 楼 gzyes 的回复:
[quote=引用 7 楼 浪费七年时间 的回复:][quote=引用 6 楼 浪费七年时间 的回复:]调试下RedisProperties.getHost()的值 应该是@Value和@ConfigurationProperties两种外部数据处理方式不一样,config-toolkit可能只修改了Spring对@Value的处理 可以在配置类里用@Value注入config-toolkit处理后的host,然后参考springboot代码手动注册LettuceConnectionFactory
改正下,原因应该是ConfigurationProperties不支持SPEL[/quote]感谢!我试了,是不支持。那这可怎么办呢[/quote] 参考SpringBoot源码org.springframework.boot.autoconfigure.data.redis.LettuceConnectionConfiguration,自己写个配置类配置LettuceConnectionFactory啊,类似下面这样

@Configuration
public class MyConfiguration {

    @Autowired
    private RedisProperties properties;

    @Value("${spring.redis.host}")
    private String host;

    @Bean
    public LettuceConnectionFactory redisConnectionFactory(ClientResources clientResources) {
        //参考源码配置,不通过this.properties.getHost()获取host,而是直接使用@Value注入的host值
    }

}
布谷歌 2020-10-16
  • 打赏
  • 举报
回复
引用 7 楼 浪费七年时间 的回复:
[quote=引用 6 楼 浪费七年时间 的回复:]调试下RedisProperties.getHost()的值 应该是@Value和@ConfigurationProperties两种外部数据处理方式不一样,config-toolkit可能只修改了Spring对@Value的处理 可以在配置类里用@Value注入config-toolkit处理后的host,然后参考springboot代码手动注册LettuceConnectionFactory
改正下,原因应该是ConfigurationProperties不支持SPEL[/quote]感谢!我试了,是不支持。那这可怎么办呢
tianfang 2020-10-15
  • 打赏
  • 举报
回复
变量不识别 直接放实际值
浪费七年时间 2020-10-15
  • 打赏
  • 举报
回复
引用 6 楼 浪费七年时间 的回复:
调试下RedisProperties.getHost()的值 应该是@Value和@ConfigurationProperties两种外部数据处理方式不一样,config-toolkit可能只修改了Spring对@Value的处理 可以在配置类里用@Value注入config-toolkit处理后的host,然后参考springboot代码手动注册LettuceConnectionFactory
改正下,原因应该是ConfigurationProperties不支持SPEL
浪费七年时间 2020-10-15
  • 打赏
  • 举报
回复
调试下RedisProperties.getHost()的值 应该是@Value和@ConfigurationProperties两种外部数据处理方式不一样,config-toolkit可能只修改了Spring对@Value的处理 可以在配置类里用@Value注入config-toolkit处理后的host,然后参考springboot代码手动注册LettuceConnectionFactory
布谷歌 2020-10-15
  • 打赏
  • 举报
回复
@tianfang @亦夜 我的目的就是要把配置与程序隔离起来,不把这些数据库连接串、数据库密码、生产环境ip端口等敏感信息放spring配置文件里。可以了解一下config-toolkit:https://github.com/dangdangdotcom/config-toolkit/wiki
KeepSayingNo 2020-10-15
  • 打赏
  • 举报
回复
你配置不对吧,换这个 # redis服务器地址(默认为loaclhost) host:127.0.0.1 # redis端口(默认为6379) post: 6379
亦夜 2020-10-14
  • 打赏
  • 举报
回复
你这个#{coldConfigGroup['redis.host']}表达式是从哪看的,都识别不到的,这个就是redis的连接问题,正常配置服务器的本机地址或者127.0.0.1就行了
布谷歌 2020-10-14
  • 打赏
  • 举报
回复
网上的一些博文,都是基本的springboot的集成。难道都没有遇到这样的问题吗?

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧