spring boot 2.0 特性之springApplication

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





目录
相关文章
|
28天前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
38 4
|
25天前
|
Java API 数据库
Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐
本文通过在线图书管理系统案例,详细介绍如何使用Spring Boot构建RESTful API。从项目基础环境搭建、实体类与数据访问层定义,到业务逻辑实现和控制器编写,逐步展示了Spring Boot的简洁配置和强大功能。最后,通过Postman测试API,并介绍了如何添加安全性和异常处理,确保API的稳定性和安全性。
33 0
|
3月前
|
安全 前端开发 Java
随着企业应用复杂度提升,Java Spring框架以其强大与灵活特性简化开发流程,成为构建高效、可维护应用的理想选择
随着企业应用复杂度提升,Java Spring框架以其强大与灵活特性简化开发流程,成为构建高效、可维护应用的理想选择。依赖注入使对象管理交由Spring容器处理,实现低耦合高内聚;AOP则分离横切关注点如事务管理,增强代码模块化。Spring还提供MVC、Data、Security等模块满足多样需求,并通过Spring Boot简化配置与部署,加速微服务架构构建。掌握这些核心概念与工具,开发者能更从容应对挑战,打造卓越应用。
42 1
|
2天前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
9 2
|
1月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
52 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
1月前
|
缓存 NoSQL Java
Springboot自定义注解+aop实现redis自动清除缓存功能
通过上述步骤,我们不仅实现了一个高度灵活的缓存管理机制,还保证了代码的整洁与可维护性。自定义注解与AOP的结合,让缓存清除逻辑与业务逻辑分离,便于未来的扩展和修改。这种设计模式非常适合需要频繁更新缓存的应用场景,大大提高了开发效率和系统的响应速度。
51 2
|
2月前
|
安全 Java 开发者
强大!Spring Cloud Gateway新特性及高级开发技巧
在微服务架构日益盛行的今天,网关作为微服务架构中的关键组件,承担着路由、安全、监控、限流等多重职责。Spring Cloud Gateway作为新一代的微服务网关,凭借其基于Spring Framework 5、Project Reactor和Spring Boot 2.0的强大技术栈,正逐步成为业界的主流选择。本文将深入探讨Spring Cloud Gateway的新特性及高级开发技巧,助力开发者更好地掌握这一强大的网关工具。
214 6
|
3月前
|
存储 Java 开发者
使用Spring Boot 3.3全新特性CDS,启动速度狂飙100%!
【8月更文挑战第30天】在快速迭代的软件开发周期中,应用的启动速度是开发者不可忽视的一个重要指标。它不仅影响着开发效率,还直接关系到用户体验。随着Spring Boot 3.3的发布,其中引入的Class Data Sharing(CDS)技术为应用的启动速度带来了革命性的提升。本文将围绕这一全新特性,深入探讨其原理、使用方法以及带来的实际效益,为开发者们带来一场技术盛宴。
179 2
|
3月前
|
XML Java 应用服务中间件
深入探索Spring Boot框架的核心特性
Spring Boot 是一款基于Spring框架的开源框架,旨在简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式(默认配置)来简化整个构建过程。
62 11
|
4月前
|
Java 应用服务中间件 开发者
Spring Boot 2.x新特性有哪些?
【7月更文挑战第16天】Spring Boot 2.x新特性有哪些?
69 1