Spring 2.0 发布候选版本 3 发布
亲爱的 Spring 社区:
我们很高兴地宣布 Spring 2.0 RC3 已经发布。 下载 | 文档 | 更新日志
这第三个发布候选版本包含了许多基于我们收到的前一个发布候选版本用户宝贵反馈的改进。 随着此版本的发布,Spring 2.0 最终版本即将到来。
最重要的改进包括:
- Spring 1.2 对 default-lazy-init="true" 的兼容性已恢复,涉及通过类型检测特殊 Bean(如 PropertyPlaceholderConfigurer)。同时,延迟类加载也已重新设计,允许在类名中使用占位符等。对于特殊的 ApplicationContext,仍然可以强制执行严格的延迟类加载。
- 现在 Hibernate3、JDO 和 TopLink 也支持基于 @Repository 注解的持久化异常转换,而不仅仅是 JPA。 异常转换现在尽可能基于底层 ORM 工具的本地异常,只有明确指定时才应用 Spring 特定的 SQLException 转换。
- 在我们的 JMS 支持中,DefaultMessageListenerContainer 具有优化的资源处理功能(在 JBoss 4.0 上也有效),并且能够从损坏的 Connection 或 Destination 中恢复。JMS 资源的缓存现在完全可配置,为 XA 和非 XA 场景都提供了合理的默认值。此外,JmsTemplate 在 JTA 事务中重用缓存的 JMS 资源。
- Servlet 和 Portlet Web MVC 现在支持通用的 WebRequestInterceptor 抽象,这允许 Open Session/EntityManager/等在 View 拦截器中跨 Servlet 和 Portlet 环境重用。因此,所有这些 Portlet 特定的拦截器都已弃用,转而使用新的通用拦截器(OpenSessionInViewInterceptor 等)。
当然,细节上还有许多进一步的改进。请参阅更新日志文件(以及 JIRA 中的更新日志)了解详细信息。
如果您在 RC3 中遇到任何剩余问题,请告诉我们。 Spring 2.0 最终版本即将发布。
Spring Framework 开发负责人
消息驱动 POJO!
在所有新的 Spring 2.0 功能和改进中,我必须承认消息驱动 POJO 是我个人最喜欢的功能之一。我有一种感觉,许多其他 Spring 用户也会有同感。
我在这里提供一个快速介绍。还有很多内容要展示,我会在后续帖子中继续。不过,就目前而言——这应该能为您提供足够的信息,让您开始使用一些真正基于 POJO 的异步 JMS!我希望您和我一样对此感到兴奋 ;)
先决条件
您需要在类路径中包含以下 JAR 文件。我还列出了我正在使用的版本(任何 spring-2.x 版本都应该可以。事实上,我大约在 2 分钟前才将 RC3 放在那里)
- activemq-core-3.2.2.jar
- concurrent-1.3.4.jar
- geronimo-spec-j2ee-managment-1.0-rc4.jar
- commmons-logging-1.0.4.jar
- log4j-1.2.9.jar
- jms-1.1.jar
- spring-2.0-rc3.jar
设置环境
首先,我们需要设置环境。我将使用 ActiveMQ,但更改提供商的影响将仅限于此文件中的修改。我将此文件命名为“shared-context.xml”,因为正如您很快将看到的那样,我将为 JMS 通信的两端导入这些 Bean 定义。以下是“共享”Bean 定义:连接工厂和两个队列(一个用于请求,一个用于回复)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="requestQueue" class="org.activemq.message.ActiveMQQueue">
<constructor-arg value="requestQueue"/>
</bean>
<bean id="replyQueue" class="org.activemq.message.ActiveMQQueue">
<constructor-arg value="replyQueue…使用 Spring 2.0 和 AspectJ 简化企业应用
我为 InfoQ 网站撰写的一篇文章刚刚上线:《使用 Spring 2.0 和 AspectJ 简化企业应用》。
我听到很多人说“AOP 太难了”,或者“AOP 让事情变得过于复杂”。从某种程度上说,这篇文章就是为了反驳这些观点而写的(因此标题是“简化企业应用开发”)。我的意思是,AOP 的全部意义在于,你将变得复杂和纠缠不清的软件,通过引入切面,让每个模块再次承担单一职责,从而简化实现。然后当然对一些人来说……
在 Spring 中使用 JPA,而无需引用 Spring
Spring 2.0 增加了对 JPA 数据访问标准的支持,其中包括人们期望的所有标准 Spring 支持类。Mark Fisher 有一篇很棒的帖子,介绍如何使用这项新支持。然而,我们不断收到的一个问题是,为什么有人会想使用 Spring 类(JpaTemplate)来访问 EntityManager。这个问题的最佳答案在于 JpaTemplate 提供的附加价值。除了提供作为 Spring 数据访问标志的单行便捷方法之外,它还提供事务的自动参与和从 ... 的转换
关于 Spring 的 10 个常见误解
昨天有几篇帖子与即将出版的《Spring 2 初学者指南》一书有关,我想在这里指出这些帖子。
首先,由于这本书将吸引 Spring 新手——甚至那些此刻只是好奇的人,我们决定最好能包含一些关于 Spring 常见误解的讨论。这些误解已在此处发布:
http://www.oreillynet.com/onjava/blog/2006/08/ten_common_misconceptions_abou.html
以及 Apress 博客上:http://ablog.apress.com/?p=1221。
其次,Interface21 的 Steven Devijver,本书不知疲倦的主要作者,发布了一篇精彩的概述:
http://blog.interface21.com/main/2006/08/03/finishing-beginning-spring-2-from-novice-to-professional/.
《Spring 2 初学者指南:从新手到专业人士》一书将于今年十月上市。虽然它旨在为 Spring 新用户提供温和的介绍,但即使您已经使用 Spring 框架一段时间,它对于“填补空白”也仍然非常有用。换句话说,这本书涵盖了广泛的主题:Spring 容器、AOP、数据访问、MVC 等。内容包括许多新的 Spring 2.0 功能——最值得注意的是,整整一章探讨了 Spring 全新改进的 AOP 方法,例如基于 XSD 的 AOP 命名空间、与 AspectJ 切入点表达式语言的集成,以及 @AspectJ 集成!(别担心,Spring 2 是向后兼容的——迁移路径也很容易)。全书始终在理论和示例之间提供实用的平衡。这些示例由一个有趣的示例应用程序(不过于简单)支持。当 Steven 请我贡献一些练习时,我个人非常高兴——这是他为初学者提供优秀资源的又一个绝妙想法。第一组练习循序渐进地介绍了多种依赖注入技术,从基本连线到使用 FactoryBean 和外部化属性文件。第二组练习侧重于 AOP——包括新的命名空间和 @AspectJ 风格。
我们期待在本书发布后有一个活跃的配套网站,当然,您也可以继续在 Interface21 团队博客上找到许多关于 Spring 2.0 功能的精彩讨论和示例。
12月在佛罗里达好莱坞体验 Spring
在过去的一个月里,Jay Zimmerman 和我一直在努力规划 The Spring Experience 2006 (TSE)。创建一个一流的技术会议绝非易事——需要花费数小时才能找到演讲者和内容的完美组合。
我很自豪地说,我们现在准备推出一个前所未有的盛会。来看看吧!
我希望在那里见到你。以下是我认为这场展会与众不同之处- 55 场九十分钟的会议,分布在 5 个会场,为期 3 天,全部在一个五星级海滨度假村举行。
- 关于 Spring 2.0 的独家高级技术内容。一半的会议由核心 Spring 开发者领导,他们内外兼修地运用最新的 Spring 功能。这包括 Rod Johnson、Juergen Hoeller、Adrian Colyer、Rob Harrop、Colin Sampaleanu、Ben Alex、Arjen Poutsma、Erwin Vervaet 以及我本人。
- 来自领先 Java 软件创新者的前沿会议。这包括 Eclipse RCP 和 Equinox 项目负责人 Jeff McCaffer;Groovy 项目负责人 Guillaume LaForge;JMX 负责人 Eamonn McManus;BEA Kodo JPA 负责人 Patrick Linskey;以及 Java Persistence Architecture (JPA) 负责人 Mike Keith。
- 来自著名行业专家的真实世界洞察。这包括《领域驱动设计》这本经典著作的作者 Eric Evans;软件业务专家、《超越软件架构》一书的作者 Luke Hohmann;Interface21 首席专家、《AspectJ 实战》一书的作者 Ramnivas Laddad;《敏捷开发者实践》一书的作者 Venkat Subramanium;InfoQ.com 的创始人 Floyd Marinescu;解决方案架构师 Mark Richards (IBM) 和 Jim Clark (Oracle);以及易用性专家、《内容与风格》一书的作者 Mike Stenhouse。
- 会议结束后可优先获取所有会议的同步音频幻灯片,确保您不错过任何一个细节。
- 注册费包含全套早餐、午餐和晚餐。
- “会见大师”用户 BOF。这是 Spring 用户与 Spring 项目负责人互动的绝佳机会。
- 两场精彩派对,一场是周五晚上,一场是周六下午在海滩上的派对,还有一场 Spring 用户 vs. 开发者排球比赛。
- 酷炫的会议纪念品。数量众多。注册参与者将获得全通会议通行证、一个定制(且非常酷)的 TSE 笔记本电脑包、一个定制设计的笔记本活页夹、一件限量版 TSE 2006 T恤,甚至还有一条官方 TSE 2006 沙滩巾。您还将有机会赢取 iPod 和 XBox 360。
- 多样性。无论您是硬核企业开发者、Web 应用开发者,还是领先的软件架构师,本次会议都能满足您的需求。去年的展会吸引了来自 20 个国家的 250 人。今年我们预计将有来自 25 多个国家的 500 名与会者。这将是一场充满乐趣、绝佳学习和交流机会的盛会。
Spring 2.0 中的 AOP 配置选择
在 Interface21 工作有很多理由值得喜爱,但最棒的无疑是与行业领导者们一起工作。例如,Spring 2.0 的主要关注点之一是改进 AOP 支持。我们添加了新的配置命名空间、AspectJ 切入点语言以及对 @AspectJ 切面的支持。但这留下了一个大问题:在 Spring 2.0 中编写切面的首选方式是什么?由于我是 I21 的员工,我很幸运能直接从源头获得答案。
我向 Interface21 的首席科学家 Adrian Colyer 提出了这个问题,他……
完成《Spring 2 初学者指南:从新手到专业人士》
为了庆祝 i21 团队博客的推出,我借此机会介绍一本即将出版的 Spring 新书。书名为《Spring 2 初学者指南:从新手到专业人士》,由 Apress 出版。我与 Mark Fisher (i21)、Bram Smeets (DWR 名人) 和 Seth Ladd (《专家 Spring MVC 和 Web Flow》名人) 合著了这本书。Rob Harrop 担任技术审阅。
如您所料,这本书面向 Spring 框架的初学者。Spring 有趣的地方在于,您总会在某些领域成为初学者。这个框架提供了太多……
您对 Spring 2.0 有什么期待?
Spring 2.0 即将到来,我个人感到非常兴奋。我仍然记得去年在 The Spring Experience 上第一次听说所有新功能时的情景。异步 JMS 消息接收和与 AspectJ 的 AOP 集成最让我兴奋(实际上有点流口水),但即使在那时,还有许多其他改进,而且这个列表还在不断增长。
唉,我知道你们大多数人不像我一样是中间层极客,那么你们对什么感到兴奋呢?新的 XML 方言和 XSD 支持?改进的 JSP 标签库?那又是什么呢?<tx:annotation-driven />?也许你喜欢 Groovy……
