SpringBoot里的常见注解

1. 常用注解

SpringBoot摒弃XML配置方式,改为全注解驱动

1. 组件注册

@Configuration@SpringBootConfiguration

@Bean@Scope

@Controller、 @Service、@Repository、@Component

@Import

@ComponentScan

步骤:

1、@Configuration 编写一个配置类

2、在配置类中,自定义方法给容器中注册组件。配合@Bean

3、或使用@Import 导入第三方的组件

2. 条件注解

如果注解指定的条件成立,则触发指定行为

@ConditionalOnXxx

@ConditionalOnClass:如果类路径中存在这个类,则触发指定行为

@ConditionalOnMissingClass:如果类路径中不存在这个类,则触发指定行为

@ConditionalOnBean:如果容器中存在这个Bean(组件),则触发指定行为

@ConditionalOnMissingBean:如果容器中不存在这个Bean(组件),则触发指定行为

场景:

  • 如果存在FastsqlException这个类,给容器中放一个Cat组件,名cat01,
  • 否则,就给容器中放一个Dog组件,名dog01
  • 如果系统中有dog01这个组件,就给容器中放一个 User组件,名zhangsan
  • 否则,就放一个User,名叫lisi

@ConditionalOnBean(value=组件类型,name=组件名字):判断容器中是否有这个类型的组件,并且名字是指定的值

@ConditionalOnRepositoryType (org.springframework.boot.autoconfigure.data)
@ConditionalOnDefaultWebSecurity (org.springframework.boot.autoconfigure.security)
@ConditionalOnSingleCandidate (org.springframework.boot.autoconfigure.condition)
@ConditionalOnWebApplication (org.springframework.boot.autoconfigure.condition)
@ConditionalOnWarDeployment (org.springframework.boot.autoconfigure.condition)
@ConditionalOnJndi (org.springframework.boot.autoconfigure.condition)
@ConditionalOnResource (org.springframework.boot.autoconfigure.condition)
@ConditionalOnExpression (org.springframework.boot.autoconfigure.condition)
@ConditionalOnClass (org.springframework.boot.autoconfigure.condition)
@ConditionalOnEnabledResourceChain (org.springframework.boot.autoconfigure.web)
@ConditionalOnMissingClass (org.springframework.boot.autoconfigure.condition)
@ConditionalOnNotWebApplication (org.springframework.boot.autoconfigure.condition)
@ConditionalOnProperty (org.springframework.boot.autoconfigure.condition)
@ConditionalOnCloudPlatform (org.springframework.boot.autoconfigure.condition)
@ConditionalOnBean (org.springframework.boot.autoconfigure.condition)
@ConditionalOnMissingBean (org.springframework.boot.autoconfigure.condition)
@ConditionalOnMissingFilterBean (org.springframework.boot.autoconfigure.web.servlet)
@Profile (org.springframework.context.annotation)
@ConditionalOnInitializedRestarter (org.springframework.boot.devtools.restart)
@ConditionalOnGraphQlSchema (org.springframework.boot.autoconfigure.graphql)
@ConditionalOnJava (org.springframework.boot.autoconfigure.condition)

3. 属性绑定

@ConfigurationProperties: 声明组件的属性和配置文件哪些前缀开始项进行绑定

@EnableConfigurationProperties:快速注册注解:

  • **场景:**SpringBoot默认只扫描自己主程序所在的包。如果导入第三方包,即使组件上标注了 @Component、@ConfigurationProperties 注解,也没用。因为组件都扫描不进来,此时使用这个注解就可以快速进行属性绑定并把组件注册进容器

将容器中任意组件(Bean)的属性值配置文件的配置项的值进行绑定

  • 1、给容器中注册组件(@Component、@Bean)
  • 2、使用**@ConfigurationProperties 声明组件和配置文件的哪些配置项进行绑定**

这部分内容是对Spring Boot常用注解的概述,涵盖了组件注册、条件注解和属性绑定等核心概念。让我对各部分进行详细解读和补充说明,帮助理解每个注解的作用与使用场景。

  1. 组件注册
    @Configuration 与 @SpringBootConfiguration
    @Configuration 是用来标记一个类为配置类,在Spring中它的作用是定义一个配置类,通常用于定义Bean。
    @SpringBootConfiguration 是 @Configuration 的一个特例,专门用于Spring Boot应用程序。它通常在Spring Boot的主应用程序类上标注,用于启动自动配置和组件扫描等。
    @Bean 和 @Scope
    @Bean 用于在配置类中注册一个Bean,它可以标记一个方法,Spring会调用该方法,并将返回值注册为容器中的Bean。
    @Scope 用来定义Bean的作用域。默认是单例作用域(singleton),但可以通过设置为 prototype 或其他作用域来控制实例的创建方式。
    @Controller, @Service, @Repository, @Component
    这些是Spring的四个常用的组件注解:

@Controller:标记控制器类,用于处理HTTP请求。
@Service:标记服务类,通常用于业务逻辑。
@Repository:标记数据访问层,用于与数据库交互。
@Component:通用组件标识,Spring会自动扫描并注册。
@Import
用于导入其他配置类或组件,通常用于模块化管理,或者引用第三方库中定义的配置。
@ComponentScan
Spring会扫描指定包下的所有类,自动注册加了 @Component、@Service、@Repository 等注解的类。
2. 条件注解
条件注解用于根据一定条件决定是否激活某个Bean或组件的创建,这可以有效地减少不必要的组件加载,提高系统性能和灵活性。

**@ConditionalOnXxx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值