`

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 全部jar包

    spring3.0 全部jar包 spring3.0 全部jar包 spring3.0 全部jar包

    Spring 3.0就这么简单_Part3.pdf

    《Spring 3.0就这么简单》语言简洁,实例丰富,可帮助读者迅速掌握使用Spring3.0进行开发所需的各种技能。...Spring 3.0就这么简单_Part2.pdf Spring 3.0就这么简单_Part3.pdf Spring 3.0就这么简单_Part4.pdf

    spring3.0jar包

    spring3.0 开发包,开发J2ee,值得拥有

    spring3.0帮助文档(包含REST资料)

    Spring 3.0重要特性总结如下: ◆Spring表达式(SpEL):用于bean定义的核心表达式分析器 ◆对基于注释的组件的更多支持:允许通过元注释创建注释的“快捷方式” ◆标准化的依赖性注入注释:对Java中依赖性注入的...

    Spring 3.0就这么简单源代码

    本书主要介绍了Spring 3.0的核心内容,不仅讲解了Spring 3.0的基础知识,还深入讨论了Spring IoC容器、Spring AOP、使用Spring JDBC访问数据库、集成Hibernate、Spring的事务管理、Spring MVC、单元测试、敏捷开发...

    spring3.0新特性

    spring3.0的新特性 以及注解简化mvc让他真正解耦合

    spring3.0MVC注解

    spring3.0MVC注解:spring3.0MVC注解spring3.0MVC注解spring3.0MVC注解

    Spring 3.0就这么简单

    Spring 3.0 作者:陈雄华,林开雄

    spring3.0的API

    spring3.0的API,spring3.0的API

    spring3.0 jar包

    spring3.0 jar包

    Spring3.0新特性

    这是一个详细介绍Spring3.0新特性的文档

    spring3.0 api

    spring3.0 apispring3.0 apispring3.0 apispring3.0 apispring3.0 apispring3.0 apispring3.0 apispring3.0 apispring3.0 apispring3.0 apispring3.0 apispring3.0 apispring3.0 api

    spring3.0 项目源码

    spring3.0 项目源码 spring3.0 注解 的学习,spring mvc 完整项目, 请你好好学习一下!

    Struts2.1+Spring3.0+JPA1.0 .pdf

    Struts2.1+Spring3.0+JPA1.0 .pdfStruts2.1+Spring3.0+JPA1.0 .pdfStruts2.1+Spring3.0+JPA1.0 .pdfStruts2.1+Spring3.0+JPA1.0 .pdfStruts2.1+Spring3.0+JPA1.0 .pdfStruts2.1+Spring3.0+JPA1.0 .pdf

    Spring3.0源码2

    Spring3.0源码2Spring3.0源码2Spring3.0源码2

    spring3.0+spring mvc3.0+mybaits3.0

    spring3.0+spring mvc3.0+mybaits3.0

    Spring3.0学习文档

    Spring3.0学习文档主要讲解的是IOC和AOP 静态代理、动态代理这些内容是Spring3.0中最难理解的重点知识点

    spring 3.0 jar包

    spring 3.0 jar包,下载无需资源分,希望大家能够用得到,另外强烈鄙视那些上传资源不完整,不经过测试的人。

    spring3.0Mvc简单示例

    spring3.0Mvc简单示例 导入即可运行

Global site tag (gtag.js) - Google Analytics