在这篇文章中,我们将通过一个例子讨论一个非常重要的Spring Boot注解,即@SpringBootApplication
。
@SpringBootApplication注解表示一个配置类,它声明了一个或多个@Beanmethods,还触发了自动配置和组件扫描。这是一个方便的注解,相当于声明了@Configuration, @EnableAutoConfiguration, and @ComponentScan
。
下图显示了@SpringBootApplication注解的一个内部实现。
@SpringBootApplication注解等同于使用@Configuration, @EnableAutoConfiguration, 和@ComponentScan的默认属性。
我们使用这个注解来标记Spring Boot应用程序的主类:
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);
}
}
Spring Boot @SpringBootApplication注解用于标记一个配置类,该类声明了一个或多个@Bean方法,还触发了自动配置和组件扫描。
@SpringBootApplication注解是以下三个Spring注解的组合。
这个注解将一个类标记为配置类,用于基于Java的配置。
这个注解使组件扫描成为可能,这样你创建的Web控制器类和其他组件将被自动发现并注册为Spring应用上下文中的bean。你编写的所有@Controller类都会被这个注解所发现。
这个注解启用了Spring Boot神奇的自动配置功能,它可以自动为你配置很多东西。
以下是@SpringBootApplication
注解中接受的参数。
Class<?>[] exclude - 排除特定的自动配置类,这样它们将永远不会被应用。
*String[] excludeName - 排除特定的自动配置类名称,这样它们将永远不会被应用。
Class<?>[] scanBasePackageClass - 一个类型安全的替代 scanBasePackages() 的方法,用于指定要扫描的注解组件的包。
String[] scanBasePackages- 用于扫描注解组件的基础包。
到目前为止,我们看到@SpringBootApplicationannotation等同于使用@Configuration、@EnableAutoConfiguration和**@ComponentScan**,但这些功能都不是强制性的,你可以选择用它所启用的任何功能来替代这个单一的注解。例如,你可能不希望在你的应用程序中使用组件扫描。
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);
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.javaguides.net/2018/09/spring-boot-springbootapplication-annotation-with-example.html
内容来源于网络,如有侵权,请联系作者删除!