SpringBoot系列-前置知识


title: SpringBoot系列-前置知识

date: 2019-02-19 13:08:25

categories:

  • tech
  • java
  • framework
  • Spring
  • SpringBoot

tags: [Java,Spring,SpringBoot,Spring5,Maven]


Spring 框架

Spring框架是一个轻量的企业级的开发一站式解决方案,Spring框架已经是轻量级Java EE实际上的的行业标准。

Spring 模块

Spring是模块化的,开发者可以选择自己需要的模块进行集成。

Spring核心的模块包含:Core Container(核心容器)、Data Access(数据访问)、AOP(面像切面)、Web(Web集成功能)、Test(测试),等等。

除了Spring Core Container(Spring核心容器)是必须的,其他的组成 Spring 框架的每个模块都可以单独存在,或者与其他一个或多个模块联合实现。

Spring 核心容器提供了 Spring 框架的基本功能,管理着Spring应用中bean的创建、配置和管理。

Spring 核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用DI将应用程序的配置和依赖性规范与实际的应用程序代码分开。

Spring框架模块

下面是Spring核心模块的概要:

  • Spring 上下文:

Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。

Spring 上下文提供了一种框架式的对象访问方法,有些象JNDI注册器。

Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N)的支持(例如资源绑定),事件传播,资源装载的方式和Context的透明创建,比如说通过Servlet容器。

Spring 上下文和Bean工厂都是 bean 容器 的实现。

  • Spring AOP:

通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。

Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。

  • Spring DAO:

JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。

Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。

  • Spring ORM:

Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。

  • Spring Web 模块:

Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。

  • Spring MVC 框架:

MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。

Spring 优点

Spring框架有如下优点:

  • 低侵入式设计,代码污染极低。

  • 独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺。

  • Spring的DI机制/IoC容器,降低了业务对象替换的复杂性,提高了组件之间的解耦。

  • Spring的AOP支持允许将一些通用任务,例如安全、事务、日志等进行集中式管理,从而提供了更好的复用。

  • Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问,Spring Data则提供了对NoSQL的良好支持。

  • Spring并不是针对应用的某一层,而是对应用的各层都提供了解决方案。

  • Spring具有高度的开放性,并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部。

Spring 5

Spring在2017 年9月发布Spring 5的通用版本 (GA),这是自 2013 年12月以来第一个主要 Spring Framework 版本。

Spring 5 提供了一些人们期待已久的改进,兼容 Java 8 和 Java 9,还采用了一种全新的编程范例,并提供了反应式流的支持。

Spring 5主要有以下新特性:

  • 升级到 Java SE 8 和 Java EE 7
  • 反应式编程模型
  • 使用注解进行编程
  • 函数式编程
  • 使用 REST 端点执行反应式编程
  • HTTP/2 支持
  • Kotlin 和 Spring WebFlux
  • 使用 Lambda 表达式注册 bean
  • Spring WebMVC 支持最新的 API
  • 使用 JUnit 5 执行条件和并发测试
  • 使用 Spring WebFlux 执行集成测试
  • 包清理和弃用
  • 对 Spring 核心和容器的一般更新

Spring 生态

  • Spring Boot:一站式快速开发解决项目
  • Spring Cloud:提供对分布式系统的支持
  • Spring Data:提供对主流的关系型及NOSQL型数据库的封装支持
  • Spring Security:支持系统授权、认证的支持
  • Spring Session:提供对session管理的支持
  • Spring Batch:提供对大数据的批处理简化处理优化的支持
  • Spring Social:提供对社交网络API的集成,如Facebook、Google等
  • Spring AMQP:提供对AMQP的消息支持
  • Spring LDAP:提供并简化使用LDAP的支持
  • Spring XD:用来简化对大数据应用开发
  • Spring Integration:通过消息机制对企业集成模式EIP的支持
  • Spring Mobile:支持对手机设备检测等功能
  • Spring for Android:提供在安卓平台消费restful api的支持
  • Spring Web Flow:基于spring mvc提供对向导流程式的开发
  • Spring Web Services:提供基于SOAP/Web协议服务支持

Spring Boot

什么是Spring Boot

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

Spring Boot 默认配置了很多框架的使用方式,就像 Maven 整合了所有的 jar 包,Spring Boot 整合了所有的框架。

它的核心设计思想是:约定优于配置。

Spring Boot 所有开发细节都是依据此思想进行实现的。

Spring Boot 是一套全新的框架,它来自于 Spring 大家族,因此 Spring 所有具备的功能它都有并且更容易使用;同时还简化了基于 Spring 的应用开发,通过少量的代码就能创建一个独立的、产品级别的 Spring 应用。

SpringBoot在Spring生态中的位置:

SpringBoot在Spring生态中的位置

Spring Boot 的优点

  • 使编码变得简单 : 推荐使用注解,组件自动装配,外部化配置,高度封装,开箱即用

  • 使配置变得简单: 约定大于配置,主流框架无配置集成,专注核心业务,提供快速集成新技术、快速构建、自动配置的能力

  • 使部署变得简单: 内嵌Tomcat、Jetty等Web容器,支持独立运行

  • 使监控变得简单: 自带项目监控实现

Spring Boot 2.0 的新变化

  • 基于Spring 5 构建,支持Spring 5的新特性

  • 为组件的响应式编程提供了简化配置,如Reactive Spring Data,Reactive Spring Security等

  • 依赖版本升级,如要求Java8以上并支持Java 9,Maven3.2或更高版本,Tomcat 8或更高版本,Hibernate 5.2或更高版本等

Maven

  • 什么是Maven

Apache Maven是一个项目管理和理解工具,它基于项目对象模型(POM)的概念,它可以管理项目的构建、报告和文档。

  • Maven的parent和modules

Maven通过<parent>元素声明父项目依赖,父项目声明的依赖会自动传递到子项目。

在项目的 parent 层,可以通过 <dependencyManagement> 元素来管理 jar 包的版本,让子项目中引用一个依赖而不用显式声明版本号<version>。


links:

author: ijiangtao.net


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容