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://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/boot-features-spring-application.html

https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/using-boot-using-springbootapplication-annotation.html

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值