Spring 2.0 发布候选版本 3 发布
尊敬的 Spring 社区,
我们很高兴地宣布 Spring 2.0 RC3 已发布。 下载 | 文档 | 更改日志
这个第三个发布候选版本包含了许多基于我们从以前的发布候选版本收到的宝贵用户反馈的改进。通过此版本,Spring 2.0 正式版即将到来。
最重要的改进包括
- 对于 default-lazy-init="true" 恢复了 Spring 1.2 兼容性,关于通过类型检测特殊 Bean(例如 PropertyPlaceholderConfigurers)。同时,重做了延迟类加载以允许在类名等中使用占位符。对于特殊的 ApplicationContexts 仍然可以强制执行严格的延迟类加载。
- 基于 @Repository 注解的持久化异常转换现在也适用于 Hibernate3、JDO 和 TopLink,而不仅仅是 JPA。异常转换现在尽可能基于底层 ORM 工具的本机异常,只有在显式指定时,Spring 特定的 SQLException 转换才会应用。
- 在我们的 JMS 支持中,DefaultMessageListenerContainer 具有改进的资源处理功能(也适用于 JBoss 4.0),并且能够从断开的连接或目标中恢复。JMS 资源的缓存现在完全可配置,对于 XA 和非 XA 场景都有合理的默认值。此外,JmsTemplate 在 JTA 事务中重用缓存的 JMS 资源。
- Servlet 和 Portlet Web MVC 现在支持一个通用的 WebRequestInterceptor 抽象,它允许在视图拦截器中重用 Open Session/EntityManager/等,跨 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 个常见误解
昨天有一些文章与即将出版的Beginning Spring 2 书籍相关,我想在这里指出它们。
首先,由于这本书对 Spring 新手或仅仅是对 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/.
这本书,Beginning Spring 2:从新手到专业人士,将于今年 10 月在商店出售。虽然它旨在为 Spring 新手提供一个温和的入门,但即使您已经使用 Spring Framework 一段时间了,它对于“填补空白”也非常有用。换句话说,这本书涵盖了很多内容:Spring 容器、AOP、数据访问、MVC 等。内容涵盖了许多新的 Spring 2.0 功能 - 最值得注意的是一个完整的章节探讨了 Spring 改进后的 AOP 方法,例如基于 XSD 的AOP 命名空间、与AspectJ 切点表达式语言的集成以及@AspectJ集成!(别担心,Spring 2 向后兼容 - 迁移路径也很简单)。整本书都提供了理论和示例的实用平衡。这些示例由一个有趣的示例应用程序(不是过于简单)提供支持。当 Steven 邀请我贡献一些练习时,我个人感到非常高兴 - 这是他为初学者提供出色资源的另一个好主意。第一组练习介绍了从基本连接到使用 FactoryBeans 和外部化属性文件的几种依赖注入技术。第二组练习侧重于 AOP - 包括新的命名空间和 @AspectJ 样式。
我们期待在书籍发布后建立一个活跃的配套网站,当然,您也可以继续在这里的 Interface21 团队博客 上找到许多关于 Spring 2.0 功能的精彩讨论和示例。
12 月在佛罗里达州好莱坞体验 Spring
在过去的一个月里,Jay Zimmerman 和我一直在努力计划 2006 年 Spring 体验(TSE)。创建一个一流的技术会议并非易事——需要花费大量时间才能找到演讲者和内容的完美组合。
我很自豪地说,我们现在准备推出一个前所未有的活动。请查看
希望在那里见到您。以下是我认为使这次展会与众不同的原因- 在 3 天内,通过 5 个主题进行 55 个 90 分钟的课程,所有这些都在五星级海滩度假村举行。
- 关于 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项目负责人Guilluame LaForge;JMX负责人Eamonn McManus;BEA Kodo JPA负责人Patrick Linskey,以及Java持久化体系结构(JPA)负责人Mike Keith。
- 来自知名行业专家的现实世界见解。 包括经典著作《领域驱动设计》的作者Eric Evans,软件业务专家兼《超越软件架构》作者Luke Hohmann;Interface21负责人兼《AspectJ实战》作者Ramnivas Laddad;《敏捷开发实践》作者Venkat Subramanium,InfoQ.com的创建者Floyd Marinescu,解决方案架构师Mark Richards(IBM)和Jim Clark(Oracle),以及可用性专家兼Content With Style作者Mike Stenhouse。
- 所有课程结束后,可获得同步音频幻灯片的特权访问权限,让您不错过任何精彩内容。
- 注册即可享受全套早餐、午餐和晚餐。
- “与大师见面”用户BOF。 为Spring用户与Spring项目负责人互动提供绝佳机会。
- 两场精彩派对,一场在周五晚上,另一场在周六下午在海滩举行,还将举办Spring用户与开发者之间的排球比赛。
- 酷炫的会议礼品。 而且数量很多。注册体验者将获得全方位会议通行证、定制(且非常酷炫的)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(“Expert Spring MVC and 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……