您的当前位置:首页正文

Spring Boot启动类

来源:华佗健康网

Spring Boot启动类分析

package com.rui.Spring_Boot_215;

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

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

关键类:@SpringBootApplication,SpringApplication

完全限定名:

org.springframework.boot.SpringApplication

org.springframework.boot.autoconfigure.SpringBootApplication

 

1 @SpringBootApplication
表明一个配置类中声明了一个或者多个带@Bean注解的方法,同时也触发了自动配置和组件扫描的功能。
该注解是三个注解的组合:@Configuration,@EnableAutoConfiguration 和 @ComponentScan。

@SpringBootConfiguration等价于@Configuration

属性:
exclude 排除掉指定的自动配置的类。数组形式。例如exclude={a.class,b.class}
excludeName 排除掉指定的自动配置的类的名字。数组形式。例如excludeName={"x.y.z","a.b.c"}
scanBasePackages 扫描带注解的组件的基础包
scanBasePackageName scanBasePackages()的类型安全替代方法,用于指定要扫描带注解组件的包。将扫描指定的每个类的包。

联系:Java注解

2 SpringApplication
SpringApplication.java 总共1330行

从Java的main方法中可以使用类 SpringApplication 来引导和启动一个Spring应用程序。默认地,该类通过以下的步骤来引导应用程序员:

1 创建一个合适的 ApplicationContext 实例(这个取决于classpath)
2 注册 CommandLinePropertySource以将命令行参数曝露为Spring的属性
3 重刷新应用上下文,加载所有的单例bean
4 触发任何 CommandLineRunner bean

调用 SpringApplication 的静态方法 run(Class, String[]) 可以从main方法中启动应用。

 @Configuration
 @EnableAutoConfiguration
 public class MyApplication  {

   // ... Bean definitions

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

更高级的配置是,在运行应用之前,创建 SpringApplication 实例并且配置该实例,如下所示:

public static void main(String[] args) {
SpringApplication application = new SpringApplication(MyApplication.class);
// ... customize application settings here
application.run(args)
}

SpringApplication 可以从各种不同的源中读取bean。一般推荐使用单例的 @Configuration 类来引导你的应用程序,

然而,你也可以使用以下方式设置源
1 AnnotatedBeanDefinitionReader 加载全限定类名
2 XmlBeanDefinitionReader 加载XML文件资源,或者 GroovyBeanDefinitionReader 加载 groovy 脚本
3 ClassPathBeanDefinitionScanner 扫描包的名字

配置属性也是绑定到 SpringApplication 的。这使得动态设置 SpringApplication 的属性成为可能,像其他的源("spring.main.sources" - 一个CSV列表),表示这是一个web环境的标志("spring.main.web-application-type=none")或者关闭banner的标志("spring.main.banner-mode=off")。

 

参考资料

转载于:https://www.cnblogs.com/mrray1105/p/11086763.html

因篇幅问题不能全部显示,请点此查看更多更全内容