spring boot 2.0 特性之springApplication
mmss 2017-12-29 10:20:01 浏览1341 评论0摘要: SpringApplication SpringApplication 类提供了在main函数中启动spring应用程序的便利性,通过调用其静态方法其实运行,代码如下:public static void main(String[] args) { SpringApplication.run(MySpringConfiguration.class, args); }1. 默认情况下,其日志级别为info。
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 --debug2. 自定义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}
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:在启动的时候有异常
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特性;这个特性可以用于管理远程的操作。
用云栖社区APP,舒服~
【云栖快讯】直播推荐--阿里巴巴高级数据库专家带你技术进阶之全文检索和相似搜索实践,还不快快报名~ 详情请点击 评论 (0) 点赞 (0) 收藏 (0)相关文章
- spring boot 2.0特性之外部化配置
- spring boot 2.0之使用spring boo…
- Spring Boot Admin 2.0开箱体验
- Spring Boot 2.0 新特性(一):配置绑定 …
- spring boot 2.0 源码分析(一)
- spring boot 2.0特性之profile与日志
- spring boot 2.0之基础入门
- Spring Boot自动配置
- spring boot 2.0 源码分析(三)
- Spring Boot特性(转)