springboot系列4,SpringApplication准备阶段

关于SpringBoot,大致可分为基础技术和衍生技术。

基础技术主要是关于SpringFramework的,那SpringFramework中,我们可大致分为几块:

Spring 模式注解:例如@Service、@Component等,详情见之前文章。

Spring 应用上下文:无需多解释,核心组件,用来装配bean、相应的生命周期。

Spring 工厂加载机制:之前文章自动装配。

Spring 应用上下文初始化器:在spring上下文没有初始化之前做一些调整和变化等。

Spring Environment抽象接口:一个环境,统一所有环境,包括配置属性、profile等。

Spring 应用事件/监听器:扩展了java应用监听的方式。

衍生技术或者是SpringFramework的衍生技术,主要是SpringBoot的特性:

SpringApplication

SpringApplication Builder API:之前文章有用过,可以进行链式编写,比较方便。

SpringApplication运行监听器

SpringApplication参数

SpringApplication故障分析

SpringBoot应用事件/监听器

 

SpringApplication官方定义:SpringApplication类通过其中的main方法来引导Spring应用启动。很多情况下都可以使用SpringApplication.run的静态方法的方式启动。

所以SpringApplication是Spring应用的引导类,可以提供便利的自定义行为方法。

使用场景:嵌入式Web应用和非Web应用

拓展:web应用分为嵌入式场景和非嵌入式场景,springboot可以部署在Tomcat7、jetty7、servlet容器中,部署在servlet容器中时,SpringApplication就不能用了。

自定义SpringApplication

通过SpringApplication的API调整

SpringApplication springApplication = new SpringApplication(Application.class);
springApplication.setBannerMode(Banner.Mode.CONSOLE);
springApplication.setWebApplicationType(WebApplicationType.NONE);
springApplication.setAdditionalProfiles("prod");
springApplication.setHeadless(true);

通过SpringApplicationBuilder的API调整

new SpringApplicationBuilder(Application.class)
    .bannerMode(Banner.Mode.CONSOLE)
    .web(WebApplicationType.NONE)
    .profiles("prod")
    .headless(true)
    .run(args);

SpringApplication准备阶段

配置:Spring Bean来源

在Spring启动时,很多功能组件是以bean的方式承载的,而bean的配置需要来源,java配置class或xml上下文配置文件集合,用于springboot的BeanDefinitionLoader读取,并将配置源解析加载为Spring Bean定义。

java配置方式:SpringApplication就是一个配置源,@SpringApplication中包含@Component,所以这个类就是个源,在上面代码new SpringApplication时,把自身这个类配置进去。

对于SpringApplicationBuilder,看源码可以看出,来源可以不止一个。

通常情况下,我们会用main方法启动,如下

/**
 * {@link SpringApplication} 引导类
 */
@SpringBootApplication
public class SpringApplicationBootstrap {
    public static void main(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值