Spring数据REDIS的Spring Bean覆盖



我正在尝试覆盖RedisCustomConversions〔initial post〕(使用Redis Repository的RedisCustomConversions注意到一些不一致的行为。

当我从IDE运行spring-boot应用程序时,我会收到上面文章中提到的错误,但如果使用java-jar-myapp.jar执行该应用程序,它会正常工作。这听起来不错,但这让我怀疑这种行为是否一致?也就是说,我过载的bean会一直连接吗?还是随机的?

我还从/activator/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中的数据格式将不同(?

我和你有同样的问题,在我的头撞在墙上的时间比我想承认的要长之后,我在春季数据gitter中问了。他们这样回应:

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

最新更新