【问题标题】:Spring Bean Override for Spring-Data REDISSpring-Data REDIS 的 Spring Bean 覆盖
【发布时间】:2020-08-07 03:03:37
【问题描述】:

我正在尝试覆盖 RedisCustomConversions [初始帖子](RedisCustomConversions using Redis Repository 注意到一些不一致的行为。

当我从 IDE 运行 spring boot 应用程序时,我得到了上面帖子中提到的错误,但是如果使用 java -jar myapp.jar 执行应用程序,它可以正常工作。这听起来不错,但这让我怀疑这种行为是否一致?即我的重载 bean 是否会一直连接?还是随机的?

我还从 /actuator/beans 端点注意到,当在 IDE 中执行时,我得到了这个

redisCustomConversions: {
  aliases: [ ],
  scope: "singleton",
  type: "org.springframework.data.redis.core.convert.RedisCustomConversions",
  dependencies: []

但是从命令行运行我看到了这个。

redisCustomConversions: {
  aliases: [ ],
  scope: "singleton",
  type: "org.springframework.data.redis.core.convert.RedisCustomConversions",
  resource: "class path resource [com/my/project/cache/config/RedisConfig.class]",
  dependencies: [
   "MyWriterConverter",
   "MyReaderConverter"
]

所以问题是,我们可以依赖这种行为吗?或者它是随机的,对于某些部署,将加载默认的 RedisCustomConversions,而对于其他我的自定义 RedisCustomConversions 将被加载(这会使应用程序崩溃,因为 REDIS 中的数据格式会不同)?

【问题讨论】:

    标签: spring-boot redis spring-data spring-data-redis spring-framework-beans


    【解决方案1】:

    我和你有同样的问题,在我的头撞到墙上的时间比我想承认的要长之后,我在 spring-data gitter 中询问了。他们是这样回答的:

    使用Spring Boot时,需要在同一个配置类上声明@EnableRedisRepositories@BeanRedisCustomConversions的定义。这是目前@EnableRedisRepositories 构建方式的限制。

    【讨论】:

    • 感谢您的回复 Taylor,我已退出该项目,因此没有代码可以试用。但是如果我将来必须使用它,这将有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2021-09-13
    • 2015-01-31
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-07
    相关资源
    最近更新 更多