博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot核心注解讲解
阅读量:6591 次
发布时间:2019-06-24

本文共 1784 字,大约阅读时间需要 5 分钟。

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 是可重复注解,即可以配置多个,用来配置注册不同的子包。

关于重复注解,大家可以看这篇文章“  ”。

3,@ EnableAutoConfiguration

org.springframework.boot.autoconfigure.EnableAutoConfiguration

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

自动配置更多详细使用及实战可以看这篇文章“  ”。

最后的彩蛋

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 

 

转载地址:http://ouuio.baihongyu.com/

你可能感兴趣的文章
导出DLLRegisterServer接口遇到的问题
查看>>
压缩算法
查看>>
ios和android的发展前景比较
查看>>
mysql排序关于英文字母abcd..xyz排序。
查看>>
[转载]SpringMVC的Model参数绑定方式
查看>>
Linux socket多进程服务器框架三
查看>>
Debug.print的用法
查看>>
常用名词
查看>>
计算机硬件常识
查看>>
第一百三十四节,JavaScript,封装库--遮罩锁屏
查看>>
【转】cookie如何共享到各个浏览器
查看>>
自制基于HMM的python中文分词器
查看>>
如何在Root的手机上开启ViewServer,使得HierachyViewer能够连接
查看>>
重写和重载
查看>>
RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2-新增锁定用户与解除锁定用户的功能...
查看>>
vue1.0 的过滤器
查看>>
如何删除anaconda
查看>>
关于字符串与包装类的一些常识
查看>>
CopyOnWriteArrayList源码解析(1)
查看>>
【3分钟就会系列】使用Ocelot+Consul搭建微服务吧!
查看>>