1.可创建独立的Spring应用程序,提供嵌入式web
使用SpringBoot所创建的应用程序都是一个个独立的jar包,而并非war包,即使是Web应用也是jar包。
我们可直接运行带有@SpringBootApplication 注解的类的main()方法就能运行一个Spring应用程序,
实际上是在SpringBoot应用程序内部嵌入了一个Web Server而已。但是这些并不能说明Spring Boot
就不能以war包的形式部署到Web Server中了,我们同样可以使用Spring Boot 开发传统的java Web应用。
2.无XML配置
SpringBoot也不再像传统Spring应用那样配置大量的XML文件,除了使用一个application.properties 配置文件,
SpringBoot再无其他配置文件了,而且所有插件的相关配置也在这个唯一的配置文件中。
3.自动化配置
Spring Boot 的配置都在applicaiton.properties 文件中,但并不意味着在Spring Boot应用就必须包含该文件。
实际上,该配置文件中包含了大量的配置项,而许多配置都有其默认值,
很多配置项我们其实都不用去修改,使用其默认值就行,这类行为叫做“自动化配置”,我们只需要使用Spring Boot
提供的相关注解就能启动具体特性。这一特性实际上是由Spring Boot提供的一系列 @ConditionalOnXxx 条件注解
来实现的,而底层使用了 Spring 4.0 的Condition接口
4.提供一系列的生产级特性
Spring Boot是为生产级Spring应用而生的,提供了大量的盛产级特性,例如核心指标、健康检查、外部配置等,
这类技术对微服务架构相当有价值。例如,核心指标指的是我们可以随时给SpringBoot 应用发送 /metrices
请求,随后可获取一个JSON数据,包括内存、java堆、类加载、处理器、线程池等信息。我们还能再java命令
行直接运行Spring Boot应用,并带上外部配置参数,这些参数将覆盖已有的默认配置参数。甚至我们还能通过
发送一个URL请求去关闭Spring Boot应用,在自动化技术中会有一定的帮助。
5.提供 开箱即用的Spring插件
Spring Boot 提供了大量的“开箱即用”的插件,我们只需添加一段Maven依赖配置即可开启使用。这些插件在Spring Boot
的世界里有一个优雅的名字,叫做Starter。每个Starte可能都会有自己的配置项,而这些配置项都可在appliation.properties
文件中进行统一配置。