本文篇幅较长,建议合理利用右上角目录进行查看(若是没有目录请刷新)。java
本文是对《Spring Boot 实战第4版》的总结,你们也能够去仔细研读该书web
注意,书中使用的Spring Boot版本并非2.0,可是我这里的代码是基于Spring Boot2.0的,有一些地方会有出入spring
使用Groovy代码编写HelloWorld.groovy文件shell
@RestController class HelloController { @RequestMapping("/") def hello() { return "Hello World" } }
使用Spring Boot的命令行界面(Command Line Interface,CLI)运行数据库
$ spring run HelloController.groovyapache
这个web程序便可正常运行编程
自动配置bootstrap
针对不少Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置tomcat
例如:经过JDBC访问一个关系型数据库安全
Spring:须要手动建立JdbcTemplate Bean和DataSource Bean
Spring Boot:检测到Classpath中有JdbcTemplate,自动建立JdbcTemplate Bean
详见第二章
起步依赖
告诉Spring Boot须要什么功能,它就能引入须要的库
例如:但愿用Spring MVC构造一个REST API,并将JSON(JavaScript Object Notation)做为资源表述。此外,还想运用遵循JSR-303规范的声明式校验,并使用嵌入式的Tomcat服务器来提供服务
Spring:引入至少8个依赖
Spring Boot:引入一个起步依赖,告诉Spring Boot即将建立Web程序,Spring Boot会自动加入所需依赖
Spring Boot会管理好这些库之间的版本关系,不会出现不兼容的状况
命令行界面
这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建
像上面的Spring Boot项目示例代码中,代码没有import,Spring Boot CLI却能指导RequestMapping和RestController来自哪一个包
CLI能检测到你使用了哪些类,它知道要向Classpath中添加哪些起步依赖才能让它运转起来。一旦那些依赖出如今Classpath中,一系列自动配置就会接踵而来,确保启用DispatcherServlet 和Spring MVC,这样控制器就能响应HTTP请求
Spring Boot CLI是Spring Boot的非必要部分,虽大大简化了开发,可是引入了一套不太常规的开发模型
若是不喜欢或者不须要这种开发模式,也能够抛弃Spring Boot的这个部分
Actuator
提供在运行时检视Spring Boot应用程序内部状况的能力,内容包括:
Actuator经过Web端点和shell界面向外界提供信息。若是要借助shell界面,你能够打开SSH(Secure Shell),登入运行中的应用程序,发送指令查看它的状况
根本上说,Spring Boot项目只不过是一个普通的Spring项目,只是使用了Spring Boot的起步依赖和自动配置
如何建立Spring Boot项目
一、使用Spring Boot CLI(暂略)
几种安装方法:
二、Spring Initializr初始化Spring Boot项目
若是仍是但愿使用传统Java项目结构来开发项目,则能够采起这种方式
Spring Initializr的几种使用方法(具体使用方法暂略):
三、使用IntelliJ IDEA中Spring Initializr建立一个Spring Boot项目的项目结构简介
实际生成的项目,也是一个普通的Spring项目
内容包括:
其中:
主程序使用了@SpringBootApplication注解,使得此“普通的Spring项目”以Spring Boot的形式运行
测试程序使用了@SpringBootTest注解,使得单元测试可以支持Spring Boot的形式
启动引导Spring
@SpringBootApplication开启了Spring的组件扫描和Spring Boot的自动配置功能
实际上,@SpringBootApplication将三个有用的注解组合在了一块儿
测试Spring Boot应用程序
@RunWith是指定JUnits所使用的测试运行器,全部测试都由这个运行器运行;这里指定了Spring的运行器,因此测试时能够获得Spring的上下文
@SpringBootTest是SpringBoot项目测试的注解(未有详解)
配置应用程序属性
Initializr生成了一个空的application.properties文件,这里能够配置Spring Boot自动配置的一些属性
这个文件也能够删除,可是存在时,Spring Boot会自动检测到这个文件并应用其中的设置
当使用Gradle或Maven进行初始化项目时,所生成的构建文件中,会包含一个如spring-boot-maven-plugin的一个插件
借助这个插件,咱们能够直接经过run便可启动项目,也能够经过这个插件把程序打包成一个jar包
一、
启用Actuator
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
7.1.一、查看配置明细
一、得到Bean装配报告
访问/actuator/beans端点,这里能够查看Spring应用上下文中都有哪些Bean
每一个Bean都有5类信息
二、详解自动配置
访问/actuator/autoconfig端点,这里能够某个Bean被建立或没有被建立的缘由。
三、查看配置属性
访问/actuator/env端点,能够查看全部环境属性以及值的来源,还有哪些属性注入了Bean
访问/actuator/env/server.port端点,最后是属性名称,能够查看某一个属性的配置属性
访问/actuator/env/configprops端点,能够查看有哪些环境属性能够设置,以及他们的值
四、生成端点到控制器的映射
访问/actuator/mappings端点,能够查看有控制器和哪些端点,以及他们的映射关系。
7.1.二、运行时度量