SpringBoot2.X 简介
前言
Spring Boot好学吗?
当然了,欢迎入坑
学会使用比较容易,想要懂得怎么用的原理就很难了。
起跳准备
推荐几个常用网址:
也有几个常用的插件版本说明:
Jetty9.4+
Tomcat8.5+
Hibernate5.2+
Gradle3.4+
还有几个参考
Spring Boot 基本内容简介
组件自动装配:
规约大于配置,专注核心业务
这里需要深入了解的是源自
spring framework
中的 模式注解、@Enable
模块、条件装配、加载机制,Spring Boot
对它们进行了修改。
外部化配置:
一次构建、按需调配、到处运行
这里需要了解的是外部化配置与
Environment
抽象的关系、生命周期,
Spring Boot2.0
用的新的API,与1.x版本部分不兼容。
嵌入式容器:
内置容器(传统的Servlet容器、Reactive Web)、无需部署、独立运行
为了支持reactive使用场景,内嵌的容器包结构被重构了的幅度有点大。
EmbeddedServletContainer
被重命名为WebServer
,并且org.springframework.boot.context.embedded
包被重定向到了org.springframework.boot.web.embedded
包下。举个例子,如果你要使用TomcatEmbeddedServletContainerFactory
回调接口来自定义内嵌Tomcat容器,你现在应该使用TomcatServletWebServerFactory
。
Spring Boot Starter:
简化依赖、按需装配、自我包含
依赖管理、条件装配、装配顺序(重要,可以参考
autoconfigure
包下的spring.factories
文件)
不能再自动配置HazelcastInstance
进行缓存。 因此,spring.cache.hazelcast.config
属性不再可用。
Production-Ready:
一站式运维、生态无缝整合(MapReduce、Prometheus、Cloud Native)
这里需要了解的是健康检查、数据指标、@Endpoint管控
Spring Boot 与Java EE 规范
- Web:servlet
- Sql:JDBC
- 数据校验:Bean Validation
- 缓存:Java Caching API
- WebSockets:Java API for WebSocket
- Web Services:有点久远
- Java管理:JMX
- 消息:JMS(Apache ActiveMQ)
Spring Boot 核心特性
- 组件自动装配:Web MVC、Web Flux、JDBC……
- 嵌入式Web容器:Tomcat、Jetty、Undertow以及Web Flux
- 生产特性:一些非功能特性(指标、健康检查、外部化配置等)
组件自动装配
激活自动装配:
@EnableAutoConfiguration
(@SpringBootApplication
注解已经默认激活)配置:
/METE-INF/spring.factories
(前面说到过)
有了这些Spring Boot
的默认配置,我们只有引入相应的依赖,就会被自动装配。实现:xxxAutoConfiguration
嵌入式Web容器
- Web Servlet
- Web Reactive
两者都是兼容的,也可以相互转换。
这里我也了解了一下(没有亲自测试),相比于Servlet容器,在获取数据和吞吐量上来说,Web Flux 要比Servlet快很多
生产特性
- 指标:
/actuator/metrics
- 健康检查:
/actuator/health
- 外部化配置:
/actuator/configprops
在spring boot 2.0
之后,需要有/actuator
前缀,也可以自己配置。1
2
3#比如我们想把/actuator/health修改为/healthcheck。
management.endpoints.web.base-path=/
management.endpoints.web.path-mapping.health=healthcheck
详情请查看 [SpringBoot2.X性能监控Actuator]
Web 应用
传统Servlet应用
Servlet组件:Servlet、Filter、Listener
Servlet注册:
- Servlet注解
@ServletCo/mponentScan+@WebServlet、@WebFilter、@WebListener
- Spring Bean
@Bean
+Servlet、Filter、Listener
- RegistrationBean(Spring Boot新API)
ServletRegistrationBean
FilterRegistrationBean
ListenerRegistrationBean
- Servlet注解
异步非阻塞:异步Servlet、非阻塞Servlet
数据操作(JDBC、JPA)
功能扩展
组件自动装配
外部化配置
https://blog.csdn.net/javastudyr/article/details/73865362
嵌入式容器
运维管理
其它介绍
自动装配
1 | @ConditionalOnClass:当类路径下有指定的类的条件下。 |