发布网友
发布时间:2022-11-22 06:39
共1个回答
热心网友
时间:2024-07-30 22:37
在Spring4.3之后,引入了一个新特性:当构造方法只有一个参数时,可以不使用 @ Autowired 注解。
在SpringBoot的自动装配类中,这种形式被大量使用。
在Spring4.3版本,引入了 ObjectProvider 接口。
可以看做是依赖注入的懒加载,异常将从启动阶段转移到业务运行的阶段。
在Spring5.1版本后提供了基于 orderedStream 方法来获取有序的Stream方法。
在某些业务中,我们需要这样一种场景:若配置文件配置了某些参数,那么便启用某个功能。
SpringBoot为我们提供了 @ConditionalOnProperty(prefix = "xxx.rabbit", name = "thresholdTime") 注解
例如:配置了一个*,只有在yml文件中含有 xxx.rabbit.thresholdTime 的配置时,才会将 timeoutInterceptor 这个bean放入到Spring容器中。
但是若没有配置的话,Spring容器中没有该Bean,那么如何宽松的注入呢?
注意点:
Spring Boot 注解之ObjectProvider源码追踪