`
rbible
  • 浏览: 50379 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring 3.2三个值得关注的新特性

 
阅读更多

不得不承认的是,在目前的web应用开发中,Spring的应用越来越广泛,其地位变得相当重要。而在最近推出的Spring 3.2版本中,又引入了一些新的值得关注的特性。本文中将介绍其中一些值得关注的新特性。

一 不再需要web.xml

 在新的Spring 3.2中,可以不再需要web.xml这个文件了,这得益于Servlet 3.0的新特性。

其中,可以使用@WebServlet在需要调用的servlet中,使用注解去设置servlet中的映射关系。这样的话,就可以不再象以往那样要通过在web.xml中对servlet进行配置,十分方便。

此外,Servlet 3.0提供了既能在容器中动态注册servlet的方法,也提供了通过实现

ServletContainerInitializer接口的方法实现在容器启动阶段为容器动态注册Servlet、Filter和listeners。容器会在应用的启动阶段,调用所有实现ServletContainerInitializer接口类中的onStartup()方法。而Spring 3.2中,则进一步简化了这点,只需要实现WebApplicationInitializer接口就可以了,其中提供了一个相关的实现类--AbstractContextLoaderInitializer,它可以动态注册DispatcherServlet。这意味着,只要spring-webmvc.jar放置在web应用的web-inf/lib中,就可以调用Dispatcher servlet了。可以参考如下的例子(来自Spring文档):

 

public class MyWebApplicationInitializer implements WebApplicationInitializer { 
 
    @Override 
    public void onStartup(ServletContext container) { 
        ServletRegistration.Dynamic registration = container.addServlet("dispatcher", new DispatcherServlet()); 
        registration.setLoadOnStartup(1); 
        registration.addMapping("/example/*"); 
    } 
 
} 
 

 

二 支持Java编程式配置

在Spring mvc 3.2中,一个不错的特性就是在之前版本中支持使用Java代码配置各种依赖注入的基础上,进一步简化了配置。关于使用Java编程式配置的好处,可以通过下面这个链接文章的介绍去学习

http://blog.frankel.ch/consider-replacing-spring-xml-configuration-with-javaconfig)。
在Spring mvc 3.2中,提供了AbstractContextLoaderInitialize的一个子类AbstractAnnotationConfigDispatcherServletInitializer去实现零XML配置的效果,只需要创建的类继承AbstractAnnotationConfigDispatcherServletInitializer就可以了,如下代码所示:

 

public  
 
class  
 
SugarSpringWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { 
 
    @Override 
    protected Class<?>[] getRootConfigClasses() { 
        return new Class[] { JavaConfig.class }; 
    } 
 
    @Override 
    protected Class<?>[] getServletConfigClasses() { 
        return new Class[] { WebConfig.class }; 
    } 
 
    @Override 
    protected String[] getServletMappings() { 
        return new String[] { "/" }; 
    } 
 
} 
 

 

三  功能更强大的Spring Test 框架

现在,单元测试显得越来越重要了,每一个类都建议做好对应的单元测试。在Spring 3.2版本之前,如果要对Spring MVC进行单元测试的话,必须显式去调用某个控制器类中的某个方法,而不能直接单元测试相关的mapping映射。而在Spring mvc 3.2中,重新整合和增强了测试框架的功能,支持直接用/*这样的映射方式去测试某个控制器中的类。同时,之前的开源项目(https://github.com/SpringSource/spring-test-mvc)也被收录到Spring mvc 3.2中去了。此外,还新增加了对返回(return),重定向(redirect)model等的测试改进,下面是一个例子:

 

public class SayHelloControllerIT extends AbstractTestNGSpringContextTests { 
    private MockMvc mockMvc; 
    @BeforeMethod 
    public void setUp() { 
        mockMvc = webAppContextSetup((WebApplicationContext) applicationContext).build();
    } 
    @Test(dataProvider = "pathParameterAndExpectedModelValue") 
    public void accessingSayhelloWithSubpathShouldForwardToSayHelloJspWithModelFilled(String path, String value) throws Exception { 
        mockMvc.perform(get("/sayHello/Jo")).andExpect(view().name("sayHello")).andExpect(model().attribute("name", "Jo")); 
    } 
} 
 

 

本文的示例代码可以在: http://blog.frankel.ch/wp-content/resources/spring-3-2-sweetness/spring-sweet-1.0.0.zip中下载。

 

转自:http://developer.51cto.com/art/201306/401316.htm

分享到:
评论

相关推荐

    spring v3.2源码

    spring3.2的源代码,至于为什么要下载spring3.2的源代码呢? 个人觉得spring3.2的源代码比较好编译,没啥脾气,像我之前下载的spring的最新版本源代码,还有spring4.0的源代码,不论是使用jdk1.6还是1.7甚至是1.8编译...

    spring3.2 源码 jar包

    spring3.2 源码jar 用于关联我们项目中的jar包,这样就可以在项目中看到spring的源码的,具体怎么使用请参考我的博客 http://blog.csdn.net/lzxadsl

    spring3.2中文文档

    spring3.2框架是一个轻量级的解决方案和一个潜在的 一站式为构建企业级应用程序。 然而, spring是模块化的,允许你只使用那些你需要的部分, 无需引入其余。 您可以使用IoC容器, Struts在上,但是你也可以只使用 ...

    spring3.2参考文档

    spring使用参考文档,从官网下载

    spring3.2 编译后源码

    spring3.2 编译后源码, spring3.2 编译后源码, spring3.2 编译后源码,

    struts2+Spring2.5+Spring3.2)实现登录.

    struts2+Spring2.5+Spring3.2)实现登录.struts2+Spring2.5+Spring3.2)实现登录.struts2+Spring2.5+Spring3.2)实现登录。

    spring3.2jar包

    这是最新的spring jar包,这里包含了springMVC STRUTS HIBERNIAATE 等等优秀的组合

    spring3.2 源码编译后需要的jar

    spring3.2 源码编译后需要的jar,spring3.2 源码编译后需要的jar,spring3.2 源码编译后需要的jar

    spring3.2-api.chm

    spring3.2-api.chm格式,本人在网上找了好多chm格式的,都不正常现在,没有办法自己找了一个工具打包成chm格式

    spring3.2源码包

    Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架

    spring3.2 源码编译后需要的jar2

    spring3.2 源码编译后需要的jar,spring3.2 源码编译后需要的jar,spring3.2 源码编译后需要的jar

    Spring3.2(Spring-Framework-Reference 3.2)

    最新的Spring3.2 参考文档,高清版,适合于Kindle看

    spring3.2最全jar包

    spring3.2最全jar包,开发工具,eclipse,与其他开发包兼容

    spring3.2的官方文档

    spring3.2的官方文档,最权威的文档,开发者研究spring的最好入门资料

    Spring3.2包和配置文件

    Spring3.2包,有分类,分为IOC AOP MVC dao

    spring3.2最新文档

    最新的spring3.2文档,spring3.2 spring.chm spring3.2.chm 本人从官网下载制作的chm官方spring文档

    Spring 3.2 Eclipse 源文件

    Spring 3.2 Eclipse 源文件,从官网下的源文件,已经生成eclipse项目,可直接导入

    spring3.2与Ibatis整合

    spring3.2与Ibatis整合,在servlet中获取bean

    Spring3.2 AOP extra jar

    Spring3.2 版本中已不再提供第三放jar包,而在实际“AOP”应用中需要引入其他的jar包;此为,已知的jar包(最新版本)。

Global site tag (gtag.js) - Google Analytics