@SpringBootApplication注解组成

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@SpringBootApplication注解组成相关的知识,希望对你有一定的参考价值。

参考技术A

@Inherited:子类可以继承父类的被@Inherited修饰的注解
@ComponentScan:默认会扫描该类所在的包下所有的配置类
@SpringBootConfiguration:@SpringBootConfiguration注解的作用与@Configuration注解相同
@EnableAutoConfiguration :从classpath中搜索所有 META-INF/spring.factories配置文件。然后,将其中org.springframework.boot.autoconfigure.EnableAutoConfiguration key对应的配置项加载到spring容器。

@SpringBootApplication注解:

@EnableAutoConfiguration注解:

@AutoConfigurationPackage注解:

@SpringBootApplication注解

之前用户使用的是3个注解注解他们的main类。分别是@Configuration,@EnableAutoConfiguration,@ComponentScan。由于这些注解一般都是一起使用,spring boot提供了一个统一的注解@SpringBootApplication。

@SpringBootApplication = (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan。

1
2
3
4
5
6
@SpringBootApplication 
public class ApplicationMain { 
    public static void main(String[] args) { 
        SpringApplication.run(Application.class, args); 
    
}

 

分开解释@Configuration,@EnableAutoConfiguration,@ComponentScan。

1、@Configuration:提到@Configuration就要提到他的搭档@Bean。使用这两个注解就可以创建一个简单的spring配置类,可以用来替代相应的xml配置文件。

1
2
3
4
5
6
<beans> 
    <bean id = "car" class="com.test.Car"
        <property name="wheel" ref = "wheel"></property> 
    </bean> 
    <bean id = "wheel" class="com.test.Wheel"></bean> 
</beans> 

 相当于:

1
2
3
4
5
6
7
8
9
10
11
12
13
@Configuration 
public class Conf { 
    @Bean 
    public Car car() { 
        Car car = new Car(); 
        car.setWheel(wheel()); 
        return car; 
    
    @Bean  
    public Wheel wheel() { 
        return new Wheel(); 
    
}

 

@Configuration的注解类标识这个类可以使用Spring IoC容器作为bean定义的来源。@Bean注解告诉Spring,一个带有@Bean的注解方法将返回一个对象,该对象应该被注册为在Spring应用程序上下文中的bean。

2、@EnableAutoConfiguration:能够自动配置spring的上下文,试图猜测和配置你想要的bean类,通常会自动根据你的类路径和你的bean定义自动配置。

3、@ComponentScan:会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository,@Controller。

以上是关于@SpringBootApplication注解组成的主要内容,如果未能解决你的问题,请参考以下文章

Springboot系列:@SpringBootApplication注解

springboot情操陶冶-@SpringBootApplication注解解析

Spring编程:springboot @SpringBootApplication注解

SpringBoot系列之启动流程3-自动装配与@SpringBootApplication注解

SpringBoot之@SpringBootApplication注解详解

@SpringBootApplication包含的三个注解及其含义