SpingBoot三大核心注解

2019-05-31  本文已影响0人  24号球员

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三大核心注解的简单介绍。^^

上一篇下一篇

猜你喜欢

热点阅读