Spring 2.5已经出来好久了,可是一直都没有关注过。最近才开始看spring2.5的reference,发现该版本提供了基于annotation的spring mvc开发功能。
一直都认为spring没有提供对Java5特性的特别支持是一个遗憾,2.5版本的这些改进,算是对这个遗憾的弥补吧。不过我估计短时间内2.5版本提供的这些特性是不可能用到我们的正式项目中去的了。毕竟2.0风格的开发已经是比较成熟的了。
好了,现在开始介绍基于annotation的spring mvc开发。
虽然说是基于annotation的开发,但是我们仍然需要对几个基本的东西在xml里面配置一下,不可能说完全拜托xml配置文件。首先,我们需要在spring的配置文件中指定几个基本的配置:
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd"
default-autowire="byName">
<context:property-placeholder location="WEB-INF/config/globalConfig.properties"/>
<context:component-scan base-package="fred.web.pda.web.controller"/>
</beans>
这些配置主要指定了三个东西。
1.一个是context命名空间,这个东西是2.5.1里面新加上来的。有意思的是,如果指定了这个熟悉,那么就必须吧xmlns="http://www.springframework.org/schema/beans对应指定为http://www.springframework.org/schema/beans/spring-beans-2.5.xsd,否者myeclipse的辅助工具会报错说找不到<context:property-placeholder>的定义。
2.然后是必须指定default-autowire="byName"。这个属性的意思是对Controller里面的属性依赖注入的时候,会自动按照名称来进行匹配。
3.是<context:component-scan base-package="fred.web.pda.web.controller"/>这个意思是spring需要对指定的报里面找到的annotation进行处理。
有了上面的配置,其他的东西我们都可以用annotation来配置了。
现在,我们开发写第一个Controller。我喜欢用MultiActionController。这里就以此为例。
@Controller
public class AuthenController {
/**
* 返回登录页面的视图名。
*/
@RequestMapping("/authen/toLogin.do")
public String toAuthen() {
return "authen/authen";
}
@RequestMapping("/authen/toLogin.do")
public String authen(Model model) {
return "authen/authen";
}
}
他有一下几个特点:
1. 注意到这个Controller不需要继承任何基类,我们给它添加上@Controller标注,表示它是一个Controller。
2.要支持MultiActionController很简单,我们给每一个action方法添加上@RequestMapping("/authen/toLogin.do")即可。
3.返回视图的方式多样化。对这一点,我们在后面详谈。
4.访问HttpServletRequest参数的方式多样化。这一个在下一篇文章里面详谈。
对于上面的第三点,就是返回视图,我们有两个方式:
1. 继续在xml里面指定viewResolver,然后action方法不要返回String,而是像在老的Controller里面做的那样,返回一个ModelAndView对象。
2.完全不在xml文件里面配置,而是在action方法中返回一个String类型的参数。这个参数就是要去的视图。但是也发现了一个问题,就是旧的配置方式可以把表现层的东西放到WEB-INF目录底下,来杜绝直接通过浏览器地址栏的访问,可是现在好像不行了。暂时还没有发现替代的方法。比如,我的authen.jsp页面的存放路径是${ProjectName}/WEB-INF/view/jsp/authen/authen.jsp,那么在使用xml配置的方式中,我只要在action方法中返回new ModelAndView("authen/authen");就可以了,这个路径的前缀和后缀可以在viewResolver中配置就好。但是现在没有了xml中的viewResolver,我们只能通过类似于 return "${ProjectName}/view/jsp/authen/authen.jsp"来返回视图,这时候会发现无法访问放在/WEB-INF目录中的视图。
在下一篇文章中介绍如何获取来自HttpServletRequest的参数
在下一篇文章中
分享到:
相关推荐
总之,`spring-mvc-4.2.xsd`是Spring MVC 4.2版本的核心配置文件,它定义了所有可用的XML配置元素,是理解和使用Spring MVC进行Web应用开发的基础。同时,提供本地的xsd文件可以显著提高开发过程中的便捷性和效率。
在Spring MVC框架中,`mvc:annotation-driven`和`mvc:message-converters`是两个非常重要的元素,它们在处理基于注解的控制器和数据转换方面起着关键作用。本篇文章将深入探讨这两个组件的工作原理以及如何在实际...
资料包含spring-iocdi-annotation-document,iocdi-annotation-mvc,iocdi-xml-extend,iocdi-annotation-extend proxy,jdkproxy-transaction,jdkproxy-salary,day02-itheima11-spring-08-cglibproxy,day02-itheima11-...
在Spring MVC框架中,`mvc:annotation-driven`是Spring MVC配置中的一个重要元素,它使得我们的应用能够支持基于注解的控制器、数据绑定、格式化转换器和服务端验证等功能。这篇博客将深入探讨`mvc:annotation-...
1. **配置顺序**:Spring MVC按照注册拦截器的顺序执行它们,如果`<mvc:annotation-driven />`配置在拦截器之后,那么可能会导致拦截器无法正常工作,因为Spring可能已经处理了请求,而没有交给拦截器。 2. **命名...
14. <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> 15. 16. <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 --> 17. <bean class="org....
第二步,我们需要在WEB-INF目录下创建名为`spring-mvc-servlet.xml`的文件。文件名应以`DispatcherServlet`的`servlet-name`开头。 第三步,基本的`spring-mvc-servlet.xml`配置文件可能如下所示: ```xml ...
《Spring框架4.3详解——基于Javadoc-API的官方文档》 Spring框架是Java开发中的一个核心组件,尤其在企业级应用中广泛使用。本文将深入探讨Spring框架4.3版本,结合其提供的Javadoc-API文档,帮助开发者更好地理解...
**Spring MVC 3.0详解** Spring MVC是Spring框架的一部分,专为构建Web应用程序而设计。这个名为"Spring MVC 3.0.rar"的压缩包包含了一份关于Spring MVC 3.0版本的实战指南PPT,是Java开发者深入理解Spring MVC架构...
1. **Java配置增强**:Spring 3.2.4引入了更多的Java配置选项,使得基于Java的配置更加简洁和强大。 2. **Web Socket支持**:增加了对WebSocket协议的支持,方便构建实时Web应用。 3. **性能优化**:对核心容器...
Spring MVC 是 Spring 框架的重要组成部分,它为构建基于 Java 的 Web 应用程序提供了一种模型-视图-控制器(MVC)架构。本篇将深入探讨 Spring MVC 的核心概念、工作原理以及源码分析,旨在帮助开发者更高效地理解...
在本地运行该项目$ git clone https://github.com/mkyong/spring3-mvc-maven-annotation-hello-world$ mvn jetty:run 访问http://localhost:8080/spring3 ### 3。 将此项目导入Eclipse IDE $ mvn eclipse:eclipse ...
1. **依赖注入增强**:在2.5.6版本中,Spring对依赖注入进行了优化,支持了基于注解的配置,如@Autowired、@Qualifier等,使得代码更简洁。 2. **XML配置简化**:引入了Namespace,比如 `<context:component-scan>`...
Spring MVC Annotation验证方法 Spring MVC 框架提供了多种验证方法,其中一种常用的方式是使用Annotation验证。本文将详细介绍 Spring MVC Annotation验证的方法,包括使用 Spring MVC 自带的 Annotation 验证和...
With the power of annotation-based configuration, Spring MVC makes web application development easy for developers. This book is a great companion for beginners who want to learn Spring MVC. With ...
Spring框架是一个开源的Java平台,它为现代基于Java的企业应用程序开发提供全面的编程和配置模型。Spring框架包含了许多模块,这些模块覆盖了各种开发需求,从核心容器(Core Container)到数据访问/集成(Data...
Auto-configured Spring REST Docs Tests with Mock MVC Auto-configured Spring REST Docs Tests with REST Assured 43.3.20. User Configuration and Slicing 43.3.21. Using Spock to Test Spring Boot ...
在Spring 2.5.5中,注解驱动的开发(Annotation-driven development)已经变得非常流行,比如使用`@Autowired`、`@Component`、`@Service`、`@Repository`和`@Controller`等注解,简化了组件扫描和自动装配的过程。...
7. **Model-View-Controller**:Spring MVC遵循MVC模式,`org.springframework.web.bind.annotation`包中的注解如@RequestMapping、@RequestParam等,用于定义控制器方法的映射和参数绑定。 四、Transaction管理 8...