Spring Boot 参考指南(使用@SpringBootApplication注解)

18. 使用@SpringBootApplication注解

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

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

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

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)。app


上一篇:Spring bean和依赖项注入

下一篇:运行你的应用程序

相关文章
相关标签/搜索