2

18. 使用@SpringBootApplication注解

许多Spring Boot开发人员喜欢他们的应用程序使用自动配置、组件扫描,并能够在他们的“应用程序类”上定义额外的配置,可以使用一个@SpringBootApplication注解来启用这三个特性:

  • @EnableAutoConfiguration:启用Spring Boot的自动配置机制
  • @ComponentScan:在应用程序所在的包上启用@Component扫描(参见最佳实践
  • @Configuration:允许在上下文中注册额外的bean或导入额外的配置类

@SpringBootApplication注解与使用@Configuration@EnableAutoConfiguration@ComponentScan的默认属性等效,如下例所示:

package com.example.myapplication;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan
public class Application {

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

}
@SpringBootApplication还提供别名来定制@EnableAutoConfiguration和@ComponentScan的属性。
这些特性都不是强制性的,你可以选择用它所支持的任何特性来替换这个注解,例如,你可能不想在应用程序中使用组件扫描:
package com.example.myapplication;

import org.springframework.boot.SpringApplication;
import org.springframework.context.annotation.ComponentScan
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

@Configuration
@EnableAutoConfiguration
@Import({ MyConfig.class, MyAnotherConfig.class })
public class Application {

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

}

在本例中,Application和其他Spring Boot应用程序一样,只是没有自动检测到@component - 注解类,而用户定义的bean是显式导入的(参见@Import)。


上一篇:Spring bean和依赖项注入
下一篇:运行你的应用程序

博弈
2.5k 声望1.5k 粉丝

态度决定一切