【51CTO快译】Spring 3.0 M3(第三个里程碑)于09年5月6日发布,以下为SpringSource官方博客发布信息:
Spring 3.0 M3下载地址:http://www.springsource.com/download
本次更新带来了很多新功能,其中包括
参考文档:M3是第一个包含了参考文档的Spring 3.0里程碑,以HTML和PDF格式呈现。
标注factory方法(Annotated factory methods):Spring M3包含了Spring JavaConfig项目的核心功能,即拥有用于定义管理下beans的注解制造方法的配置类。
@Bean @Primary @Lazy |
此类factory方法可被任意注解组件类(如plain @Component classes)支持,依照该组件的状态而创建并暴露bean对象。它们将被简单的当做是从那个组件类所推导的bean定义,累加在容器组件的bean定义之上。这样一个bean定义的默认名是其factory方法的名称(以上例子中就是“rewardsService”)。这些bean实例可以在容器需要获取一个新的实例的时候通过factory方法获取。从语义上这和有factory-bean/factory方法引用的XML bean定义相近。
JavaConfig运作模式:如果factory方法在有@Configuration标注的类上被定义,那么就会形成特别的情况。此类配置组件上的factory方法被允许调用同一组件上的其他factory方法,而内部的factory方法将会在容器内被重新转向!通过这个可以创建容器管理下bean实例的图表,而代码将是简单的一串Java factory方法调用。与原本的JavaConfig项目相似,我们为了延伸的语义而正在为这种配置类生成CGLIB子类。
需要注意的是标注factory方法可以与XML bean定义完美的混合并搭配使用。该方法也可以与标准的标注组件类混合搭配,再利用@Scope,@Lazy,@Primary以及@Qualifier这些常用标注。包含标注factory方法的组件可以在XML中被定义,也可以通过类路径中的组件扫描被检测到。基本上,使用规则和标准Spring bean是一样的。这是Spring 2.5的标注组件支持的自然延伸。
Meta标注支持的扩展:Spring的@Scope以及@Transactional标注,以及@Service和@Controller等特殊种类,现在都可以做为meta标注被使用在普通的标注上。比如:
@Service |
这是定义具有扩展默认语义的自定义模式(stereotype)标注的强大方法。或者你也可以建造简单的自定义辖域(scope)标注:比如一个自定义@RequestScoped标注,使用@Scope("request")标记;或者是自定义交易(transaction)标注:比如@MyTX,使用@Transactional(rollbackFor=Exception.class)标记。换句话说,你可以随心所欲的依据你所需要的配置变量来创建简便快捷的标注!
TaskScheduler提取:Spring提供了完善的任务计划外观API,包括ScheduledExecutorServices适配器以及CommonJ TimerManagers。同时还有一个Trigger提取,以及为执行基于cron表达式的简单任务计划所提供的CronTrigger。在3.0 RC1中,我们会再添加一个任务计划命名空间,以更简便的完成基于XML的配置。
新的格式转换SPI以及转换器API:受到Spring Web Flow的绑定子系统功能的启发,Spring现在支持基于无状态Java 5的格式转换器。这个已经与Spring 3.0的表达式分析器整合,并将做为标准JDK PropertyEditors的代替者而在3.0 RC1中所有的Spring绑定中得到全面支持。同样,Spring Web Flow 3.0也将使用这个新的统一转换子系统。
Spring 3.0 RC1计划将于六月公布。一个主要的新功能将是对基于标注的验证的支持,特别是JSR-303 Bean验证的整合。我们也在尝试改进ApplicationContexts中开始/结束的生命周期,以及一个Spring管理下辖域代理(scoped proxies)的序列化方案。
消息来源:SpringSource官方博客
【编辑推荐】