spring boot 2.0 特性之springApplication

SpringApplication

SpringApplication 类提供了在main函数中启动spring应用程序的便利性,通过调用其静态方法其实运行,代码如下:

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

1. 默认情况下,其日志级别为info。如果上述启动失败,会注册FailureAnalyzers分析器获取一个对应的错误信息以及如何修复的一个建议。如果没有可分析的失败分析处理异常,可以通过加入debug属性打印更多的日志:代码如下:

java -jar myproject-0.0.1-SNAPSHOT.jar --debug

2. 自定义banner

可以通过启动的时候添加banner.tx进行设置或者是通过设置spring.banner.location属性指定其位置。可以通过设置指定spring.banner.charset为其他的编码格式。可以添加spring.banner.image.location图片到为其指定位置。在banner.txt里面可以设置的属性包括:

  •  ${application.version}
  • ${application.formatted-version}
  • ${spring-boot.version}
  • ${spring-boot.formatted-version}
  • ${Ansi.NAME} (or ${AnsiColor.NAME}
  • ${AnsiBackground.NAME}${AnsiStyle.NAME})
  • ${application.title}

3. 自定义springApplication:可以通过其自定义:代码如下:

public static void main(String[] args) {
	SpringApplication app = new SpringApplication(MySpringConfiguration.class);
	app.setBannerMode(Banner.Mode.OFF);
	app.run(args);
}

4. 使用flunent api进行创建:其代码如下:

new SpringApplicationBuilder()
		.sources(Parent.class)
		.child(Application.class)
		.bannerMode(Banner.Mode.OFF)
		.run(args);

5. 应用事件与监听器:springapplication可以发送一些监听事件:一些监听事件是在bean创建前就启动,因此这些事件不能注册到bean上,可以通过使用SpringApplication.addListeners(…​) 或者 SpringApplicationBuilder.listeners(…​)方法进行。如果希望事件在srpingapplication在启动的时候被自动创建,可以通过META-INF/spring.factories中加入配置位置:其代码如下:org.springframework.context.ApplicationListener=com.example.project.MyListener。其事件的启动顺序如下:

  • ApplicationStartingEvent :在启动的时候
  • ApplicationEnvironmentPreparedEvent:在上下文创建之前,在环境信息被使用的时候
  • ApplicationPreparedEvent :在bean被初始化之后
  • ApplicationReadyEvent :应用在准备读取请求
  • ApplicationFailedEvent :在启动的时候有异常

应用程序的事件通过spring的事件发布机制进行发送:context可以通过使用ApplicationContextAware 进行注入。bean的话可以使用。

6. web环境变量:可以通过设置setWebEnvironment来进行区分。

7. 链接到应用参数:可以通过注入org.springframework.boot.ApplicationArguments链接到对应的参数信息:代码如下:

import org.springframework.boot.*
import org.springframework.beans.factory.annotation.*
import org.springframework.stereotype.*

@Component
public class MyBean {

	@Autowired
	public MyBean(ApplicationArguments args) {
		boolean debug = args.containsOption("debug");
		List<String> files = args.getNonOptionArgs();
		// if run with "--debug logfile.txt" debug=true, files=["logfile.txt"]
	}

}

8. 使用application runner与commandlinerunner

如果在springrunner开始的时候运行一些代码:可以通过实现 ApplicationRunner 与 CommandLineRunne:代码如下:

import org.springframework.boot.*
import org.springframework.stereotype.*

@Component
public class MyBean implements CommandLineRunner {

	public void run(String... args) {
		// Do something...
	}

}

9. 应用程序的exit:每一个应用程序都会注册一个关闭的hook保证程序优雅的退出。所有的标准的spring的callback周期可用。那状态码将会返回通过System.exit()返回一个状态码:代码如下:

@SpringBootApplication
public class ExitCodeApplication {

	@Bean
	public ExitCodeGenerator exitCodeGenerator() {
		return () -> 42;
	}

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

}

10. admin特性 通过使用spring.application.admin.enabled来指定admin特性;这个特性可以用于管理远程的操作。

时间: 2024-09-22 03:19:01

spring boot 2.0 特性之springApplication的相关文章

spring boot 2.0特性之外部化配置

