Spring 3.0 M3发布 强化对标注的支持

原创
开发
Spring 3.0 M3近日发布,发布中称3.0 RC1的发布日期将定于六月。此次带来的新功能包括参考文档,标注factory方法,JavaConfig,Meta标注支持,任务计划提取以及格式转换器等。

【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
public RewardsService rewardsService() {
return new RewardsServiceImpl(…);
}

此类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
@Scope("request")
@Transactional(rollbackFor=Exception.class)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyService {
}
@MyService
public class RewardsService {

}

这是定义具有扩展默认语义的自定义模式(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官方博客

【编辑推荐】

  1. 基于OSGi和Spring开发Web应用
  2. Spring收购Hyperic 图谋云计算市场
  3. 专题:Spring开源框架技术
责任编辑:yangsai 来源: 51CTO.com
相关推荐

2010-07-16 14:34:09

MySQL

2009-10-20 11:03:18

Spring 3.0

2010-04-13 17:44:52

MySQL

2009-03-04 15:16:55

C#SharpDevelo.net

2009-05-25 13:40:56

UbuntuEeebuntu Ba

2011-04-29 13:48:28

FlashPlayerAndroid3.0Flash

2009-12-02 11:05:26

Spring 3.0

2023-08-07 06:59:10

M3工艺A17

2009-08-27 09:34:29

CKEditor 3.FCKEditor

2011-07-25 09:18:10

Linux 3.0袁萌

2018-01-23 10:07:13

LinuxWindowsWine 3.0

2009-06-01 10:40:26

SpringOSGI中文手册

2010-07-07 09:12:52

MyEclipse 8MyEclipse 8MyEclipse 8

2009-06-19 17:53:51

Spring.NET1

2009-12-20 00:20:09

2010-07-20 10:46:23

Spring RooSpring Roo Spring Roo

2009-10-21 12:46:39

GooglebotSpring 3.0Wolfram|Alp

2010-01-15 09:43:01

Windows 7 S

2010-01-16 10:53:18

Windows 7SP1发布日期

2011-09-29 10:11:37

EclipseJava
点赞
收藏

51CTO技术栈公众号