`

官方网站提供Spring3新特性

阅读更多

;如果你使用Srping进行项目开发,肯定对目前Srping的功能能否满足你想买的需求提出过质疑,并期望某些功能可以在Spring 3.0版得到改进和支持.下面我们来看看Spring 3.0版的一些新增功能和特性.

Java SE与Java EE支持

现在的Spring Framework基于Java 5,并且完全支持Java 6。而且,它兼容J2EE 1.4及Java EE 5,同时还引入了一些对Java EE 6的早期支持。

1、Java 5

为了利用Java 5特性,例如泛型、可变参数和其他语言改进,整个框架的代码都被修改过了。我们尽可能地保证代码能够向后兼容。我们现在一致使用的泛型Collection和Map,一致使用泛型FactoryBean,并且在Spring AOP API中有一致的桥接方法解析。泛型ApplicationListener只会自动接收特定的事件类型。所有的回调接口,例如TransactionCallback和HibernateCallback,可以声明泛型结果值了。总而言之,Spring的核心代码经过了彻底的修改,并为Java 5做了优化。

为了与Java 5的java.util.concurrent机制紧密结合,Spring的TaskExecutor抽象也被修改过了。我们为Callable和Future提供了一流的支持,还有ExecutorService适配器、ThreadFactory集成等等。这些特性都尽可能与JSR-236(Concurrency Utilities for Java EE 6)保持一致。此外,针对通过新的@Async注解(或者EJB 3.1的@Asynchronous注解)进行异步方法调用,我们也提供了相应的支持。

2、改进的文档

Spring的参考文档也不断被更新着,这样它才能完整地反映Spring 3.0的变化和新特性。尽管我们进了一切努力不在文档中犯错,但还是有些漏网之鱼。如果你发现了一些拼写错误或者更严重的错误,并能在午餐时挤出点时间的话,请将这些错误告诉Spring团队,提个事件 就可以了。

3、新的入门教程

现在有了一份新的开发基础Spring 3.0 MVC Web应用程序的教程。这个教程是一份独立的文档,你能在Spring Documentation 页面中找到它。

注意:要到Spring 3.0正式发布时才能获得该文档。
 
4、新的模块组织结构和构建系统

我们修改了框架的模块,并用每个模块jar一棵源码树的方式分别进行管理:

• org.springframework.aop
• org.springframework.beans
• org.springframework.context
• org.springframework.context.support
• org.springframework.expression
• org.springframework.instrument

从Spring Web Flow 2.0开始,我们使用了新的Spring构建系统。这给了我们:

◆基于Ivy的“Spring Build”系统

◆一致的部署过程

◆一致的依赖管理方式

◆一致的OSGi Manifest生成方式

5、新特性概述

以下是Spring 3.0新特性的列表,我们稍后会更详细地介绍它们。

◆Spring Expression Language

◆IoC增强 / 基于Java的Bean元数据

◆从Spring Web Services迁移过来的对象 / XML映射功能(OXM)

◆全面的REST支持

◆更多@MVC注解

◆声明式模型验证

◆Java EE 6早期支持

◆嵌入式数据库支持

针对Java 5的核心API更新

BeanFactory接口会尽可能地返回确定类型的Bean实例:

◆T getBean(String name, Class requiredType)

◆Map getBeansOfType(Class type)

Spring的TaskExecutor接口现在扩展了java.util.concurrent.Executor接口:

扩展了的AsyncTaskExecutor支持带Future的标准Callable

新的基于Java 5的转换器API和SPI:

◆无状态的ConversionService和Converter

◆取代标准JDK PropertyEditor

指定类型的ApplicationListener

Spring Expression Language

Spring引入了一种表达式语言,它在语法上很像Unified EL,但提供了更多功能。在定义XML和基于注解的Bean定义的时候,可以使用该表达式语言,此外,它也是Spring Portfolio中表达式语言支持的基础。该功能的详细信息请参考Spring Expression Language(SpEL)一章。

Spring Expression Language为Spring社区提供了一种能在所有Spring Portfolio产品中使用的、有良好支持的表达式语言。它的语言特性是由Spring Portfolio中项目的需求来驱动的,其中也包含工具的需求,例如,在基于Eclipse的SpringSource Tool Suite中的代码补全支持。

下面是一个例子,演示了如何用它来配置数据库属性。

  1. <bean class="mycompany.RewardsTestDatabase"> 
  2. <property name="databaseName" 
  3. value="#{systemProperties.databaseName}"/> 
  4. <property name="keyGenerator" 
  5. value="#{strategyBean.databaseKeyGenerator}"/> 
  6. bean> 

如果你更喜欢用注解来配置你的组件,该功能也同样适用:

  1. @Repository    
  2. public class RewardsTestDatabase {     
  3. @Value("#{systemProperties.databaseName}")     
  4. public void setDatabaseName(String dbName) { … }     
  5. @Value("#{strategyBean.databaseKeyGenerator}")     
  6. public voidsetKeyGenerator(KeyGenerator kg) { … }     
  7. }    

控制反转(Inversion of Control,IoC)容器

基于Java的Bean元数据

如今,Java Config项目中的一些核心特性已经被添加到了Spring Framework项目中,这意味着现在Spring直接支持下面的这些注解了:

◆@Configuration

◆@Bean

◆@Primary

◆@Lazy

◆@Import

◆@Value

以下是一个Java类使用新JavaConfig特性提供基本配置的例子:

  1. @Configuration 
  2. public class AppConfig{  
  3. private @Value("#{jdbcProperties.url}") String jdbcUrl;  
  4. private @Value("#{jdbcProperties.username}") String username;  
  5. private @Value("#{jdbcProperties.password}") String password;  
  6.  
  7. @Bean 
  8. public FooService fooService() {  
  9. return new FooServiceImpl(fooRepository());  
  10. }  
  11.  
  12. @Bean 
  13. public FooRepository fooRepository() {  
  14. return new HibernateFooRepository(sessionFactory());  
  15. }  
  16.  
  17. @Bean 
  18. public SessionFactory sessionFactory() {  
  19. // wire up a session factory  
  20. AnnotationSessionFactoryBean asFactoryBean =  
  21. new AnnotationSessionFactoryBean();  
  22. asFactoryBean.setDataSource(dataSource());  
  23. // additional config  
  24. return asFactoryBean.getObject();  
  25. }  
  26.  
  27. @Bean 
  28. public DataSource dataSource() {  
  29. return new DriverManagerDataSource(jdbcUrl, username, password);  
  30. }  

要让上面的代码运行起来,你需要将如下组件扫描配置加入应用程序上下文XML文件中

  1. <context:component-scan 
  2. base-package="com.myco.config"/> 

在组件中定义Bean元数据

Spring组件中也同样支持添加了@Bean注解的方法,它们为容器提供了一个工厂Bean。

数据层

对象 / XML映射功能(OXM)已经从Spring Web Services项目迁移到核心Spring Framework中了,可以在org.springframework.oxm包中找到它。

Web层

Web层中最令人兴奋的新特性莫过于对构建RESTful Web服务和Web应用程序的支持了。此外,还有一些用于Web应用程序中的新注解。

全面的RESTful支持

通过对现有的注解驱动MVC Web框架的扩展,Spring Framework提供了构建RESTful应用程序的服务器端支持。客户端的支持则由RestTemplate类提供,它和JdbcTemplate、JmsTemplate这些模板类非常类似。无论是服务器端还是客户端的REST功能,都使用了HttpConverter来简化对象与对应的HTTP请求/应答中的表述的转换。

MarshallingHttpMessageConverter用到了之前提到的OXM功能。

更多@MVC注解

新增了几个注解,例如@CookieValue和@RequestHeaders。详见“使用@CookieValue注解映射Cookie值”和“用@RequestHeader注解映射请求头属性”。

声明式模型验证

Hibernate Validator,JSR303

进行中,未包括在Spring 3.0 M3中。

Java EE 6早期支持

我们提供了对使用@Async注解(或EJB 3.1的@Asynchronous注解)进行异步方法调用的支持,还支持JSF 2.0、JPA 2.0等。

进行中,未包括在Spring 3.0 M3中。

支持嵌入式数据库

目前已经提供了对嵌入式Java数据库引擎的支持,包括HSQL、H2和Derby。

分享到:
评论

相关推荐

    Spring3.0新特性

    - **丰富的学习资源**:为了帮助开发者更好地了解和掌握 Spring 3.0 的新特性,Spring 社区和官方推出了许多优秀的文章和教程。这些资源涵盖了从入门到精通的不同层次,非常适合各种技能水平的开发者进行学习。 ###...

    spring3.0新特性官方ppt资料

    这个官方PPT资料深入剖析了这些新特性,使得开发者能够更好地利用Spring提升应用程序的效率和可维护性。以下是Spring 3.0的一些核心新特性: 1. **泛型注解支持**: Spring 3.0引入了对Java泛型的完全支持,允许...

    spring3最新教程3部合集

    《Spring3最新教程3部合集》是一套全面解析Spring3框架的宝贵资源,涵盖了官方文档、Spring3 MVC示例以及Spring3在企业级应用中的实践。这些内容旨在帮助开发者深入理解和熟练运用Spring3框架,提升开发效率和项目...

    Spring3_权威开发指南 Spring3Security-3.0.1中文官方文档

    《Spring3_权威开发指南》和《Spring3Security-3.0.1中文官方文档》是两本关于Spring框架的中文参考资料,对于深入理解和使用Spring 3.0有着极高的价值。Spring作为Java领域的核心框架之一,其强大的功能和灵活的...

    spring security 官方文档

    Spring Security 是一个强大的安全框架,用于为Java应用提供全面的安全管理解决方案。它是Spring生态系统的组成部分,专注于身份验证、授权和访问控制。Spring Security的核心特性包括: 1. **身份验证...

    spring-kafka 整合官方文档

    从这些内容来看,spring-kafka整合官方文档提供了全面的信息,涵盖了从基础的Kafka配置和消息处理,到复杂的事务管理和错误处理机制,再到Kafka Streams的支持。它旨在帮助开发者利用Spring的强大功能,简化Kafka在...

    Spring Boot 官方文档1.4.0.M3

    Spring Boot是由Pivotal团队提供的全新框架,旨在简化新Spring应用的初始搭建以及开发过程。Spring Boot框架的使用可以大大提高开发者的效率,其特性包括自动配置、独立运行、无代码生成以及基于习惯优于配置的原则...

    spring3.0的最新官方例子源码spring-samples

    Spring 3.0是Spring框架的一个重要版本,它引入了许多新特性和改进,极大地提升了开发效率和灵活性。这个"spring3.0的最新官方例子源码spring-samples"压缩包包含的是Spring官方提供的示例代码,旨在帮助开发者理解...

    spring-security 官方文档 中文版

    ### Spring Security 官方文档中文版重要知识点解析 #### 一、Spring Security 概述 **1.1 Spring Security 是什么?** Spring Security 是一款基于 Spring 框架的安全插件,提供了完整的安全性解决方案,包括...

    spring jar包最新版

    3. **数据访问/集成**:Spring提供了对各种数据库访问技术的支持,包括JDBC、ORM(Object-Relational Mapping,如Hibernate、JPA)和OXM(Object-XML Mapping,如JAXB)。它还包含了对NoSQL数据库的支持,如MongoDB...

    spring-petsore spring官方最新demo

    Spring PetClinic是Spring官方提供的一款用于教学和展示Spring框架功能的开源项目。它是一个简单的宠物诊所管理应用,旨在帮助开发者理解Spring框架的各种核心特性以及最佳实践。这个项目对于学习Spring MVC、Spring...

    Spring Security-3中文官方文档(及教程)

    Spring Security 3是中国社区翻译的官方文档,为国内开发者提供了方便的学习资源。 本套文档包含了Spring Security的基础概念、配置、核心组件以及实际应用场景的详细讲解。以下是一些关键知识点的概述: 1. **...

    Spring-5.0.0-官方中文文档

    Spring 5.0.0作为其重要版本,引入了诸多新特性和改进,旨在提升开发效率,增强应用性能,以及更好地适应现代软件开发的需求。 1. **依赖注入(Dependency Injection, DI)**:Spring的核心特性之一,它允许开发者...

    spring 4.10官方文档

    5. 新特性介绍:在Spring Framework 4.0中引入的新特性,包括改进的入门体验、移除过时的包和方法、对Java 8以及Java EE 6和7的支持、Groovy Bean定义DSL、核心容器的改进、通用Web功能的提升、WebSocket、SockJS...

    Spring5中文文档以及官方英文文档

    Spring5作为其最新版本,引入了许多新特性和改进,旨在提升开发效率和应用性能。本压缩包包含Spring5的中文文档和官方英文文档,为不同语言需求的学习者提供了方便。 中文文档是学习Spring5的重要资源,它详细解释...

    Spring 3 中文帮助文档..pdf

    ### Spring 3 中文帮助文档知识点总结 ...以上内容总结了《Spring 3 中文帮助文档》的主要知识点,涵盖了Spring框架的基础概念、新特性以及核心技术方面的内容。对于理解和应用Spring框架非常有帮助。

    Spring官方文档 4.3.5

    以上内容为文档中出现的知识点,对于想要深入了解Spring框架的开发者来说,这份官方文档不仅提供了入门教程,还包括了框架演变历程中各个版本的关键特性介绍,有助于开发者更好地掌握Spring框架,并合理应用到实际...

    spring3.0官方示例代码

    Spring 3.0是Spring框架的一个重要版本,它在2009年发布,引入了大量新特性,提升了性能,并增强了对Java EE 6的支持。这个官方示例代码集是学习和理解Spring 3.0核心概念及其实现机制的理想资源。其中包含的"spring...

    Spring官方文档学习后Demo

    首先,Spring的核心特性包括: 1. **依赖注入(Dependency Injection,DI)**:Spring通过DI管理对象之间的依赖关系,开发者无需在代码中手动创建对象,而是由Spring容器负责创建和管理,这样可以提高代码的可测试...

    官方原版源码 spring-5.2.8.RELEASE.zip

    5.2.8.RELEASE是Spring框架的一个稳定版本,提供了诸多改进和新特性,旨在提升性能、增强安全性和改善开发者体验。本文将对这个版本的源码进行深入剖析,帮助读者更好地理解和利用Spring框架。 首先,源码分析通常...

Global site tag (gtag.js) - Google Analytics