`

Spring4.0给我们带来什么?

 
阅读更多
JDK8
对JDK8的支持,这个目前来说还是探索性质,毕竟Java 8自己都还没有GA,而且应该没有公司会在目前的情况下使用JDK8做产品开发。因此,暂时可忽略。

Groovy Bean Definition DSL
即可以通过Groovy class来配置Bean,以及Bean之间的相互依赖,即Spring2时代推出的xml配置,Spring3推出的Annotation配置,Spring4为配置方式又增添了一位新成员Groovy DSL。举个栗子:
 import org.hibernate.SessionFactory
 import org.apache.commons.dbcp.BasicDataSource

 beans {
     dataSource(BasicDataSource) {
         driverClassName = "org.hsqldb.jdbcDriver"
         url = "jdbc:hsqldb:mem:grailsDB"
         username = "sa"
         password = ""
         settings = [mynew:"setting"]
     }
     sessionFactory(SessionFactory) {
         dataSource = dataSource
     }
     myService(MyService) {
         nestedBean = { AnotherBean bean ->
             dataSource = dataSource
         }
     }
 }
DSL配置在概念上和其他配置方式是一样的,只是提供了一种更简洁的语法,这个方式的实现得益于Grails的BeanBuilder,所有支持的DSL语法也来自于这儿:http://grails.org/doc/latest/guide/spring.html#theBeanBuilderDSLExplained, 如果你想追踪这个想法的起源,可以看看这篇文章:http://spring.io/blog/2007/11/29/spring-dynamic-language-support-and-a-groovy-dsl/ 另外,这儿有一篇非常好的文章详细描述了如何使用该特性:http://jinnianshilongnian.iteye.com/blog/1991830。总的来说, 个人觉得使用DSL的配置方式,就像Build工具界的Gradle之于Maven,它极大的灵活了Spring的配置文件,可以通过groovy脚本实现非常复杂的Bean定义和依赖关系,甚至玩出很多魔幻语法,但与之对应的是, 我们是否应该在配置文件里面玩那么复杂?不过,多一个选择总是好的,让大家有得挑。

核心容器功能的改进
这部分是应该是当前Spring用户最关注点:

  • 支持泛型依赖注入,即对自动注入依赖的识别扩展到了泛型的类,以前,如果有GenericInterface<A>, GenericInterface<B>两个Bean时,当想注入GenericInterface<A>依赖时, 容器是无法识别的,你需要使用@Qualifier指定具体的bean id,Spring4.0中则可以直接找到对应的Bean。这个特性对程序员的好处,请查看这篇文章:http://jinnianshilongnian.iteye.com/blog/1989330
  • 使用meta-annoation方式定义Annotation时, 该Annotation可以访问源Annotation的部分属性,以更加方便的定制自己想要的Annotation。
  • Bean依赖注入到Map和List,Array中, 即提供了一种方式获取到某个类型的所有Bean,当注入到Map中时, Key为Bean的名字,value为Bean实例。

 @Autowired
private MovieCatalog[] movieCatalogs;
….
@Autowired
private Set<MovieCatalog> movieCatalogs;
….
@Autowired
private Map<String, MovieCatalog> movieCatalogs;
如果,你对Bean在Array或List中的位置有特殊需求,Spring4.0还提供了@Order annotation和Ordered接口来定义Bean注入到Array/List中的顺序.



Web开发改进


测试框架改进
  • 几乎所有spring-test模块下的annotation(比方说:@ContextConfiguration, @WebAppConfiguration, @ContextHierarchy, @ActiveProfiles)都可以做元annoation, 这样开发者就可以更方便得定制自己的annotation,以增强代码表现力和减少多个Test之间的重复代码。
  • 增加了一种更灵活的ActiveProfiles的决定方式,定制一个ActiveProfilesResolver并把它设置到@ActiveProfiles的resolver属性上。
  • 添加了SocketUtils类帮忙扫描本地机器上的可用Socket端口,当需要在本地起一个mock server时这个功能非常实用。
  • org.springframework.mock.web包下的Mock类都与Servlet 3.0兼容了
13
2
分享到:
评论
4 楼 ningandjin 2014-01-20  
江南白衣 写道
谢谢Spring 4.0 What is new的完整翻译啊...可以发到更多地方
白衣兄助攻一下?
3 楼 江南白衣 2014-01-18  
谢谢Spring 4.0 What is new的完整翻译啊...可以发到更多地方
2 楼 ningandjin 2013-12-24  
manong_java 写道
貌似用到的特性都非常的少, 不过websoket是个关注的方向 可以介绍下websocket方面的
WebSocket感觉就是把Ajax调用弄到4层的TCP协议上, 这样就不用走7层的HTTP协议,对性能有帮助。
1 楼 manong_java 2013-12-23  
貌似用到的特性都非常的少, 不过websoket是个关注的方向 可以介绍下websocket方面的

相关推荐

    spring4.0框架demo

    2. WebSocket支持:Spring 4.0引入了对WebSocket协议的支持,提供了更高效、实时的通信机制,为Web应用带来了新的交互体验。 3. 改进的类型安全:在Spring 4.0中,依赖注入(DI)更加类型安全,降低了因配置错误...

    Spring4.0 jar包

    总结来说,Spring4.0带来了许多改进和新特性,包括对Java 7和Java EE 7的支持、反应式编程、增强的MVC功能、数据访问层的优化、测试工具的升级以及安全和日志方面的改进。理解并掌握这些知识点,将有助于开发者更...

    spring4.0完整jar包

    Spring4.0版本在之前的基础上做了很多改进和优化,为开发者带来了更高效、更强大的功能。这个"spring4.0完整jar包"包含了Spring4.0框架的所有核心组件和相关模块,使得开发者能够一站式获取所有必要的库,方便集成到...

    spring4.0 jar包

    Spring 4.0是该框架的一个重要版本,带来了许多改进和新特性,适应了当时不断发展的Java生态系统。 在Spring 4.0中,主要关注了以下几个关键领域的改进: 1. **Java 8支持**:Spring 4.0引入了对Java 8的全面支持...

    spring4.0.x源码

    Spring 框架是 Java 开发中最广泛应用的轻量级框架之一,它的4.0.x版本在2013年发布,带来了许多重要的改进和新特性。本文将深入解析 Spring 4.0.x 的核心概念、主要改进以及关键组件。 一、Spring 概述 Spring 是...

    spring 4.0.x源码

    Spring框架4.0.x是Java开发领域中一个重要的里程碑,它带来了许多显著的改进和新功能,以适应不断发展的技术和编程需求。以下是关于Spring 4.0.x版本的关键知识点: 1. **Java 8支持**:Spring 4.0.x是首个全面支持...

    spring4.0 全部jar包 spring4.0

    综上所述,Spring 4.0不仅带来了对最新技术的支持,还在许多方面进行了优化和增强,为开发者提供了更强大、灵活的工具集,以应对现代企业级应用开发的需求。无论是在传统的JDBC操作、面向切面编程,还是在响应式编程...

    官方 Spring4.0 jar包

    Spring 4.0作为其重要的一个版本,引入了许多新特性和改进,为开发者带来了更高效、更灵活的编程体验。下面将详细阐述Spring 4.0的核心知识点: 1. **依赖注入(Dependency Injection, DI)**:Spring 4.0继续强化了...

    Spring4.0+Hibernate4.0+SpringMVC4.0整合框架

    Spring4.0、SpringMVC4.0和Hibernate4.0是Java开发中非常重要的三个框架,它们分别在依赖注入、MVC应用和对象关系映射方面提供了强大的支持。SSH4整合框架是这三个组件的集成,旨在提升企业级应用的开发效率和可维护...

    spring4.0约束.zip

    这个"spring4.0约束.zip"压缩包很可能是包含了与Spring 4.0版本相关的约束配置、文档或者示例代码,用于帮助开发者理解和应用Spring框架中的依赖注入(DI)和控制反转(IoC)原则。在这里,我们将深入探讨Spring 4.0...

    spring4.0库

    Spring 4.0 是一个重要的Java企业级应用开发框架,由Pivotal Software公司维护,以其模块化设计、强大的依赖注入(DI)和面向切面编程(AOP)能力著称。这个压缩包包含了Spring框架4.0版本的核心组件,为开发者提供...

    spring4.0+hibernate4.2

    Spring4.0引入了对Java 8的支持,包括Lambda表达式和日期时间API,这为开发者带来了更简洁的代码和更好的性能。此外,Spring4.0还增强了对WebSocket的支持,允许实时通信,提升了Web应用的交互性。AOP(面向切面编程...

    struts2.5+spring4.0jar包

    Spring4.0作为Spring框架的一个里程碑,带来了许多新特性和优化。其中最重要的改进之一是对Java 8的支持,包括Lambda表达式和日期时间API。Spring4.0加强了对WebSocket的支持,允许实时双向通信,为构建现代Web应用...

    spring框架4.0

    Spring框架4.0是Java开发中的一个里程碑版本,它带来了许多增强特性和改进,旨在提升开发者体验和应用程序的性能。这个版本对核心容器、数据访问/集成、Web、AOP(面向切面编程)、测试等多个模块进行了更新。下面将...

    spring 4.0.zip

    Spring 4.0是Spring框架的一个重要里程碑,它在2013年发布,带来了许多增强和改进。这个"spring 4.0.zip"压缩包显然包含了与Spring MVC 4.0相关的Java类库(jar包),使得开发者能够构建基于Spring的Web应用程序。让...

    spring4.0包

    综上所述,"spring4.0包"包含了许多关键的Java开发工具和特性,极大地简化了Java应用的开发流程,提高了开发效率和代码质量。在使用"spring-framework-4.0.0.M2"这个压缩包时,你可以享受到这些优点,并利用它们构建...

    spring4.0 包

    综上所述,Spring 4.0带来了许多关键改进,尤其是在现代Web应用开发中所需的特性,如WebSocket、异步处理、反应式编程和Java 8支持等。这些变化极大地提升了Spring框架在现代企业级应用中的适用性。

    spring4.0 mybaties

    当Spring 4.0与MyBatis结合使用时,可以实现数据访问的高效管理,为开发者带来极大的便利。本文将详细介绍如何在Spring 4.0环境下整合MyBatis,以及它们的协同工作原理。 1. **Spring 4.0概述** Spring 4.0是...

Global site tag (gtag.js) - Google Analytics