`

Spring3.0的变化(2):特性

    博客分类:
  • Java
阅读更多

[续上篇http://liuu.iteye.com/blog/479438]

 

3、新特性及功能增强

我最关注的,是Spring3能带来哪些新的功能变化:

 

1、迁移到Java5

 

由于完全基于Java5构建了,应该很多接口增加了泛型的支持,如getBean()后可以不用再转型了,任务执行器继承了Java5的Executor。

 

2、新增Spring表达式语言,简称SpEL

 

    Spring终于支持了在配置文件中使用表达式语言,而不再是简单的属性文件变量,这应该是一个不错的特性。不只是配置文件,注解里也支持EL。

 

3、支持以Java代码+注解方式来配置元数据

     曾记得在07年的时候,发现Spring推出一个有意思的子项目JavaConfig,它不使用XML,而是采用Java的类和方法,来定义容器和Bean,感觉很新颖。不过当时想来,用代码来配置,虽然能获得强类型检查的好处,防止配置输入错误,但是也失去了最大的好处:直接修改的灵活性。

   

     时隔两年,Spring才在核心包里加入了这个特性,或许就是因为这个缺点。而之所以在3.0里加进来,最大的原因或许是由于SpEL,既然能够在注解里使用EL,那么灵活性就大大提高了,只要合理规划元数据结构,应该可以获得 强类型配置 + 灵活性变更的双重好处。Spring3发布后,JavaConfig + SpEL或许会成为一种较好的元数据定义方式。

 

4、对象到XML的映射

又是一个从子项目移入核心包的特性,对象XML隐射(OXM),来自WebServices子项目,提供JAXB、XmlBeans以及XStream等方式的实现。

 

5、全面的REST支持

包括服务端和客户端,提供了RestTemplate支持全功能的REST客户端,基于HttpClient。

 

6、注解声明式验证框架

    支持自动发现HibernateValidator的jar,设置为对JSR303注解验证框架的实现。

   

    JSR303的声明示例:

public class Person {

    @NotNull
    @Max(64)
    private String name;
    
    @Min(0)
    private int age;

}

 

  

7、其他方面

自带嵌入式数据库(HSQL/H2)支持,做测试和演示时数据库,应该用起来更方便。

 

 

OK,先了解这些,具体的有用到了再研究吧。

分享到:
评论
14 楼 ixu 2010-05-14  
myzhijie 写道
请问楼主注解里怎么用el表达式 呵呵


看看Spring3文档里的一段示例:

public static class FieldValueTestBean
  @Value("#{ systemProperties['user.region'] }")
  private String defaultLocale;
  public void setDefaultLocale(String defaultLocale)
  {
    this.defaultLocale = defaultLocale;
  }

Spring Framework
3.0 Reference Documentation 169
。。。
13 楼 myzhijie 2010-05-14  
请问楼主注解里怎么用el表达式 呵呵
12 楼 wxy5001 2010-05-13  
sogo1986 写道
wulinux 写道
对于第三条一直无法理解“支持以Java代码+注解方式来配置元数据”
我想spring的最大的好处就是可以灵活的配置你的系统,现在把这个移植到了JAVA代码中 不就是丢了这样的灵活性了吗?每次配置都要重新编译和发布,我觉得这个功能有一点多余。

xml配置对大型应用就是悲剧 你拆分再细里面还是一大堆bean
annotation反而更轻便 如果利用code gen可以更加规范



弱弱的问一下  code gen 是什么意思?
11 楼 yjcoffee 2010-03-26  
wulinux 写道
对于第三条一直无法理解“支持以Java代码+注解方式来配置元数据”
我想spring的最大的好处就是可以灵活的配置你的系统,现在把这个移植到了JAVA代码中 不就是丢了这样的灵活性了吗?每次配置都要重新编译和发布,我觉得这个功能有一点多余。

我曾经也有这样的想法,但是后来理解了。Spring是提倡基于接口编程,接口的实现的注入是通过配置实现,这样就达到了灵活的松耦合。注入实现及配置称为assembly,assembly绝大多数是通过编码人员去做的,也就是说大多数实现绑定是在编码时就决定了,需要切换实现的地方往往比较少。另外XML配置不方便IDE进行代码重构,比如对类或属性的重命名,XML的错误往往是在运行时才会被发现(而且出错信息经常晦涩难懂)。楼上说到的大系统的维护性也是XML的另一个问题。而Spring 3.0是可以通过XML配置去覆盖Java代码中的annation,所以说既方便了编码时的配置,也保留了系统的灵活性。
10 楼 sogo1986 2010-03-05  
wulinux 写道
对于第三条一直无法理解“支持以Java代码+注解方式来配置元数据”
我想spring的最大的好处就是可以灵活的配置你的系统,现在把这个移植到了JAVA代码中 不就是丢了这样的灵活性了吗?每次配置都要重新编译和发布,我觉得这个功能有一点多余。

xml配置对大型应用就是悲剧 你拆分再细里面还是一大堆bean
annotation反而更轻便 如果利用code gen可以更加规范
9 楼 wulinux 2010-03-03  
对于第三条一直无法理解“支持以Java代码+注解方式来配置元数据”
我想spring的最大的好处就是可以灵活的配置你的系统,现在把这个移植到了JAVA代码中 不就是丢了这样的灵活性了吗?每次配置都要重新编译和发布,我觉得这个功能有一点多余。
8 楼 bsspirit 2010-02-19  
从今天准备学习一下spring3!
7 楼 ningmenglovesoft 2009-10-01  
我连2.5都没用过。就3.0了啊。哈哈。。
6 楼 whaosoft 2009-09-30  
spring action script 那方面的呢
5 楼 wuyunlong 2009-09-29  
treblesoftware 写道


引用
2、新增Spring表达式语言,简称SpEL
不知道大家如何看待?

el表达式应该是不错的,这个在seam中使用的很好,我一直期待spring能够添加这个特性,
现在终于如愿了,就是不知道什么时候在开发中使用了。
4 楼 star022 2009-09-29  
由于完全基于Java5构建了,应该很多接口增加了泛型的支持,如getBean()后可以不用再转型了,

这个可以自己包装;


DAOTemplate早就应该加入泛型机制了。
3 楼 star022 2009-09-29  
6、注解声明式验证框架
去年我就做了个简单的验证框架 ,基于Entry注解,保存或修改之前先校验,如果不通过,将信息写入ThreadLocal,带到页面层显示
2 楼 treblesoftware 2009-09-29  
引用
6、注解声明式验证框架
这个不错。

但是
引用
2、新增Spring表达式语言,简称SpEL
不知道大家如何看待?
1 楼 yeminping 2009-09-29  
期待中,为开发带来更大的简便性

相关推荐

    spring3.0发行版

    Spring 3.0是该框架的一个重要版本,它带来了许多新特性、改进和优化,旨在提升开发者效率和软件的可维护性。在这个发行版中,Spring引入了模块化设计,增强了对Java EE 6的支持,以及对Web MVC、AOP、数据访问和...

    spring3.0jar包

    这些变化使得Spring 3.0更加强大,更加适应现代Java开发的需求。 总之,Spring 3.0的六个核心jar包协同工作,提供了完整的应用开发解决方案,涵盖了从基本的Bean管理到复杂的Web应用和AOP需求。它们共同构成了...

    spring3.0.jar

    2. **注解驱动开发(Annotation-based Development)**:在Spring 3.0中,注解成为主流的编程模式,如@Controller、@Service、@Repository和@Transactional等,减少了XML配置,提高了代码的可读性和可维护性。...

    Spring3.0源码2

    在Spring 3.0版本中,引入了许多改进和新特性,进一步提升了开发效率和灵活性。本篇文章将深入探讨Spring 3.0的核心源码,解析其设计理念,以及如何通过源码理解其工作原理。 1. **依赖注入(Dependency Injection,...

    spring3.0jar和相关jar包

    Spring 3.0是Spring框架的一个重要版本,它在2009年发布,引入了大量新特性和改进,以适应不断变化的Java生态系统。这个压缩包包含了Spring 3.0核心jar和其他相关依赖,如asm-3.2和cglib-2.2.jar,这些依赖对于理解...

    spring2.0升级到spring3.0.5的开发包

    2. **注解驱动的配置**:Spring 3.0大力推广了基于注解的配置,例如`@Component`、`@Service`、`@Repository`和`@Controller`等,使得XML配置文件大大减少,提高了代码的可读性和可维护性。 3. **JSR-303/JSR-349 ...

    spring3.0 flex

    1. **依赖注入(Dependency Injection, DI)**:这是Spring的核心特性,允许开发者通过配置文件或注解来管理对象之间的依赖关系,降低了代码的耦合度。 2. **AOP(Aspect-Oriented Programming, 面向切面编程)**:...

    Spring-Security2.0 和 3.0中文文档

    在Spring Security 2.0 和 3.0 版本中,有一些重要的变化和新特性: 1. **模块化架构**: Spring Security 2.0 提供了基础的认证和授权功能,而3.0进一步强化了模块化设计。这使得开发者可以根据项目需求选择合适...

    基于注解的spring_3.0.x_MVC学习笔记

    在本篇基于注解的Spring 3.0.x MVC学习笔记中,我们将深入探讨Spring MVC在3.0版本中的变化,以及如何通过注解实现快速开发。Spring 3.0.x相较于2.5版本有着显著的改进,尤其在MVC模块上,提供了更加灵活和强大的...

    Spring 3.0 整合 iBatis 3 Beta10 配置

    首先,iBatis 3相较于2.x有一些显著的变化,比如所有库被合并到一个单独的jar包中,这可能使得Spring的默认支持不适应。因此,我们需要手动配置Spring来适配iBatis 3的这种变化。 1. **web.xml配置**: 在`web.xml...

    spring定时器3.0之前和3.0之后版本以及相应的项目实例

    在Spring 3.0之前的版本和3.0之后的版本中,定时器的使用方式和功能有所变化,这些变化主要涉及到API的更新和功能增强。 在Spring 2.5.6版本中,定时任务主要通过`org.springframework.scheduling.timer`包下的类来...

    spring-framework-reference3.0和2.5两个版本

    本文将深入探讨Spring框架的两个重要版本:3.0和2.5,通过对比分析,揭示它们的主要特性和变化,帮助开发者更好地理解和利用这两个版本。 一、Spring 2.5版本 Spring 2.5是Spring框架的一个里程碑式发布,它引入了...

    spring security3.0所有最新开发包及源码及文档

    在Spring Security 3.0版本中,这个框架进行了大量的改进和增强,以适应不断变化的安全需求。 Spring Security的核心概念包括: 1. **过滤器链**:这是Spring Security的主要执行机制,它通过一系列自定义的过滤器...

    Spring技术内幕:深入解析Spring架构与设计原理

    Spring 3.0引入了许多新特性,如支持JSR-303 Bean Validation、改进的AOP支持以及更丰富的数据访问组件等,这些都为开发者提供了更强大的工具。 Spring的核心组件包括Spring MVC、Spring JDBC、Spring ORM(与...

    spring boot、spring cloud、spring boot Alibaba以及配套组件版本关系

    该分支特别注意的是版本命名规则的变化,新的Spring Cloud Alibaba版本号由Spring Cloud版本号加上一个扩展版本号组成,例如`2022.0.0.0`表示与Spring Cloud 2022.0.0版本兼容的第一个版本。 ##### 2. 2021.x 分支 ...

    Spring及AOP应用(事务与集成)

    #### 三、Spring 3.0的主要变化 Spring 3.0是一次重大的升级,引入了许多新特性和改进: - 迁移到Java 5,利用泛型和其他新特性。 - 引入Spring表达式语言(SpEL),增强了配置文件的灵活性。 - 支持使用Java代码和...

    spring2,spring3 相关技术文档

    《[www.java1234.com]spring3.0_CN.chm》可能是Spring 3.0中文官方手册,这份文档详细阐述了Spring 3的新特性、核心模块以及如何在项目中进行配置和使用。Spring 3是Spring框架的一个重大更新,引入了许多新功能,...

    spring-framework-3.0.0.RC2 lib

    Spring 3.0加强了对RESTful服务的支持,通过MessageConverter和@PathVariable等特性,简化了创建REST服务的过程。 8. **Web MVC增强**: Spring MVC在3.0版本中进行了大量改进,包括模板引擎的支持(如FreeMarker...

Global site tag (gtag.js) - Google Analytics