美文网首页
SpingBoot三大核心注解

SpingBoot三大核心注解

作者: 24号球员 | 来源:发表于2019-05-31 13:12 被阅读0次

    springboot最大的特点是无需配置XML文件,能自动扫描包路径装载并注入对象,并能做到自动配置需要的jar核心依赖

    默认情况下springboot它之所以能自动帮我们做这些事情,就是因为文章提到的核心注解


    当我们项目创建完成后,项目启动类XxxApplication.java会默认帮我们配置一个@SpringBootApplication注解:

    @SpringBootApplication
    public class DemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    
    }
    

    打开@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}
    )}
    )
    

    可以看到@SpringBootApplication注解下其中包含了@Configuration@EnableAutoConfiguration@ComponentScan三个主要核心注解:

    1. @Configuration
    org.springframework.context.annotation.Configuration
    

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

    @SpringBootConfiguration

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

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

    2.@EnableAutoConfiguration
    org.springframework.boot.autoconfigure.EnableAutoConfiguration
    

    开启自动配置,该注解会使springboot根据项目中依赖的jar包自动配置项目的配置项。如:我们添加了spring-boot-starter-web的依赖,项目中也就会引入spring mvc的依赖,springboot就会自动配置许多web需要的核心的依赖。

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    

    3.@ComponentScan
    org.springframework.context.annotation.ComponentScan
    

    开启组件扫描,该注解会自动扫描包路径下面的所有@Controller@Service@Repository@Component的类,不配置包路径的话,在springboot中默认扫描@SpringBootApplication所在类的同级目录以及子目录下的相关注解


    以上是springboot三大核心注解的简单介绍。^^

    相关文章

      网友评论

          本文标题:SpingBoot三大核心注解

          本文链接:https://www.haomeiwen.com/subject/hefwtctx.html