SpringBoot启动类中常用注解分析

302 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情

👨‍🎓作者:Java学术趴

🏦仓库:GithubGitee

✏️博客:CSDN掘金InfoQ云+社区

💌公众号:Java学术趴

🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。

🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。微信搜索公众号Java学术趴联系小编。

☠️每日毒鸡汤:堕落的一天

👋大家好!我是你们的老朋友Java学术趴。最近看了一下SpringBoot2的课程,发现好多的注解并不是很了解,只是简单的会用,但是真是发生的作用却不知道,最近花了一些时间把这些注解进行了一下整理,针对不同的层级进行了细致的划分,最近几天会依次给大家更新关于注解的内容,对大家有帮助的话点赞支持一下哦!

SpringBoot穷启动类中常用的注解

使用 Spring 开发时,进行配置主要有两种方式,一是 xml 的方式,二是 java config 的方式。Spring 技术自身也在不断的发展和改变,从当前 Springboot 的火热程度来看,java config 的应用是越来越广泛了,在使用 java config 的过程当中,我们不可避免的会有各种各样的注解打交道,所有,注解在实际开发中的地位很高。

1. SpringBootApplication启动类中的注解

1.1 @SpringBootApplication

@SpringBootApplication :它是SpringBoot的启动类注解,其中由三个注解组成。

  • SpringBootConfiguration : 加载配置文件的注解。
  • EnableAutoConfiguration : 开启自动配置的功能。
  • ComponentScan : @ComponentScan 的功能其实就是自动扫描并加载符合条件的组件或 bean 定义,最终将这些 bean 定义加载到容器中。这个注解是可有可无的,因为在开发中我们一般都当个的进行@Bean声明,并不一定要使用这里的批量加载的方式。

1.2 @MapperScan("mapper接口包路径信息")

@MapperScan("mapper接口包路径信息") :扫描指定包下所有的接口类,然后所有接口在编译之后都会生成相应的实现类,也就是针对Mapper进行一个声明。加上这个注解之后,就不用在每个Mapper接口上使用@Mapper注解。

@MapperScan注解多个包。

@SpringBootApplication
@MapperScan("cn.gyyx.mapper")
// 这个注解可以扫描 cn.gyyx.mapper 这个包下面的所有接口类,可以把这个接口类全部的进行动态代理。
public class WardenApplication {
    public static void main(String[] args) {
        SpringApplication.run(WardenApplication.class,args);
    }
}

在application.yml的MyBatis-plus配置:


mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true
  mapper-locations: classpath:cn/gyyx/mapper/xml/*.xml

这里 mapper-locations 配置的是:dao层 xml 文件的路径。

1.3 @EnableOpenApi

@EnableOpenApi : Swagger 3.0 的启用注解,添加上这个注解之后就可以使用Swagger3.0的Api文档。

1.4 @EnableTransactionManagement

@EnableTransactionManagement :开启声明式事务的支持。添加该注解后,Spring容器会自动扫描被 @Transactional注解的方法和类。

所有的数据访问技术都有事务处理机制,这些技术提供了API用来开启事务、提交事务以完成数据操纵,或者在发生错误的时候回滚数据。Spring支持声明式事务,这是基于AOP实现的。

1.5 @EnableAsync

@EnableAsync : 表示项目支持异步方法调用。此添加该注解之后,Spring容器会自动扫描被 @Async注解的方法或者类,对该方法进行异步操作。即该方法和调用者不在一个线程中进行。

1.6 @EnableScheduling

@EnableScheduling : 开启项目对定时任务的支持,此添加该注解之后,Spring容器会自动扫描被 @Scheduled注解的方法,被 @Scheduled注解声明的方法为定时任务,在指定的时间进行自动的执行。

1.7 @EnableCaching

@EnableCaching : 开启基于注解的缓存,声明之后SpringBoot就可以识别@Cacheable注解声明的缓存方法。