@ConditionalOnBean()
是Spring Framework 中的一个条件注解(Conditional Annotation),用于在应用启动时检查是否存在指定类型的 Bean。如果存在该类型的 Bean,则被标注了该注解的 Bean 才会被实例化和装配到 Spring 容器中,否则该 Bean 不会被实例化和装配。
举例来说@ConditionalOnBean(Producer.class),假设我们有一个名为 MyService 的类,并且我们希望只有在 Spring 容器中存在 Producer 类型的 Bean 时,才实例化和装配 MyService 类。在这种情况下,我们可以使用 @ConditionalOnBean(Producer.class) 注解来标注 MyService 类,以达到条件装配的效果。
这个注解通常用于在配置类中声明 Bean 的装配条件,以避免不必要的 Bean 实例化和装配,从而提高应用的启动性能和资源利用率。
@Configuration
用于声明该类是一个配置类,Spring容器会扫描该类,并将其中的Bean注册到容器中,供其他组件使用。
@ConditionalOnProperty
注解用于根据配置文件中的属性值来控制Bean是否被创建。
@ConditionalOnProperty(prefix = “rocketmq”, name = “enable”, havingValue = “true”):
在该注解中,prefix表示属性名的前缀,name表示属性名,havingValue表示属性值。当配置文件中prefix.name属性的值等于havingValue时,被注解的Bean才会被创建并注册到Spring容器中,否则不会被创建。在上述例子中,只有当rocketmq.enable的值为true时,才会创建和注册该类的Bean。
@EnableCaching
注解是spring framework中的注解驱动的缓存管理功能。在配置类上使用了这个注解,就不需要在XML文件中配置cache manager了。