• Spring(01)特性总览


    Spring(01)特性总览

    Spring 核心编程思想目录:https://www.cnblogs.com/binarylei/p/12290153.html

    1. 环境说明

    • JDK8
    • Spring Framework 5.2.2
    • IDEA Community 2019

    2. 内容概述

    待补充...

    3. Spring 特性

    官方文档:https://docs.spring.io/spring/docs/5.2.2.RELEASE/spring-framework-reference/

    3.1 核心特性(core)

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

    3.2 数据存储(Data Access)

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

    3.3 web技术栈(Web)

    • Web Servlet 技术栈

      • Spring MVC
      • WebSocket
      • Sockjs
    • Web Reactive 技术栈

      • Spring WebFlux

      • WebClient

      • WebSocket

    3.4 技术整合(Integration)

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

    3.5 测试(Testing)

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

    4. Java 版本依赖与支持

    Java版本依赖与支持
    Spring Framework版本 Java标准版 Java企业版
    1.x 1.3+ J2EE1.3+
    2.x 1.4.2+ J2EE1.3+
    3.x 5+ J2EE1.4 和 Java EE 5
    4.x 6+ Java EE 6 和 7
    5.x 8+ Java EE 7

    说明: jdk 重大版本

    • jdk1.3 动态代理
    • jdk5+ 注解

    5. Spring 对 Java API 的实践

    5.1 Java 语法变法

    Java 语法变法
    JDK5 语法特性
    语法特性 Spring 支持 代表实现
    注解(Annotation) 1.2+ @Transactional
    枚举(Enumeration) 1.2+ Propagation
    注解() 3.0+ AbstractApplicationContext
    自动装箱(AutoBoxing) 3.0+
    泛型(Generic) 3.0+ ApplicationListener
    JDK6 语法特性
    语法特性 Spring 支持 代表实现
    @Override 4.0+
    JDK7 语法特性
    语法特性 Spring 支持 代表实现
    Diamond 语法 5.0+ DefaultListableBeanFactory
    try-with-resources 语法 5.0+ ResourceBoudleMessageSource

    注:Diamond 语法示例 Map<Integer, Map<String, String>> usersLists = new HashMap<>();

    JDK8 语法特性
    语法特性 Spring 支持 代表实现
    Lamdba 语法 5.0+ PropertyEditRegistrySupport

    5.2 JDK 核心 API

    语法特性 jdk版本支持
    反射(Reflection)
    Java Beans
    动态代理(Dynamic Proxy)
    < Java 5
    并发框架(JUC)
    格式化(Formatter)
    Java 管理扩展(JMX)
    Instrumentation
    XML 处理(DOM/SAX/XPath/XSTL)
    Java 5
    JDBC 4.0(JSR 221)
    JAXB 2.0(JSR 222)
    可插拔注解处理 API(JSR 269)
    Common Annotations(JSR 250)
    Java Compiler API(JSR 199)
    Scripting in JVM(JSR 223)
    Java 6
    NIO 2(JSR 203)
    Fork/Join(JSR 166)
    invokedynamic 字节码(JSR 292)
    Java 7
    Stream API(JSR 203)
    CompletableFuture(JUC)
    Annotation on Java Types(JSR 308)
    Date and Time(JSR 310)
    可重复 Annotation(JSR 337)
    JavaScript 运行时(JSR 223)
    Java 8
    Reactive Stream Flow API(JUC)
    Process API Updates(JSR 102)
    Variable Handles(JSR 193)
    Method Handles(JSR 277)
    Spin-Wait Hints(JSR 285)
    Stack-Walking API(JSR 259)
    Java 9

    5.3 Spring 对 JDK 的实践

    Java 5 API
    API 类型 Spring 支持版本 代表实现
    反射(Reflection) 1.0+ MethodMatcher
    Java Beans 1.0+ CachedlntrospectionResults
    动态代理(Dynamic Proxy) 1.0+ JdkDynamicAopProxy
    Java 6 API
    API 类型 Spring 支持版本 代表实现
    JDBC 4.0(JSR 221) 1.0+ Jdbctemplate
    Common Annotations (JSR 250) 2.5+ CommonAnnotationBeanPostprocessor
    JAXB 2.0(JSR 222) 3.0+ Jaxb2Marshaller
    Scripting in JVM (JSR 223) 4.2+ StandardScriptFactory
    可插拔注解处理AP(JSR269) 5.0+ @Indexed
    Java Compiler API(JSR 199) 5.0+ TestCompiler(单元测试)
    Java 7 API
    API 类型 Spring 支持版本 代表实现
    Fork/Join框架(JSR166) 3.1+ ForkJoinPoolFactoryBean
    NIO 2 ( JSR 203) 4.0+ PathResource
    Java 8 API
    API 类型 Spring 支持版本 代表实现
    Date and Time(JSR 310) 4.0+ DateTimeContext
    可重复 Annotation(JSR 337) 4.0+ @PropertySources
    Stream API(JSR 203) 4.2+ StreamConverter
    CompletableFuture(JUC) 4.2+ CompletableToListenableFutureAdapter

    6. Spring 对 Java EE API 整合

    6.1 Java EE Web 技术相关

    JSR 规范 Spring 支持版本 代表实现
    Servlet + JSP(JSR 035) 1.0 + DispatcherServlet
    JSTL(JSR 052) 1.0 + JstlView
    JavaServer Faces(JSR 127) 1.1 + FacesContextUtils
    Portlet(JSR 168) 2.0 - 4.2 DispatcherPortlet
    SOAP(JSR 067) 2.5 + SoapFaultException
    WebServices(JSR 109) 2.5 + CommonAnnotationBeanPostProcessor
    WebSocket(JSR 356) 4.0 + WebSocketHandler

    6.2 Java EE 数据存储相关

    JSR 规范 Spring 支持版本 代表实现
    JDO(JSR 12) 1.0 - 4.2 JdoTemplate
    JTA(JSR 907) 1.0 + JtaTransactionManager
    JPA(EJB 3.0 JSR 220的成员) 2.0 + JpaTransactionManager
    Java Caching API(JSR 107) 3.2 + JCacheCache

    6.3 Java EE Bean 技术相关

    JSR 规范 Spring 支持版本 代表实现
    JMS(JSR 914) 1.1 + JmsTemplate
    EJB 2.0 (JSR 19) 1.0 + AbstractStatefulSessionBean
    Dependency Injection for Java(JSR 330) 2.5 + AutowiredAnnotationBeanPostProcessor
    Bean Validation(JSR 303) 3.0 + LocalValidatorFactoryBean

    7. Spring 编程模型

    编程模型 说明
    面向对象编程 1. 契约接口:Aware、BeanPostProcessor ...
    2. 设计模式:观察者模式、组合模式、模板模式...
    3. 对象继承:Abstract* 类
    面向切面编程 1. 动态代理:JdkDynamicAopProxy
    2. 字节码提升:ASM、CGLib、AspectJ...
    面向元编程 1.注解:模式注解(@Component、@Service、@Respository ...)
    2. 配置:Environment 抽象、PropertySources、BeanDefinition ...
    3. 泛型:GenericTypeResolver、ResolvableType ...
    函数驱动 1. 函数接口:ApplicationEventPublisher
    2. Reactive:Spring WebFlux
    模块驱动 1. Maven Artifacts
    2. OSGI Bundles
    3. Java 9 Automatic Modules
    4. Spring @Enable*

    8. Spring 面试题

    问题1:什么是 Spring Framework?

    ...

    问题2:Spring Framework 有哪些核心模块?

    • spring-core:Spring 基础API 模块,如资源管理,泛型处理
    • spring-beans:Spring Bean 相关,如依赖查找,依赖注入
    • spring-aop : Spring AOP 处理,如动态代理,AOP 字节码提升
    • spring-context : 事件驱动、注解驱动,模块驱动等
    • spring-expression:Spring 表达式语言模块

    问题3:Spring Framework 的优势和不足是什么?

    ...

    资源相关


    每天用心记录一点点。内容也许不重要,但习惯很重要!

  • 相关阅读:
    yii2 页面渲染方法解析
    JavaScript 编码小技巧
    Ansible Playbooks入门介绍
    CentOS 7 源码安装Ansible 2.x
    GitLab 安装与入门
    SpringBoot 悲观锁 与 乐观锁
    SpringBoot 事务隔离性和传播性
    SpringBoot 定义通过字段验证
    SpringBoot 密码MD5加密
    SpringBoot MockMVC
  • 原文地址:https://www.cnblogs.com/binarylei/p/12290174.html
Copyright © 2020-2023  润新知