美文网首页Java 杂谈技能图谱
SpringBoot系列-前置知识

SpringBoot系列-前置知识

作者: 西召 | 来源:发表于2019-02-19 13:31 被阅读0次

    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


    相关文章

      网友评论

        本文标题:SpringBoot系列-前置知识

        本文链接:https://www.haomeiwen.com/subject/qywxyqtx.html