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特性;这个特性可以用于管理远程的操作。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值