一、springboot解决了什么?

  避免了繁杂的xml配置,框架自动帮我们完成了相关的配置,当我们需要进行相关插件集成的时候,只需要将相关的starter通过相关的maven依赖引进,并可以进行相关的插件整合开发,

当然,springboot简化了开发的流程,当我们需要插件的其他版本也可以使用自己的配置,但是需要对spring以及相关框架很熟悉,所以,高楼平地起,基础的框架和插件也是需要我们深入学习的;

总的来说 :springboot使配置、部署、监控、开发都变得相对简单。

二、spring2.0的特性

  • 遵循“约定优于配置”的原则,简化配置
  • 可以完全脱离XML配置文件,采用注解配置和java Config
  • 内嵌Servlet容器,应用可用jar包执行:java -jar
  • 快速完成项目搭建、整合第三方类库,方便易用
  • 提供了starter POM, 能够非常方便的进行包管理, 简化包管理配置
  • 与Spring cloud天然集成,spring boot是目前java体系内实现微服务最佳方案

三、springboot引入的简单方法:

  1. 通过maven引入springboot-XXXX-starter
  2. 修改ymal或properties全局统一配置文件
  3. 加入一个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 项目。

springboot2.0入门(一)----springboot 简介的更多相关文章

  1. Springboot2.0入门介绍

    Springboot目前已经得到了很广泛的应用,why这么牛逼? Springboot让你更容易上手,简单快捷的构建Spring的应用 Spring Boot让我们的Spring应用变的更轻量化.比如 ...

  2. springboot2.0入门(九)-- springboot使用mybatis-generator自动代码生成

    一.配置文件引入 插件引入,引入 <plugin> <groupId>org.mybatis.generator</groupId> <artifactId& ...

  3. 基于 SpringBoot2.0+优雅整合 SpringBoot+Mybatis

    SpringBoot 整合 Mybatis 有两种常用的方式,一种就是我们常见的 xml 的方式 ,还有一种是全注解的方式.我觉得这两者没有谁比谁好,在 SQL 语句不太长的情况下,我觉得全注解的方式 ...

  4. springboot2.0入门(八)-- profile启动文件配置

    一.不同环境使用不同配置文件 将application.yml文件拷贝三份,在文件末尾分别对应开发/生产/测试,dev/prod/test/文件夹,其中application.yml 中默认激活开发环 ...

  5. springboot2.0入门(七)-- 自定义配置文件+xml配置文件引入

    一.加载自定义配置文件: 1.新建一个family.yam文件,将上application.yml对象复制进入family family: family-name: dad: name: levi a ...

  6. springboot2.0入门(五)--swagger2接口API构建

    一.特点 代码变,文档变.只需要少量的注解,Swagger 就可以根据代码自动生成 API 文档,很好的保证了文档的时效性. 跨语言性,支持 40 多种语言. Swagger UI 呈现出来的是一份可 ...

  7. springboot2.0入门(四)----mock模拟测试+单元测试

    一.本节主要记录模拟测试.单元测试: 二.mock 测试 1.1什么是Mock? 在面向对象程序设计中,模拟对象(英语:mock object,也译作模仿对象)是以可控的方式模拟真实对象行为的假的对象 ...

  8. springboot2.0入门(三)----定义编程风格+jackjson使用+postMan测试

    一.RESTFul风格API 1.优点: )看Url就知道要什么资源 )看http method就知道针对资源干什么 )看http status code就知道结果如何 HTTP方法体现对资源的操作: ...

  9. springboot2.0入门(六)-- ymal语法、数据校验

    一.基本使用 1.ymal语法是一种更符合人类命名习惯的语法: # 1. 一个家庭有爸爸.妈妈.孩子. # 2. 这个家庭有一个名字(family-name)叫做“happy family” # 3. ...

随机推荐

  1. java中讲讲PrintStream的用法,举例?

    [学习笔记] 1.2 PrintStream的用法   从学java第一天,我们就经常用到System.out.println(),实际上查阅文档可知,System.out就是Sun 编的一个Prin ...

  2. java获取单张网页中img标签中的src

    /** * 得到网页中图片的地址 */ public static List<String> getImgStr(String htmlStr) { List<String> ...

  3. IO多路复用技术详解

      IO多路复用:I/O是指网络I/O,多路指多个TCP连接(即socket或者channel),复用指复用一个或几个线程.意思说一个或一组线程处理多个TCP连接.最大优势是减少系统开销小,不必创建过 ...

  4. ecshop二次开发笔记

    1. robots.txt 爬虫协议 网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取. 2. 入口文件 index.php 3. 目录结构分析 admin 后台 api 接口 ...

  5. Flask-WTF的使用

    Flask-WTF的使用 一.安装Flask-WTF Flask-WTF 对 WTForms 进行了封装使它能够在 Flask 框架中可以被调用,其中 Flask-WTF 的功能都是继承自 WTFor ...

  6. 【leetcode】74. 搜索二维矩阵

    题目链接:传送门 题目描述 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数. 示例  ...

  7. Codeforces 1247E. Rock Is Push

    传送门 显然考虑 $dp$ ,设 $fx[i][j]$ 表示从 $(i,j)$ 出发往下走一格,最终到达 $(n,m)$ 的方案数,$fy[i][j]$ 表示从 $(i,j)$ 出发往右走一格,最终到 ...

  8. CPA ,CFA,ACCA

    CPA是“注册会计师”(Certified Public Accountant,CPA)的简称,是指取得注册会计师证书并在会计师事务所执业的人员,是从事社会审计/中介审计/独立审计的专业人士,CPA为 ...

  9. Web API 实体对象Get请求参数为null

    实体对象前加上 [FromUri] 特性

  10. Pytorch入门随手记

    Pytorch入门随手记 什么是Pytorch? Pytorch是Torch到Python上的移植(Torch原本是用Lua语言编写的) 是一个动态的过程,数据和图是一起建立的. tensor.dot ...