`
cwqcwq
  • 浏览: 75692 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring3.0.M4 新特性介绍

阅读更多
2009年8月10日,spring发布了3.0的第四个里程碑版本,这是继5月6日M3之后的又一次比较大的更新。从发布时间来看,spring在新版本的发布方面的确是非常谨慎,正式版的发布估计要等到今年晚些时候了。废话少说,下面开始看看M4当中有哪些新的东东。(注:文中的大部分代码来自于spring-framework-reference)。

Spring整体架构:



其主要新功能有:
* Spring表达式语言(SpEL)
* REST支持
* SpringMVC annotation 的增强
* 嵌入式数据库支持
* 等等

一、模块组织方式的改变
此次的发行包中未包含此前版本中的spring.jar,在以后也不会提供该jar,spring也支持用户“按需所取”。这也意味着spring已经全面支持OSGi了。
各发行包的大致描述如下:
org.springframework.asm-3.0.0.M4.jar: 提供对ASM(一个字节码框架)的简单封装
org.springframework.expression-3.0.0.M4.jar: spring表达式语言
org.springframework.test-3.0.0.M4.jar: spring提供的一个测试框架
org.springframework.jdbc-3.0.0.M4.jar: 对JDBC的简单封装
org.springframework.orm-3.0.0.M4.jar: 整合第三方的ORM框架,如hibernate,ibatis,jdo,以及spring的JPA实现
org.springframework.transaction-3.0.0.M4.jar: 为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理
org.springframework.web.servlet-3.0.0.M4.jar: SpringMVC
org.springframework.jms-3.0.0.M4.jar:  为简化JMS API的使用而作的简单封装
org.springframework.beans-3.0.0.M4.jar: SpringIoC的基础实现
org.springframework.core-3.0.0.M4.jar: 提供的基础核心功能
org.springframework.context-3.0.0.M4.jar: 提供在基础IoC功能上的扩展服务,此外还提供许多企业级服务的支持,如邮件服务、任务调度、JNDI定位、EJB集成、远程访问、缓存以及各种视图层框架的封装等
org.springframework.aop-3.0.0.M4.jar: Spring的AOP实现
org.springframework.aspects-3.0.0.M4.jar:  提供对AspectJ框架的整合

二、Spring表达式语言(SpEL)介绍
SpEL提供与OGNL、MVEL类似的功能,它可以用在配置文件中,也可以在程序中单独使用,其支持的功能有:字面量表达式、布尔型和关系式操作、正则表达式、类表达式、操作集合、关系操作符、方法调用、变量操作等。
一些实例:

ExpressionParser parser = new SpelExpressionParser();
Expression exp = parser.parseExpression("'Hello World'");
String message = (String) exp.getValue();


message的值为 Hello World

ExpressionParser parser = new SpelExpressionParser();
Expression exp = parser.parseExpression("'Hello World'.concat('!')");
String message = (String) exp.getValue();


message的值为 Hello World!

还可以这样:

Expression exp = parser.parseExpression("'Hello World'.bytes");
byte[] bytes = (byte[]) exp.getValue();

Expression exp = parser.parseExpression("new String('hello world').toUpperCase()");
String message = exp.getValue(String.class);

boolean trueValue = parser.parseExpression("2 == 2").getValue(Boolean.class);
int three = parser.parseExpression("7 % 4").getValue(Integer.class); // 3


用于方法调用:

public abstract class StringUtils {
	public static String reverseString(String input) {
		StringBuilder backwards = new StringBuilder();
		for (int i = 0; i < input.length(); i++){
			backwards.append(input.charAt(input.length() - 1 - i));
		}
		return backwards.toString();
	}
}


ExpressionParser parser = new SpelExpressionParser();
StandardEvaluationContext context = new StandardEvaluationContext();
context.registerFunction("reverseString",
StringUtils.class.getDeclaredMethod("reverseString",
new Class[] { String.class }));
String helloWorldReversed =
parser.parseExpression("#reverseString('hello')").getValue(context, String.class);


在配置文件中的使用:

<bean class="mycompany.RewardsTestDatabase">
	<property name="databaseName" value="#{systemProperties.databaseName}"/>
	<property name="keyGenerator" value="#{strategyBean.databaseKeyGenerator}"/>
</bean>


三、SpringMVC的增强:
几个核心注解都有所增强,如@RequestMapping。
一些实例:

@RequestMapping(value="/owners/{ownerId}", method=RequestMethod.GET)
public String findOwner(@PathVariable String ownerId, Model model) {
	Owner owner = ownerService.findOwner(ownerId);
	model.addAttribute("owner", owner);
	return "displayOwner";
}


匹配请求为 /owners/fred

@RequestMapping(value="/owners/{ownerId}/pets/{petId}", method=RequestMethod.GET)
public String findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) {
	Owner owner = ownerService.findOwner(ownderId);
	Pet pet = owner.getPet(petId);
	model.addAttribute("pet", pet);
	return "displayPet";
}


匹配请求为: /owners/42/pets/21

@Controller
@RequestMapping("/owners/{ownerId}")
public class RelativePathUriTemplateController {
	@RequestMapping(value = "/pets", method = RequestMethod.POST, headers="content-type=text/*")
	public void addPet(Pet pet, @PathVariable String ownerId) {
		// implementation omitted
	}
}
  • 大小: 57.9 KB
分享到:
评论

相关推荐

    Spring-3.0.xsd

    Spring-3.0.xsd还引入了一些新的特性,例如: - **Namespace Handler**:允许自定义命名空间,扩展XML配置,如数据源、任务调度等。 - **Profile**:支持环境相关的配置,可以根据不同的运行环境加载不同的配置。 -...

    spring-beans-3.0.xsd

    然而,随着Spring的发展,`spring-beans-3.1.xsd`在3.1版本中出现,引入了一些新特性以增强灵活性和可读性。例如,`&lt;bean&gt;`元素新增了`lazy-init`属性,可以指定bean是否延迟初始化,这有助于优化应用启动性能。`...

    spring-aop-3.0.xsd spring-beans-3.0 spring-context-3.0.xsd spring-mvc-3.1.xsd

    通过版本号 3.0,我们可以看出这是针对 Spring 3.0 版本的规范。 3. **spring-context-3.0.xsd**: Spring Context 是 Spring 框架的扩展,它提供了更丰富的上下文环境,包括国际化、事件广播、AOP 代理等功能。`...

    spring3.0.jar

    Spring 3.0版本的发布,是该框架历史上的一个重要里程碑,它引入了大量新功能和改进,极大地提升了开发效率和应用性能。本文将深入探讨Spring 3.0.jar包中的关键知识点。 1. **依赖注入(Dependency Injection, DI...

    使用spring3.0开发需要用到的jar包spring3.0.jar

    Spring 3.0是Spring框架的一个重要版本,它在2009年发布,引入了大量新特性,改进了性能,并且对已有功能进行了优化。本文将深入探讨Spring 3.0的核心知识点,以及如何使用它进行开发。 一、Spring 3.0核心特性 1....

    基于注解的Spring_3.0.x_MVC

    基于注解的 Spring 3.0.x MVC 基于注解的 Spring 3.0.x MVC 是指在 Spring 3.0.x 中使用基于注解的方式来配置和实现 MVC 模式的应用程序。这种方式不同于传统的 XML 配置文件方式,而是使用 Java 注解来标注 Bean ...

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

    首先,让我们回顾一下Spring 3.0.x MVC的主要新特性: 1. **注解驱动的控制器**:Spring 3.0引入了@Controller和@RequestMapping注解,使得开发者可以直接在类或方法级别定义请求映射,无需像2.5那样依赖XML配置。 ...

    spring3.0的xsd文件.rar

    Spring 3.0是Spring框架的一个重要版本,它引入了许多新特性和改进,极大地提升了开发效率和灵活性。XSD(XML Schema Definition)文件在Spring框架中扮演着核心角色,它们定义了Spring配置文件的结构和规则,使得...

    spring-mvc-3.0.xsd

    spring-mvc-3.0.xsd

    spring 3.0 jar 所有开发包及开发项目实例

    spring 3.0 jar 最新所有开发包及开发项目实例 spring 3.0已经全面支持OSGi了。 各发行包的大致描述如下: org.springframework.asm-3.0.0.M4.jar: 提供对ASM(一个字节码框架)的简单封装 org.springframework....

    spring 3.0 jar 包

    这个版本引入了许多新特性,优化了性能,并提供了更好的开发者体验。以下是一些关于Spring 3.0及其jar包的关键知识点: 1. **依赖注入 (Dependency Injection, DI)**:Spring的核心特性之一,允许对象之间的依赖...

    commons-httpclient-3.0.jar JAVA中使用HttpClient可以用到

    《JAVA中使用HttpClient:commons-httpclient-3.0.jar详解》 在JAVA开发中,进行HTTP请求时,Apache的HttpClient库是一个不可或缺的工具。本文将深入解析`commons-httpclient-3.0.jar`,它是HttpClient的一个重要...

    spring-aop-3.0.xsd

    spring-aop-3.0.xsd

    spring-framework-3.0.0.M4-with-docs

    spring3.0.M4 org.springframework.asm-3.0.0.M4.jar: 提供对ASM(一个字节码框架)的简单封装 org.springframework.expression-3.0.0.M4.jar: spring表达式语言 org.springframework.test-3.0.0.M4.jar: ...

    dwr3.0.jar_ajax

    DWR3.0的主要特性包括: 1. **安全性和控制**:DWR3.0提供了更严格的权限控制,可以限制哪些类和方法可以从JavaScript调用,以确保应用的安全性。 2. **AJAX支持**:DWR的核心功能之一是简化AJAX(Asynchronous ...

    spring3.0jar包

    Spring 3.0是其一个重要版本,带来了许多新特性与改进,使得它更加灵活、高效且易于使用。 **主要模块解析:** 1. **org.springframework.context-3.0.5.RELEASE.jar**:这是Spring的核心模块,提供了上下文支持,...

    spring 3.0 jar spring最新开发包

    Spring 3.0是Spring框架的一个重要版本,它在2009年发布,为Java开发者带来了许多新特性和改进。这个"spring 3.0 jar spring最新开发包"包含了该版本的所有核心组件和库,使得开发者能够进行高效且灵活的Java应用...

    org.springframework.web.servlet-3.0.0.M4.jar

    在3.0.0.M4版本中,Spring MVC引入了许多新特性,提升了性能和开发效率。 1. **DispatcherServlet**:这是Spring MVC的入口点,它负责接收HTTP请求,并根据配置分发到相应的处理器。DispatcherServlet是Servlet的...

Global site tag (gtag.js) - Google Analytics