翻一翻spring历史版本

Spring 0.9 版本,有记录的第一个版本

Changes in version 0.9 (25.6.2003)
----------------------------------
* first public release since the version that came with the book "Expert One-on-One J2EE Design and Development"
* following various unofficial 0.8 CVS snapshots
* general tightening and polishing
* log via Commons Logging
* Log4J configuration support
* revised bean definition XML format with DTD
* support for lists, maps, and props in XML bean definitions
* support for hierarchical bean factories
* support for custom property editors
* various new out-of-the-box editors for dates, numbers, etc
* new FactoryBean interface instead of custom bean definitions
* FactoryBean-based resource definitions for JDBC DataSource etc
* revised simple DataSource implementations
* new JDBC error code exception translater
* new DataFieldMaxValueIncrementer support for JDBC
* new generic transaction management
* new JDO support: resource definition, transaction strategy, template, interceptor
* new Hibernate support: resource definition, transaction strategy, template, interceptor
* new support for remoting via Hessian and Burlap
* new AOP framework aligned with AOP Alliance
* revised EJB access classes based on AOP
* resource access from application contexts
* support for MessageSourceResolvable
* revised validation framework
* support for global validation errors
* revised web framework
* refactored form controller hierarchy
* new handler interception mechanism
* locale and theme resolution
* support for HTML escaping
* revised JSP tag implementations
* new sample application "Petclinic"
* new sample application "PagedList"
* application skeletons as configuration showcases
* MutableSortDefinition accepts now NO_CHANGE for setProperty and does nothing in this case
* (many new convenience classes and methods)
* (too many minor improvements to list)
* (lots of minor bugfixes)

https://docs.spring.io/spring/docs/1.2.9/changelog.txt



Changes in version 0.9 (25.6.2003)
----------------------------------
* first public release since the version that came with the book "Expert One-on-One J2EE Design and Development"
* following various unofficial 0.8 CVS snapshots
* general tightening and polishing
* log via Commons Logging
* Log4J configuration support
* revised bean definition XML format with DTD
* support for lists, maps, and props in XML bean definitions
* support for hierarchical bean factories
* support for custom property editors
* various new out-of-the-box editors for dates, numbers, etc
* new FactoryBean interface instead of custom bean definitions
* FactoryBean-based resource definitions for JDBC DataSource etc
* revised simple DataSource implementations
* new JDBC error code exception translater
* new DataFieldMaxValueIncrementer support for JDBC
* new generic transaction management
* new JDO support: resource definition, transaction strategy, template, interceptor
* new Hibernate support: resource definition, transaction strategy, template, interceptor
* new support for remoting via Hessian and Burlap
* new AOP framework aligned with AOP Alliance
* revised EJB access classes based on AOP
* resource access from application contexts
* support for MessageSourceResolvable
* revised validation framework
* support for global validation errors
* revised web framework
* refactored form controller hierarchy
* new handler interception mechanism
* locale and theme resolution
* support for HTML escaping
* revised JSP tag implementations
* new sample application "Petclinic"
* new sample application "PagedList"
* application skeletons as configuration showcases
* MutableSortDefinition accepts now NO_CHANGE for setProperty and does nothing in this case
* (many new convenience classes and methods)
* (too many minor improvements to list)
* (lots of minor bugfixes)



spring 1.1.1  第一个spring 文档版本

https://docs.spring.io/spring/docs/1.1.1/reference/index.html


In early 2004, Martin Fowler asked the readers of his site: when talking about Inversion of Control: "the question, is what aspect of control are they inverting?"

Inversion Of Control 反转控制设计模式来源

https://martinfowler.com/articles/injection.html  


Spring  AOP


Aspect-Oriented Programming (AOP) complements OOP by providing another way of thinking about program structure. While OO decomposes applications into a hierarchy of objects, AOP decomposes programs into aspects or concerns.



Spring implements the AOP Alliance interception interfaces

https://sourceforge.net/projects/aopalliance/



Spring defaults to using J2SE dynamic proxies for AOP proxies. This enables any interface or set of interfaces to be proxied.


Spring can also use CGLIB proxies. This is necessary to proxy classes, rather than interfaces. CGLIB is used by default if a business object doesn't implement an interface. As it's good practice to program to interfaces rather than classes, business objects normally will implement one or more business interfaces.


The basic way to create an AOP proxy in Spring is to use the org.springframework.aop.framework.ProxyFactoryBean.



Spring also allows us to use "autoproxy" bean definitions, which can automatically proxy selected bean definitions. This is built on Spring "bean post processor" infrastructure, which enables modification of any bean definition as the container loads.


Spring  AspectJ  

 for example, if we need to add additional fields to a class, or advise fine-grained objects that aren't created by the Spring IoC container.



 Spring  Transaction Management 


Spring provides a consistent abstraction for transaction management. This abstraction is one of the most important of Spring's abstractions, and delivers the following benefits:

  • Provides a consistent programming model across different transaction APIs such as JTA, JDBC, Hibernate, iBATIS Database Layer and JDO.



 Scheduling jobs using Quartz or Timer

Spring features integration classes for scheduling support. Currently, Spring supports the Timer, built in in the JDK since 1.3 and the Quartz Scheduler



Spring 1.1.1 版本小结:

Spring1.1.1 版本是spring 第一个带有文档的发行版本. 该版本IoC模块核心以及Aop核心都已经搭建完成.

IoC模块主要通过xml来配置bean的注入.






Spring 版本1.2.6  新增ResouceLoader 模块


UrlResource

This wraps a java.net.URL, and may be used to access any object that is normally accessible via a URL, such as files, an http target, an ftp target, etc. 


ClassPathResource

This class represents a resource which should be obtained from the classpath. This uses either the thread context class loader, a given class loader, or a given class for loading resources.



FileSystemResource

This is a Resource implementation for java.io.File handles. 


ByteArrayResource

This is a Resource implementation for a given byte array. It creates ByteArrayInputStreams for the given byte array.




spring 1.2.x 版本小结:

Spring1.2.x 版本在spring1.1.x 版本上进行优化,没有太大变化.



Spring 2.0  版本.  

http://docs.spring.io/spring/docs/2.0.0/reference/new-in-2.html

 Spring 2.0 版本时间点:Spring 2.0 was announced in December 2005 at theSpring Experience conference in Florida.


Bean Scope


 Spring had IoC container level support for exactly two distinct bean scopes (singleton and prototype). Spring 2.0 improves on this by not only providing a number of additional scopes depending on the environment in which Spring is being deployed (for example, request and session scoped beans in a web environment), but also by providing 'hooks' (for want of a better word) so that Spring users can create their own scopes.


Spring AOP  @AspectJ


Spring 2.0 has a much improved AOP offering. The Spring AOP framework itself is markedly easier to configure in XML, and significantly less verbose as a result; and Spring 2.0 integrates with the AspectJ pointcut language and @AspectJ aspect declaration style.


Spring 2.0 also supports aspects defined using the @AspectJ annotations. 


Dynamic language support

Spring 2.0 now has support for beans written in languages other than Java, with the currently supported dynamic languages being JRuby, Groovy and BeanShell. 

 JMX

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值