一、springboot解决了什么?
避免了繁杂的xml配置,框架自动帮我们完成了相关的配置,当我们需要进行相关插件集成的时候,只需要将相关的starter通过相关的maven依赖引进,并可以进行相关的插件整合开发,
当然,springboot简化了开发的流程,当我们需要插件的其他版本也可以使用自己的配置,但是需要对spring以及相关框架很熟悉,所以,高楼平地起,基础的框架和插件也是需要我们深入学习的;
总的来说 :springboot使配置、部署、监控、开发都变得相对简单。
二、spring2.0的特性
- 遵循“约定优于配置”的原则,简化配置
- 可以完全脱离XML配置文件,采用注解配置和java Config
- 内嵌Servlet容器,应用可用jar包执行:java -jar
- 快速完成项目搭建、整合第三方类库,方便易用
- 提供了starter POM, 能够非常方便的进行包管理, 简化包管理配置
- 与Spring cloud天然集成,spring boot是目前java体系内实现微服务最佳方案
三、springboot引入的简单方法:
- 通过maven引入springboot-XXXX-starter
- 修改ymal或properties全局统一配置文件
- 加入一个Java Config。这个属于个性化配置,如果使用通用配置,这一步不需要。
什么是starter 呢?
Spring Boot Starter是一组被依赖第三方类库的集合。
如果你要开发一个web应用程序,就通过包管理工具(如maven)引入spring-boot-starter-web就可以了,而不用分别引入下面这么多依赖类库,spring-boot-starter-web一次性帮你引入下面的这些常用类库。
- Spring — spring 核心, beans, context上下文, AOP面向切面
- Web MVC — Spring MVC
- Jackson — JSON数据的序列化与反序列化
- Validation — Hibernate参数校验及校验API
- 嵌入式 Servlet Container — Tomcat
- 日志框架Logging — logback, slf4j
什么是Spring Boot Starter Parent?
所有的Spring Boot项目默认使用spring-boot-starter-parent作为应用程序的父项目。
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent>
其他优点:
1、springboot 内嵌了Tomcat容器,所打成的jar包可以直接单独运行
java -jar springboot-demo.jar
2、Spring Data的目标是提供一种更友好的方式或者是API来存取数据。包括对于关系型数据库和NOSQL数据的支持
-
- Spring Data JPA — 关系型数据库操作的API,友好且易于使用
- Spring Data MongoDB -MongoDB的操作API
- Spring Data REST — 从持久层Repositories自动生成服务层API,暴露 REST APIs 接口。超级好用!
spring boot2.x新特性:
1)、基础环境升级
- 最低 JDK 8,支持 JDK 9,不再支持 Java 6 和 7。Spring Boot 2.0 要求 Java 8 作为最低版本,许多现有的 API 已更新,以利用 Java 8 的特性。
例如,接口上的默认方法,函数回调以及新的 API,如 javax.time。 - 如果你正在使用 Java 7 或更早版本,则在开发 Spring Boot 2.0 应用程序之前,需要升级你的 JDK。
2)、依赖组件升级
- Jetty 9.4,Jetty 是一个开源的 Servlet 容器,它为基于 Java 的 Web 内容,例如 JSP 和 Servlet 提供运行环境。Jetty 是使用 Java 语言编写的,它的 API 以一组 JAR 包的形式发布。
- Tomcat 8.5,Apache Tomcat 8.5.x 旨在取代 8.0.x,完全支持 Java 9。
- Flyway 5,Flyway 是独立于数据库的应用、管理并跟踪数据库变更的数据库版本管理工具。用通俗的话讲,Flyway 可以像 SVN 管理不同人的代码那样,管理不同人的 SQL 脚本,从而做到数据库同步。
- Hibernate 5.2,Hibernate 是一款非常流行的 ORM 框架。
- Gradle 3.4,Spring Boot 的 Gradle 插件在很大程度上已被重写,有了重大的改进。
- Thymeleaf 3.0,Thymeleaf 3 相对于 Thymeleaf 2 有非常大的性能提升。
3)、默认软件的替换
- 默认数据库连接池已从 Tomcat 切换到 HikariCP,HikariCP 是一个高性能的 JDBC 连接池,Hikari 是日语“光”的意思。
- redis客户端默认使用 Lettuce,替换掉Jedis.Lettuce 是一个可伸缩的线程安全的 Redis 客户端,用于同步、异步和反应使用。多个线程可以共享同一个 RedisConnection,它利用优秀 Netty NIO 框架来高效地管理多个连接,支持先进的 Redis 功能,如 Sentinel、集群、流水线、自动重新连接和 Redis 数据模型。
4)、新技术的引入
- 响应式编程WebFlux,重要的变革,后续章节会详细展示
- 支持 Quartz,Spring Boot 1.0 并没有提供对 Quartz 的支持,之前出现了各种集成方案,Spring Boot 2.0 给出了最简单的集成方式。
- 对Kotlin 的支持
- JOOQ 的支持,JOOQ 是基于 Java 访问关系型数据库的工具包。JOOQ 既吸取了传统 ORM 操作数据的简单性和安全性,又保留了原生 SQL 的灵活性,它更像是介于 ORMS 和 JDBC 的中间层。
5)、其他
在 Spring Boot 1.0 项目中 src/main/resources 路径下新建一个 banner.txt 文件,文件中写入一些字符,启动项目时就会发现默认的 Banner 被替换了,到了 Spring Boot 2.0 现在可以支持 Gif 文件的打印,Spring Boot 2.0 在项目启动的时候,会将 Gif 图片的每一个画面,按照顺序打印在日志中,所有的画面打印完毕后,才会启动 Spring Boot 项目。
原文地址:https://www.cnblogs.com/liweiweicode/p/11621612.html