spring boot 2.0 特性之springApplication
2018-01-02 15:36
330 查看
点击有惊喜
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}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... } }[/code]
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))); } }[/code]
10. admin特性 通过使用spring.application.admin.enabled来指定admin特性;这个特性可以用于管理远程的操作。点击有惊喜
相关文章推荐
- Spring Boot 2.0正式发布,新特性解读
- Spring Boot 2.0已发布,来聊聊它的新特性。
- Spring Boot 2.0 新特性
- Spring Boot 2.0正式发布,新特性解读
- Spring Boot 2.0 新特性(一):配置绑定 2.0 全解析
- C# 2.0 新特性之迭代器, Yield Return
- C#2.0新特性探究之模拟泛型和内置算法
- C#2.0新特性CHM版下载
- UTMI及USB 2.0 PHY高速传输特性分析
- .Net 2.0 新特性之换肤
- ADO.NET 2.0 Dataset和Datatable 新功能新特性
- AFNetworking 2.0 新特性讲解之AFHTTPSessionManager
- C#2.0 泛型初探 (特性一览)
- SMS 2.0的新增特性
- C#2.0新特性—迭代器
- jsp2.0新特性
- C# 2.0 中的新特性
- 【SD2.0大会】2.0开发时代的四大特性改变
- ADO.NET2.0的十大新特性
- C#2.0 有哪些新特性?