文档章节

Spring Boot核心注解讲解

DemonsI
 DemonsI
发布于 2018/10/16 11:11
字数 701
阅读 9
收藏 12

 

Spring Boot核心注解讲解

 

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

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

1,@配置

org.springframework.context.annotation.Configuration

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

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

@豆

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

@ImportResource

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

@进口

引入用来额外的一个或者多个  @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靴埋下了伏笔!

自动配置更多详细使用及实战可以看这篇文章“ 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 {     ... } 

 

 

© 著作权归作者所有

DemonsI
粉丝 38
博文 360
码字总数 920440
作品 0
朝阳
程序员
私信 提问
spring boot框架学习5-spring boot的web开发(1)

本章节主要内容: 通过前面的学习,我们了解并快速完成了spring boot第一个应用。spring boot企业级框架,那么spring boot怎么读取静态资源?如js文件夹,css文件以及png/jpg图片呢?怎么自定...

凯哥java
2017/11/01
0
0
spring boot框架学习6-spring boot的web开发(2)

本章节主要内容: 通过前面的学习,我们了解并快速完成了spring boot第一个应用。spring boot企业级框架,那么spring boot怎么读取静态资源?如js文件夹,css文件以及png/jpg图片呢?怎么自定...

凯哥java
2017/11/06
0
0
Spring Boot 最核心的 3 个注解详解

最近面试一些 Java 开发者,他们其中有些在公司实际用过 Spring Boot, 有些是自己兴趣爱好在业余自己学习过。然而,当我问他们 Spring Boot 最核心的 3 个注解是什么,令我失望的是鲜有人能答...

Java技术栈
2018/10/16
0
0
spring boot框架学习2-spring boot核心(1)

本节主要: 1:解析spring boot入口和@SpringBootApplication源码详解 SpringBootApplication包含: @SpringBootConfiguration @ComponentScan @EnableAutoConfiguration 本文是《凯哥陪你学......

凯哥java
2017/10/27
0
0
spring boot框架学习3-spring boot核心(2)

本节主要: 1:解析spring boot入口和@SpringBootApplication源码详解 SpringBootApplication包含: @SpringBootConfiguration @ComponentScan @EnableAutoConfiguration 本文是《凯哥陪你学......

凯哥java
2017/10/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

PDMan-2.1.1 发布:用心开源,免费的国产数据库建模工具(春节前最后一个版本)

一、软件介绍 PDMan 是一款开源免费的数据库模型建模工具,是PowerDesigner之外另一种更好的选择。支持Windows,Mac,Linux等操作系统,具有上手容易,使用简单的特点。 2018年获得码云GVP (Gi...

O龙猫O
35分钟前
5
0
OSChina 周二乱弹 —— 以后我偷小鱼干养你

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @庞巴哥 :只有这节奏瞬间变得轻松。。。。。。。。。分享Talking Eyes的单曲《In the sun (Extended Version)》: 《In the sun (Extended Ve...

小小编辑
今天
23
5
多表查询

第1章 多表关系实战 1.1 实战1:省和市  方案1:多张表,一对多  方案2:一张表,自关联一对多 1.2 实战2:用户和角色 (比如演员和扮演人物)  多对多关系 1.3 实战3:角色和权限 (比如...

stars永恒
今天
8
0
求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
昨天
10
0
Mac Vim配置

1.升级 vim   我自己 MacBook Pro 的系统还是 10.11 ,其自带的 vim 版本为 7.3 ,我们将其升至最新版: 使用 homebrew : brew install vim --with-lua --with-override-system-vim 这将下...

Pasenger
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部