• Spring特性总览


    一、核心特性

      • IoC 容器(IoC Container)
      • Spring 事件(Events)
      • 资源管理(Resources)
      • 国际化(i18n)
      • 校验(Validation)
      • 数据绑定(Data Binding)
      • 类型装换(Type Conversion)
      • Spring 表达式(Spring Express Language)
      • 面向切面编程(AOP)
     

    二、数据存储

      • JDBC
      • 事务抽象(Transactions)
      • DAO 支持(DAO Support)
      • O/R映射(O/R Mapping)
      • XML 编列(XML Marshalling)

    三、Web 技术

      • Web Servlet 技术栈
        • Spring MVC
        • WebSocket
        • SockJS
      • Web Reactive 技术栈
        • Spring WebFlux
        • WebClient
        • WebSocket

    四、技术整合

      • 远程调用(Remoting)
      • Java 消息服务(JMS)
      • Java 连接架构( JCA)
      • Java 管理扩展(JMX)
      • Java 邮件客户端(Email)
      • 本地任务(Tasks)
      • 本地调度(Scheduling)
      • 缓存抽象(Caching)
      • Spring 测试(Testing)

    五、测试

      • 模拟对象(Mock Objects)
      • TestContext 框架(TestContext Framework)
      • Spring MVC 测试(Spring MVC Test)
      • Web 测试客户端(WebTestClient)
     
     
     

    记录小马哥的讲解

      为了避免从入门到劝退,本人把小马哥视频中讲解的语言记录下来了,部分语言稍作修改。

      1、核心特性包括  第一,IoC 容器、老生常谈的啦。

              第二,Spring 事件(是基于java的标准事件进行扩展的,但是和java的标准事件还有些区别,后面详细描述。)

              第三,资源管理也是继承于Java的一些资源管理,有些API是借鉴了Java核心的底层API的一个实现。

              第四,国际化,Java其实默认就支持国际化,因此Spring国际化也是基于Java API进行实践的。

              第五,校验,Java JDK底层是没有提供的,是Spring自己做了一些特殊的一些API设置。比如借鉴Bean Validation, Spring在它的Framework里面做了Bean Validation的一个整合。

              第六,数据绑定,在Java里面也没有特别实现,是Spring特有的实现。简单说是,外面的属性和Java 的 POJO的Setter、Getter来进行一个数据上的转化和绑定。

              第七,类型装换,有了数据绑定,就会涉及到类型转换,也是Spring核心特性之一。能够帮助我们进行更好的有扩展性的类型转换。

              第八,Spring 表达式,和JSP表达式是如出一辙的,在JSP里面可以通过符号的方式引用变量,达到实现动态调用的目的。

              第九,面向切面编程,常说的AOP。

      2、数据存储包括 第一,JDBC,关系型数据库务必会和JDBC打交道,只不过是在JDBC上面做了一些封装,比如MyBatis、Hibernete。JDBC是java API和数据库打交道的一个通道,Spring在此做了相应的实现,比如 jdbcTemplate。

              第二,事务抽象,面试必考的内容,实际上来源于EJB, Spring 只不过在上面做了一些简化操作。事物的抽象在实现中有一个单独的API或者单独的规范来进行实现,Spring也只是做了一些简单的封装。

              第三,DAO 支持,Spring做了很大的封装,简化DAO的一个写法和实现方式,比如常见的SQLException。

              第四,O/R映射,早期了解到Spring对Hibernete的支持,Spring对JDO的支持,后面JPA替代了JDO,JPA默认的实现就是Hibernete,因此讨论JPA和讨论Hibernete是讨论一个东西。

              第五,编列,把 xml 和Java的序列号进行对比的话,Java的序列化就相当于这里的编列,反序列化就是反编列。熟悉JAXB(Java API for XML Binding)的话,会对此有了解。

      3、Web技术包括 Web Servlet 技术栈,Web Reactive 技术栈。

              第一,按照版本的分布, Web Servlet 技术栈是从Spring 1 到 Spring 4版本的唯一支持,从Spring 5才开始引入Web Reactive 技术栈。

              第二,Reactive 技术栈包括Spring WebFlux、Spring MVC,其实这两个在注解上面是一模一样的,只是底层的实现发生了变化。传统的Spring MVC是需要Servlet引擎进行支撑的。

              第三,Reactive通常默认情况下是Netty的 Web server。当然Reactive也是可以运用Spring MVC 的引擎进行实现的,也就是说可以用到Servlet引擎进行实现。于此不同的是Servlet规范里面在3.0以后规划是对websocket进行支持,那么Web Servlet 技术栈也会有这方面的支持。关于SockJS也是一个技术栈,这里不做讨论。

              第四,关于 Reactive的两个部分理解,一个是WebSocket,一个是WebClient,在早期的时候,Spring框架5.0之前,有个东西叫RestTemplete或者叫HttpClient是一个同步的Http的执行客户端,那么WebClient引用之后,它把过去的同步执行变成异步回调的方式。其实Web Reactive和Spring MVC 几乎如出一辙,只不过在API封装上面做出了一些变化。

      4、技术整合,内容比较庞杂,相当于是一个生态的整合。

              第一,远程调用(Remoting ),有几种方式的实现,比如:RMI, Java标准的远程方法调用; Hessian社区开源的一个方案,Dubbo是基于Hessian协议的。那么Spring Framework做了一层封装,无论你是基于HTTP的调用还是常说的Hessian调用,都可以通过统一的封装来执行方法的调用得到结果。和之前讲的Reactive不同点是,通常来说远程的调用是采用同步的模式。那么异步的模式如下面所讲的Java的消息服务。

              第二,消息服务(JMS),全称Java Message Service,这是一个异步的调用用传统的JMS规范来实现。比如说ActiveMQ,但是Kafka, RocketMQ,等并不是用传统的JMS规范来实现的。

              第三,Java 连接架构,Java EE的一套架构,主要是统一一些Java的资源连接(如JDBC连接)。

              第四,Java 管理扩展(JMX),全称 Java Management Extensions,用于Java的一个管理。对于大多数程序员来说,关注的是开源侧、开发侧,不太关注运维侧,比如,cpu利用率,磁盘利用率,都可以通过JMX来进行查询。

              第五,Java邮件客户端,顶不住了,不写了,都是介绍,后面详细了解,这里了解目录大概。

      

  • 相关阅读:
    面向对象六
    面向对象五
    面向对象四
    面向对象三
    面向对象二
    CentOS7下安装Redis4.0
    在亚马逊的EC2环境中创建swap
    centos7安装rabbitmq操作步骤
    在VUE下使用阿里图标
    Centos7-安装telnet服务
  • 原文地址:https://www.cnblogs.com/gshao/p/13361787.html
Copyright © 2020-2023  润新知