@SpringBootApplication
public class Application
{
public static void main( String[] args )
{
// SpringBoot 应用启动起来
SpringApplication.run(Application.class, args);
}
}
1. @SpringBootConfiguration,标注当前类是配置类,并会将当前类内声明的一个或多个以
@Bean 注解标记的方法的实例纳入到 srping 容器中,是 Sprnig Boot 项目的核心注解,主要
目的是开启自动配置。
2. main 方法这是一个标准的 Java 应用的 main 的方法,主要作用是作为项目启动的入口
首 先 我 们 分 析 的 就 是 入 口 类 Application 的 启 动 注 解 @SpringBootApplication , 进 入
@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}
)}
)
public @interface SpringBootApplication {
发 现 @SpringBootApplication 是 一 个 复 合 注 解 , 包 括 @ComponentScan , 和
@SpringBootConfiguration,@EnableAutoConfiguration。
1. @SpringBootConfiguration,标注当前类是配置类,并会将当前类内声明的一个或多个以
@Bean 注解标记的方法的实例纳入到 srping 容器中,是 Sprnig Boot 项目的核心注解,主要
目的是开启自动配置。
2. @EnableAutoConfiguration 的作用启动自动的配置,@EnableAutoConfiguration 注解的意思
就 是 Springboot 根 据 你 添 加 的 jar 包 来 配 置 你 项 目 的 默 认 配 置 , 比 如 根 据
spring-boot-starter-web ,来判断你的项目是否需要添加了 webmvc 和 tomcat,就会自动的
帮你配置 web 项目中所需要的默认配置。