Spring Framework 总览

本文全面解析Spring框架的核心特性,包括IoC容器、AOP、Web技术等,以及其对Java语言特性的运用和JDK、JavaEE API的支持,旨在帮助开发者深入理解Spring的架构与功能。
摘要由CSDN通过智能技术生成

Spring 特性总览

核心特性(Core)

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

数据存储(Data Access)

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

Web 技术(Web)

Web Servlet 技术栈

• Spring MVC
• WebSocket
• SockJS

Web Reactive 技术栈

• Spring WebFlux
• WebClient
• WebSocket

技术整合(Integration)

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

测试(Testing)

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

Spring 版本特性

Java 版本依赖与支持

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

Spring 模块化设计

• spring-aop
• spring-aspects
• spring-context-indexer
• spring-context-support
• spring-context
• spring-core
• spring-expression
• spring-instrument
• spring-jcl
• spring-jdbc
• spring-jms
• spring-messaging
• spring-orm
• spring-oxm
• spring-test
• spring-tx
• spring-web
• spring-webflux
• spring-webmvc
• spring-websocket

Spring 对 Java 语言特性运用

Java 语法变化

Java版本诞生年份语法特性
52004枚举、泛型、注解、封箱(解箱)…
62006@Override 接口
72011Diamond 语法、多 Catch、Try …
82014Lambda 语法、可重复注解、类型注解 …
92017模块化、接口私有方法 …
102018局部变量类型推断

Spring 对 Java 语言特性运用

语法特性Spring 支持版本代表实现
Java 5 语法特性
注解(Annotation)1.2 +@Transactional
枚举(Enumeration)1.2 +Propagation
for-each 语法3.0 +AbstractApplicationContext
自动装箱(AutoBoxing)3.0 +
泛型(Generic)3.0 +ApplicationListener
Java 6 语法特性
接口 @Override4.0 +
Java 7 语法特性
Diamond 语法5.0 +DefaultListableBeanFactory
try-with-resources 语法5.0 +ResourceBundleMessageSource
Java 8 语法特性
Lambda 语法5.0 +PropertyEditorRegistrySupport

Spring 对 JDK API 实践

JDK 核心 API

  • < Java 5
    反射(Reflection)
    Java Beans
    动态代理(Dynamic Proxy)
  • Java5
    并发框架(J.U.C)
    格式化(Formatter)
    Java 管理扩展(JMX)
    Instrumentation
    XML 处理(DOM、SAX、XPath、XSTL)
  • Java 6
    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 7
    NIO 2(JSR 203)
    Fork/Join 框架(JSR 166)
    invokedynamic 字节码(JSR 292)
  • Java 8
    Stream API(JSR 335)
    CompletableFuture(J.U.C)
    Annotation on Java Types(JSR 308)
    Date and Time API(JSR 310)
    可重复 Annotations(JSR 337)
    JavaScript 运行时(JSR 223)
  • Java 9
    Reactive Streams Flow API (J.U.C)
    Process API Updates(JEP 102)
    Variable Handles(JEP 193)
    Method Handles(JEP 277)
    Spin-Wait Hints(JEP 285)
    Stack-Walking API(JEP 259)

Spring 对 JDK API 实践

API 类型Spring 支持版本代表实现
< Java 5 API
反射(Reflection)1.0 +MethodMatcher
Java Beans1.0 +CachedIntrospectionResults
动态代理(Dynamic Proxy)1.0 +JdkDynamicAopProxy
Java 5 API
XML 处理(DOM,SAX…)1.0 +XmlBeanDefinitionReader
Java 管理扩展(JMX)1.2 +@ManagedResource
Instrumentation2.0 +InstrumentationSavingAgent
并发框架(J.U.C)3.0 +ThreadPoolTaskScheduler
格式化(Formatter)3.0 +DateFormatter
Java 6 API
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
可插拔注解处理 API(JSR 269)5.0 +@Indexed
Java Compiler API(JSR 199)5.0 +TestCompiler(单元测试)
Java 7 API
Fork/Join 框架(JSR 166)3.1 +ForkJoinPoolFactoryBean
NIO 2(JSR 203)4.0 +PathResource
Java 8 API
Date and Time API(JSR 310)4.0 +DateTimeContext
可重复 Annotations(JSR 337)4.0 +@PropertySources
Stream API(JSR 335)4.2 +StreamConverter
CompletableFuture(J.U.C)4.2 +CompletableToListenableFutureAdapter

Spring 对 Java EE API 整合

JSR 规范Spring 支持版本代表实现
Java EE Web 技术相关
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.2DispatcherPortlet
SOAP(JSR 067)2.5 +SoapFaultException
WebServices(JSR 109)2.5 +CommonAnnotationBeanPostProcessor
WebSocket(JSR 356)4.0 +WebSocketHandler
Java EE 数据存储相关
JDO(JSR 12)1.0 - 4.2JdoTemplate
JTA(JSR 907)1.0 +JtaTransactionManager
JPA(EJB 3.0 JSR 220的成员)2.0 +JpaTransactionManager
Java Caching API(JSR 107)3.2 +JCacheCache
Java EE Bean 技术相关
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

Spring 编程模型

  • 面向对象编程
    契约接口:Aware、BeanPostProcessor …
    设计模式:观察者模式、组合模式、模板模式 …
    对象继承:Abstract* 类

  • 面向切面编程
    动态代理:JdkDynamicAopProxy
    字节码提升:ASM、CGLib、AspectJ…

  • 面向元编程
    注解:模式注解(@Component、@Service、@Respository …)
    配置:Environment 抽象、PropertySources、BeanDefinition …
    泛型:GenericTypeResolver、ResolvableType …

  • 函数驱动
    函数接口:ApplicationEventPublisher
    Reactive:Spring WebFlux

  • 模块驱动
    Maven Artifacts
    OSGI Bundles
    Java 9 Automatic Modules
    Spring @Enable*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值