Java spring中的惰性加载@EnableCaching类

Java spring中的惰性加载@EnableCaching类,java,spring,spring-data,lazy-loading,spring-annotations,Java,Spring,Spring Data,Lazy Loading,Spring Annotations,我希望我的spring boot服务器能够启动,即使我的redis缓存没有启动 我正在使用@EnableCaching注释,但是如果redis关闭,给我BeanCreationException,我的服务器启动就会失败。由于无法处理BeanCreationException,因此我唯一的选择是延迟加载我的@EnableCaching类 我尝试将该类注释如下: @Configuration @EnableCaching @Lazy @Profile("dev") public class Redi

我希望我的spring boot服务器能够启动,即使我的redis缓存没有启动

我正在使用
@EnableCaching
注释,但是如果redis关闭,给我
BeanCreationException
,我的服务器启动就会失败。由于无法处理
BeanCreationException
,因此我唯一的选择是延迟加载我的
@EnableCaching

我尝试将该类注释如下:

@Configuration
@EnableCaching
@Lazy
@Profile("dev")
public class RedisCache extends CachingConfigurerSupport {}
但这个bean仍然在服务器启动时被加载,因此启动失败


据我所知,Spring配置在应用程序启动时就已经加载,因为那是创建ApplicationContext时,所以如何延迟加载上述类

为了做您想要做的事情,您必须创建某种类型的ApplicationContext自定义实现(尽管我真的不知道它在依赖项注入的依赖项解析方面应该如何工作)或者为缓存创建自定义包装,在使用缓存之前不会尝试建立与Redis的连接


也可以将Spring Boot配置为跳过这个特定的@Configuration类(),然后手动创建Redis连接bean,然后从这个上下文中检索它们,而不是自动连接它们。

您打算如何处理延迟加载?基于什么?惰性负载总是。。。问题中提到的意图是,如果beancreation失败,那么我想处理同样的问题。Spring不允许在启动时直接处理beancreation异常(try catch on exception不起作用),即使Redis不起作用,您也应该能够启动。你能告诉我们你的配置的更多细节吗?剥去细节。请同时发布完整的stacktrace。