spring对java语言,版本,设计模式的支持以及代表实现

361 阅读2分钟

Spring对Java语言的支持

java5

语法特性Spring支持的版本代表实现
Annotation1.2+@Transactional
Enumeration1.2+Propagation
for-each3.0+AbstractApplicationContext
Auto Boxing3.0+
Generic3.0+ApplicationListener

java6

语法特性Spring支持的版本代表实现
接口@Override4.0+

java7

语法特性Spring支持的版本代表实现
Diamond语法5.0+DefaultListableBeanFactory
try-with-resources语法5.0+ResourceBundleMessageSource

java8

语法特性Spring支持的版本代表实现
Lambda语法5.0+PropertyEditorRegistrySupport

Spring对jdk api实践

java5

APISpring支持的版本代表实现
XML处理(DOM,SAX...)1.0+XmlBeanDefinitionReader
JMX1.2+@ManagedResource
Instrumentation2.0+InstrumentationSavingAgent
JUC3.0+ThreadPoolTaskScheduler
Formatter3.0+DateFormatter

java6

APISpring支持的版本代表实现
JDBC4.0(JSR 221)1.0+JdbcTemplate
Common Annotations(JSR 250)2.5+CommonAnnotationBeanPostProcessor
JAXB2.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(单元测试)

java7

APISpring支持的版本代表实现
Fork/Join框架(JSR 166)3.1+ForkJoinPoolFactoryBean
NIO(JSR 203)4.0+PathResource

java8

APISpring支持的版本代表实现
Date And Time(JSR 310)4.0+DateTimeContext
可重复Annotations(JSR 337)4.0+@PropertySources
Stream API (JSR 335)4.2+StreamConverter
CompletableFuture(JUC)4.2+CompletableToListenableFutureAdapter

Spring对java EE API整合

java ee web技术相关

APISpring支持的版本代表实现
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.2DispathcerPortlet
SOAP(JSR 067)2.5+SoapFaultException
WebServices(JSR 109)2.5+CommonAnnotationBeanPostProcessor
WebSocket(JSR 356)4.0+WebSocketHandler

java ee data access相关

APISpring支持的版本代表实现
JDO(JSR 12)1.0-4.2JdoTemplate
JTA(JSR 907)1.0+JtaTransactionManager
jpa(EJB JSR 220)2.0+JpaTransactionManager
java caching api(JSR 168)3.2+JCacheCache

java ee bean相关

APISpring支持的版本代表实现
jms(JSR 914)1.1jmstemplate
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对设计模式的支持

设计模式代表实现备注
工厂模式BeanFactory, 工厂方法创建Bean
单例模式Bean Scope默认是单例
原型模式Bean Scope可以设置为prototype
代理模式JdkDynamicAopProxy, CglibAopProxy
委托模式DispatcherServlet, BeanDefinitionParserDelegate
策略模式InstantiationStrategy,DefaultAopProxyFactoryDefaultAopProxyFactory#hasNoUserSuppliedProxyInterfaces动态决定使用什么策略实现aop
模板模式JdbcTemplate, HttpServletJdbcTemplate基于callback
适配器模式HandlerAdapterDispatcherServlet里支持Controller注解,Controller接口, Servlet接口+xml配置的方式,需适配统一
装饰者模式HttpHeadResponseDecorator, TransactionAwareCacheDecoratorTransactionAwareCacheDecorator(在事务提交,回滚的时候对Cache的数据进行处理。)
观察者模式ContextLoaderListener, ApplicationListener, ApplicationEvent,ApplicationContext
组合模式CacheManager, CompositeCacheManagerCompositeCacheManager中心节点,其余为子节点
职责链模式HandlerExecutionChain, Interceptor(拦截器), Filter
解释器模式spel

Spring对设计思想的支持

  1. 约定优于配置
  2. 低侵入,松耦合
  3. 模块化,轻量级
  4. 封装,抽象(OOP)
  5. BOP
  6. AOP
  7. DI/DL
  8. IOC