文档章节

Spring Boot核心注解讲解

DemonsI
 DemonsI
发布于 10/16 11:11
字数 701
阅读 8
收藏 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
粉丝 36
博文 343
码字总数 866800
作品 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框架学习5-spring boot的web开发(1)

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

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

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

Java技术栈
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

没有更多内容

加载失败,请刷新页面

加载更多

揭秘 | 双11逆天记录背后的数据库技术革新

摘要: 第十个天猫“双11”狂欢节圆满落幕,如今双11已不仅仅是天猫的盛会,更是阿里技术人的新年 每一个数字背后 都需要强大的技术支撑 Higher, Faster, Smarter 是我们不变的追求 技术无边...

阿里云云栖社区
23分钟前
4
0
element ui中的input组件不能监听键盘事件解决

vue使用element-ui的el-input监听不了键盘事件,原因应该是element-ui自身封装了一层div在input标签外面,把原来的事件隐藏了,所以如下代码运行是无响应的: <el-input v-model="search" p...

呵呵闯
26分钟前
3
0
Linux常用中间件启动命令

zookeeper redis lts

王桥修道院副院长
27分钟前
2
0
Kotlin极简教程中对? extends 和 ? super (out和int)的描述

PECS 现在问题来了:我们什么时候用extends什么时候用super呢?《Effective Java》给出了答案: PECS: producer-extends, consumer-super 比如,一个简单的Stack API: public class Stack<E...

SuShine
28分钟前
1
0
微信分享link问题

前提:公司业务,分享的页面需要自定义并且是一个固定页面 因此自定义分享link,这里存在一个问题,必须与安全域名一致,自不必说,而且这个link必须是当有协议的,也就是说不能写成locatio...

litCabbage
30分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部