简介 spring boot允许你外部化其配置以便你能够在不同的环境中使用相同的代码.可以通过使用properties,YAML 文件,环境变量,以及命名行参数等形式外部化其配置.属性值可以通过@value的形式直接注入到bean中去(其通过spring 的抽象或者是通过使用@ConfigurationProperties绑定其结构化对象) spring boot使用了一种特别的 PropertySource允许你覆盖其值,其覆盖顺序如下: 1. devtools的环境变量被设置,则优先使用(其

spring boot 2.0特性之profile与日志

profile 简介 profile提供了应用的隔离,使其在某种特定的环境下才能生效,任何的@Component与@Configuration能够被@Profile标记限制其何时加载,如下代码所示: @Configuration @Profile("production") public class ProductionConfiguration { // ... } 通常情况下,spring可以使用spring.profiles.active Environment 去指定哪一个pr

Spring Boot 2.0.0.M2 发布

Spring Boot 2.0.0.M2 发布了.Spring Boot 项目旨在简化创建产品级的 Spring 应用和服务.你可通过它来选择不同的 Spring 平台.可创建独立的 Java 应用和 Web 应用,同时提供了命令行工具来允许 'spring scripts'. 更新内容请关注发行首页. 下载地址: Source code (zip) Source code (tar.gz) >>>[评论有礼]6月6日-30日评论每日更新的"新闻资讯和软件更新资讯",

spring boot 2.0之基础入门

spring boot介绍 spring boot为创建基于spring的应用提供了方便,不需要太多的配置,只需要很少的代码就可以实现.其也提供了对于普通java应用程序的支持以及传统的war应用支持.其主要目标:  1. 为spring开发提供快速的开发.  2. 对于一些不确定的需求能够先放在一边防止偏离.   3. 提供了很多非功能特性(例如内置服务器,安全机制,健康检查,外部配置).  4. 避免尽量少的代码以及配置. 系统条件 1. JDK 1.8以上 2. spring 5.0.2以

spring boot 2.0之使用spring boot

spring boot依赖 每一个spring boot的发型版本都包含了所依赖的版本,如果升级spring boot版本,其依赖也会同步更新升级.maven的用户可以通过继承spring-boot-starter-parent.其包含了一些合理的值的设置: 1. 默认设置的编译器为JDK 1.8 2. 源文件默认UTF-8编码 3. 从spring-boot-dependencies pom中继承的 Dependency Management 版本信息,在使用的时候,可以忽略其具体的版本信息.

Spring Boot特性

1. SpringApplication SpringApplication 类是启动 Spring Boot 应用的入口类,你可以创建一个包含 main() 方法的类,来运行 SpringApplication.run 这个静态方法: public static void main(String[] args) { SpringApplication.run(MySpringConfiguration.class, args); } 运行该类会有如下输出: . ____ _ __ _ _ /\

Spring Boot特性(转)

摘要: 1. SpringApplication SpringApplication 类是启动 Spring Boot 应用的入口类,你可以创建一个包含 main() 方法的类,来运行 SpringApplication.run 这个静态方法: public static void main(String... 1. SpringApplication SpringApplication 类是启动 Spring Boot 应用的入口类,你可以创建一个包含 main() 方法的类,来运行 Spri

Spring Boot自动配置

在上篇文章如何运行Spring Boot应用中,已经熟悉了如何通过maven或者gradle创建一个Spring Boot应用,这篇文章主要学习Spring Boot的自动配置,包括注解的使用以及一些配置约束等等. 关于Spring Boot的特性介绍,可以参考Spring Boot特性. 主应用类 在Spring Boot应用中,我们通常将主应用类放置于应用的根包中,例如,com.javachen.example.主应用类有main方法,并且使用了@EnableAutoConfiguratio

使用 Spring Boot 快速构建 Spring 框架应用,PropertyPlaceholderConfigurer

Spring 框架对于很多 Java 开发人员来说都不陌生.自从 2002 年发布以来,Spring 框架已经成为企业应用开发领域非常流行的基础框架.有大量的企业应用基于 Spring 框架来开发.Spring 框架包含几十个不同的子项目,涵盖应用开发的不同方面.如此多的子项目和组件,一方面方便了开发人员的使用,另外一个方面也带来了使用方面的问题.每个子项目都有一定的学习曲线.开发人员需要了解这些子项目和组件的具体细节,才能知道如何把这些子项目整合起来形成一个完整的解决方案.在如何使用这些组件上