Spring Freamwork 总览

313 阅读2分钟

Spring Freamwork 总览

在这里插入图片描述

1、版本特性:Spring 各个版本依赖和支持

Spring Framework 版本Java 标准版Java 企业版
1.x1.3+J2EE 1.3+
2.x1.4.2+J2EE 1.3+
3.x5+J2EE 1.4 和 Java EE 5
4.x6+Java EE 6 和 7
5.x8+Java EE 7

2、模块化设计:Spring 包含哪些核心模块?

github.com/spring-proj…

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

3、技术整合:Spring 各个版本对各技术整合支持情况

  • Spring 对 Java 语言特性运用

    语法特性Spring 支持版本代表实现
    注解 Java 51.2+@Transactional
    枚举1.2+Propagation
    for-each 语法3.0+AbstractApplicationContext
    泛型3.0+ApplicationListener
    接口@Override 64.0+
    Diamond 语法 75.0+DefaultListableBeanFactory
    try-with-resources 语法5.0+ResourceBundleMessageSource
    Lambda 语法 85.0+PropertyEditorRegistrySupport
  • Spring 对 JDK API 实践

    API 类型Spring支持版本代表实现
    反射1.0+MethodMatcher
    动态代理1.0+JdkDynamicAopProxy
    Xml 处理 Java 51.0+XmlBeanDefinitionReader
    并发框架3.0+ThreadPoolTaskScheduler
    格式化3.0+DateFormatter
    JDBC 4.0 Java 61.0+JdbcTemplate
    Java Complier Api5.0+TestComplier
    Fork/Join 框架 Java 73.1+ForkJoinPoolFactoryBean
    NIO24.0+PathResource
    Stream API Java 84.2+StreamConverter
    CompletableFeture4.2+CompletableToListerableFutureAdapter
  • Spring 对 Java EE 整合
    Spring 官方文档根路径

    JSR 规范Spring 支持版本代表实现
    Servlet+JSP1.0+DispatcherServlet
    SOAP2.5+SoapFaultException
    WebServices2.5+CommonAnnotationBeanPostProcesor
    WebSocket4.0+WebSocketHandler
    JTA1.0+JtaTransactionManager
    Dependency Injection for Java2.5+AutowiredAnnotationBeanPostProcessor
    Bean Validation3.0+LocalValidatorFactoryBean

4、编程模型:Spring 实现了哪些编程模型?

  • 面向对象编程

    契约接口:Aware、BeanPostProcessor…

    设计模式:观察者模式、组合模式、模板模式…

    对象继承:Abstract*类

  • 面向切面编程

    动态代理:JDKDynamicAopProxy

    字节码提升:ASM、CGLib、Aspectj…

  • 面向元编程

    注解:模式注解(@Component、@Service、@Repository…)

    配置:Environment抽象、PropertSources、BeanDefinition…

    泛型:GenericTypeResolver、ResolvableType…

  • 函数驱动

    函数接口:ApplicationEventPublisher

    Reactive: Spring Webflux

  • 模块驱动

    Maven Artifacts

    Java 9 Automatic Modules

    Spring @Enable*

5、核心价值:Spring 有哪些经验和教训值得我们学习?

在这里插入图片描述

更多精选好文请关注个人公众号:
个人公众号