Spring Boot 最核心的 3 个注解详解

Spring Boot 核心注解讲解

Spring Boot 最大的特点是无需 XML 配置文件,能自动扫描包路径装载并注入对象,并能做到根据 classpath 下的 jar 包自动配置。

所以 Spring Boot 最核心的 3 个注解就是:

1、@Configuration

org.springframework.context.annotation.Configuration

这是 Spring 3.0 添加的一个注解,用来代替 applicationContext.xml 配置文件,所有这个配置文件里面能做到的事情都可以通过这个注解所在类来进行注册。

下面几个相关注解也是非常重要的!

@Bean

用来代替 XML 配置文件里面的 <bean ...> 配置。

@ImportResource

如果有些通过类的注册方式配置不了的,可以通过这个注解引入额外的 XML 配置文件,有些老的配置文件无法通过 @Configuration 方式配置的非常管用。

@Import

用来引入额外的一个或者多个 @Configuration 修饰的配置文件类。

@SpringBootConfiguration

这个注解就是 @Configuration 注解的变体,只是用来修饰是 Spring Boot 配置而已,或者可利于 Spring Boot 后续的扩展,源码如下。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {

}

2、@ComponentScan

org.springframework.context.annotation.ComponentScan

这是 Spring 3.1 添加的一个注解,用来代替配置文件中的 component-scan 配置,开启组件扫描,即自动扫描包路径下的 @Component 注解进行注册 bean 实例到 context 中。

另外,@ComponentScans 是可重复注解,即可以配置多个,用来配置注册不同的子包。

关于重复注解,大家可以看这篇文章《JAVA元注解@interface详解》。

3、@EnableAutoConfiguration

org.springframework.boot.autoconfigure.EnableAutoConfiguration

看全路径就知道,这是自 Spring Boot 诞生时添加的注解,用来提供自动配置,上面的两个都是 spring-context 包下的,不属于 Spring Boot,所以 Spring 3.0 之后的去 XML 配置方式已经为 Spring Boot 埋下了伏笔!

自动配置更多详细使用及实战可以看这篇文章《Spring Boot自动配置原理、实战》。

最后的彩蛋

Spring Boot 最核心的 3 个注解介绍完了,大家可能会有疑问,为什么最主要的注解 @SpringBootApplication 不在其中?

留给大家的彩蛋,其实这个 @SpringBootApplication 注解就包含了以上 3 个主要注解,平时没有自定义配置的需求,则使用 @SpringBootApplication 注解完全就可以了!

让我们来看下 @SpringBootApplication 注解的源码,一切明了!

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
		@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
		@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {

    ...

}

看完涨姿势了吗?

点赞转发一下吧,以后碾压面试官!


作者:Java技术栈
链接:http://www.imooc.com/article/254495
来源:慕课网
本文原创发布于慕课网 ,转载请注明出处,谢谢合作

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring Boot 是现代化的Java应用程序开发框架,其核心注解。下面就是 Spring Boot核心的27个注解的详细解释: 1. @SpringBootApplication: 组合注解,包含了 @Configuration、@EnableAutoConfiguration 和 @ComponentScan。它标注一个主程序类,表示这是一个 Spring Boot 应用。 2. @RestController: 标注一个类,表示这个类是一个控制器,同时也会返回 Json 格式的数据。 3. @RequestMapping: 定义一个HTTP请求映射到控制器方法它可以有多个属性,包括路径、HTTP请求类型、请求头、参数等。 4. @GetMapping: 等同于@RequestMapping(method = RequestMethod.GET) 5. @PostMapping: 等同于@RequestMapping(method = RequestMethod.POST) 6. @PutMapping: 等同于@RequestMapping(method = RequestMethod.PUT) 7. @DeleteMapping: 等同于@RequestMapping(method = RequestMethod.DELETE) 8. @PathVariable: 映射 URL 请求路径中的占位符到方法参数中,可以在 URL 中使用 {variable} 格式来定义一个占位符。 9. @RequestParam: 映射请求参数到方法参数中。 10. @RequestBody: 请求头对象数据类型转换。 11. @RestControllerAdvice: 全局异常捕获处理。 12. @Validated: 验证请求参数的合法性。 13. @JsonFormat: 格式化输出的 Json 日期。 14. @JsonIgnore: 序列化时忽略某字段。 15. @JsonProperty: 反序列化时取指定的字段。 16. @Configuration: 声明一个类作为Java配置文件。 17. @ComponentScan: 自动扫描指定包下的所有 Spring 组件。 18. @ImportResource: 加载 xml 配置文件。 19. @Bean: 声明一个方法为 Bean,可供程序使用。 20. @Qualifier: 指定自动装配候选者的限定符。 21. @Autowired: 自动装配 Bean。 22. @Resource: 自动装配 Bean。 23. @Value: 注入配置文件中的属性。 24. @ConditionalOnMissingBean: 当容器中没有指定Bean时才会将其实例化。 25. @EnableConfigurationProperties: 开启配置文件注入功能。 26. @ConfigurationProperties: 把配置文件中的属性值注入到Bean中。 27. @EnableAsync: 开启异步任务支持。 以上就是 Spring Boot核心的27个注解,熟练掌握这些注解,将有助于编写完整的 Web 应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值