一、Spring Boot入门
1、spring-boot:
- 自动配置
- 起步依赖(把我们从“需要这些库的哪些版本”这个问题中解放出来了)
- 命令行界面(spring-boot cli)
- actuator
2、spring-boot不是应用服务器
- spring-boot是内嵌了一个servlet容器,实现的不用部署到传统java应用服务器里就能运行的功能;
- spring-boot也没有实现诸如JPA或JMS之类的企业级Java规范,只是自动配置了某个JPA实现的bean,以此支持JPA;
- spring-boot没有引入任何形式的代码生成,而是利用了Spring4的条件化配置特性,以及maven提供的传递依赖解析,以此实现spring应用程序上下文里的自动配置;
- spring-boot就是spring。
3、spring-boot项目的初始化
二、开发第一个Spring Boot项目
1、注解
- @SpringBootApplication开启了Spring的组件扫描和Spring Boot的自动配置功能。其中是将三个有用的注解组合在了一起:@Configuration(标明该类使用Spring基于Java的配置)、@ComponentScan(启用组件扫描)、@EnableAutoConfigration(开启了Spring Boot自动配置的魔力
2、使用maven构建Spring Boot项目
- 构建的目的是把项目打包成一个可执行的超级jar,这样用java -jar就可以运行
3、起步依赖中不需要指定对应依赖的版本号,具体依赖的版本号,是由spring-boot的版本来决定的。起步依赖中的库,是经过spring-boot团队的测试,确保引入的全部依赖都能相互兼容
4、spring boot是根据@conditional等相关的条件注解,来实现自动配置的。(比如通过web起步依赖传递引用,我们就可以启动一个Tomcat,是因为classpath里有对应的web依赖,spring boot会启动一个嵌入式的tomcat容器,并监听8080端口)
三、自定义配置
1、覆盖自动配置
仅仅编写一个显示的配置,spring boot会发现我的配置,并会降低自动配置的优先级,以显示配置为准。
2、通过properties和yml文件进行自定义配置
喜欢spring-boot实战中,作者的这句话:“有人说,如果你不知道要去哪,走就是了。但在软件开发领域,如果你没有目标,那结果往往是开发出一个满是bug的应用程序,没人用得了”。
继续我们的spring-boot的学习啦
四、测试
1、用随机端口启动服务器:将server.port属性设置为0或者设置randomPort为true;
五、深入Actuator
在应用程序中提供众多的web端点,通过他们了解应用程序运行时的内部状况,可以知道Bean在Spring应用程序上下文里是如何组装在一起的…
1、启动Actuator的端点(对于maven项目,引入一下依赖,就可启动Actuator)
<!-- 引入Actuator监控依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2、查看配置明细
- /beans端点:Spring应用程序上下文里都有哪些Bean
- /autoconfig端点:能告诉我们为什么会有这个bean,或者为什么没有这个Bean
- /env端点:生成应用程序可用的所有环境属性的列表,无论用到没
- /mappings端点:生成端点到控制器的映射
- /metrics端点:提供了很多有用的运行时数据
- /trace端点:记录web请求的细节
- /dump端点:生成当前线程活动的快照
- /health端点:监控应用程序健康情况
- /shutdown端点:关闭应用程序
- /info端点:展示各种你希望发布的应用信息