zoukankan      html  css  js  c++  java
  • @SpringBootApplication注解的理解

    • @SpringBootApplication

    废话不多说,我们直接贴出来SpringBoot的官方给出的源码:
    package org.springframework.boot.autoconfigure;
    @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 {

    }

    可以分为这两类:
    第一类
    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @Inherited

    第二类
    @SpringBootConfiguration
    @EnableAutoConfiguration
    @ComponentScan

    第一类我们忽略,直接看第二类
    下面是每一类的源码:

    @SpringBootConfiguration

    package org.springframework.boot;
    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @Configuration
    public @interface SpringBootConfiguration {

    }

    @EnableAutoConfiguration

    package org.springframework.boot.autoconfigure;
    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @Inherited
    @AutoConfigurationPackage
    @Import(AutoConfigurationImportSelector.class)
    public @interface EnableAutoConfiguration {

    }

    @ComponentScan

    package org.springframework.context.annotation;
    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.TYPE)
    @Documented
    @Repeatable(ComponentScans.class)
    public @interface ComponentScan {
    }


    于此得出@SpringBootApplication由@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan组成。

    我们来看看官方https://docs.spring.io/spring-boot/docs/2.2.6.RELEASE/api/    API是怎么解释的

     

    @SpringBootApplication  注解在 这个包目录下 org.springframework.boot.autoconfigure;

    重点就是这句话“Indicates a configuration class that declares one or more @Bean methods and also triggers auto-configuration and component scanning. This is a convenience annotation that is equivalent to declaring @Configuration@EnableAutoConfiguration and @ComponentScan.”

    我们翻一下:

    指示一个配置类,该类声明一个或多个@Bean方法,并且还触发自动配置和组件扫描。这是一个方便注释,等效于声明@ Configuration,@ EnableAutoConfiguration和@ComponentScan。

    从中我们可以明确的知道@SpringBootApplication==@Configuration+@EnableAutoConfiguration+@ComponentScan

    2020-04-25 00:12:18

     

     

     

     









  • 相关阅读:
    撤销git reset
    vue diff,react diff算法
    了解下domparser方法
    css中的BFC和IFC
    浏览器输入URL后发生了什么
    几种图片滤镜算法代码实现(灰度、浮雕、二值、底片)
    python--记python输入多行
    chrome添加 postman扩展程序图文简介
    火狐浏览器插件--HttpRequester接口测试
    python爬虫--一次爬取小说的尝试
  • 原文地址:https://www.cnblogs.com/crelle/p/12771133.html
Copyright © 2011-2022 走看看