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

spring 学习日记 - 基于annotation的spring mvc 1

阅读更多
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的参数

在下一篇文章中
6
6
分享到:
评论
1 楼 sgfgh 2008-03-21  
ms可以这样
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
        p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/>

相关推荐

    spring-mvc-4.2.xsd.zip

    总之,`spring-mvc-4.2.xsd`是Spring MVC 4.2版本的核心配置文件,它定义了所有可用的XML配置元素,是理解和使用Spring MVC进行Web应用开发的基础。同时,提供本地的xsd文件可以显著提高开发过程中的便捷性和效率。

    SpringMVC源码总结(三)mvc:annotation-driven和mvc:message-converters简单介绍

    在Spring MVC框架中,`mvc:annotation-driven`和`mvc:message-converters`是两个非常重要的元素,它们在处理基于注解的控制器和数据转换方面起着关键作用。本篇文章将深入探讨这两个组件的工作原理以及如何在实际...

    spring练习项目.7z

    资料包含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-...

    SpringMVC源码总结(二)mvc:mvc:annotation-driven背后的那些事

    在Spring MVC框架中,`mvc:annotation-driven`是Spring MVC配置中的一个重要元素,它使得我们的应用能够支持基于注解的控制器、数据绑定、格式化转换器和服务端验证等功能。这篇博客将深入探讨`mvc:annotation-...

    拦截器与冲突解决

    1. **配置顺序**:Spring MVC按照注册拦截器的顺序执行它们,如果`&lt;mvc:annotation-driven /&gt;`配置在拦截器之后,那么可能会导致拦截器无法正常工作,因为Spring可能已经处理了请求,而没有交给拦截器。 2. **命名...

    spring_MVC源码

    14. &lt;bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /&gt; 15. 16. &lt;!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 --&gt; 17. &lt;bean class="org....

    Annotation Based Spring MVC Basics

    第二步,我们需要在WEB-INF目录下创建名为`spring-mvc-servlet.xml`的文件。文件名应以`DispatcherServlet`的`servlet-name`开头。 第三步,基本的`spring-mvc-servlet.xml`配置文件可能如下所示: ```xml ...

    Spring-framework-4.3

    《Spring框架4.3详解——基于Javadoc-API的官方文档》 Spring框架是Java开发中的一个核心组件,尤其在企业级应用中广泛使用。本文将深入探讨Spring框架4.3版本,结合其提供的Javadoc-API文档,帮助开发者更好地理解...

    Spring-MVC-3.0.rar_Java spring mvc_spring mvc_spring ppt

    **Spring MVC 3.0详解** Spring MVC是Spring框架的一部分,专为构建Web应用程序而设计。这个名为"Spring MVC 3.0.rar"的压缩包包含了一份关于Spring MVC 3.0版本的实战指南PPT,是Java开发者深入理解Spring MVC架构...

    spring-framework-3.2.4.RELEASE-dist.jar包

    1. **Java配置增强**:Spring 3.2.4引入了更多的Java配置选项,使得基于Java的配置更加简洁和强大。 2. **Web Socket支持**:增加了对WebSocket协议的支持,方便构建实时Web应用。 3. **性能优化**:对核心容器...

    spring-code-based

    Spring MVC 是 Spring 框架的重要组成部分,它为构建基于 Java 的 Web 应用程序提供了一种模型-视图-控制器(MVC)架构。本篇将深入探讨 Spring MVC 的核心概念、工作原理以及源码分析,旨在帮助开发者更高效地理解...

    spring-3-mvc-hello-world-example-annotation

    在本地运行该项目$ 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 ...

    spring-framework-2.5.6-with-dependencies

    1. **依赖注入增强**:在2.5.6版本中,Spring对依赖注入进行了优化,支持了基于注解的配置,如@Autowired、@Qualifier等,使得代码更简洁。 2. **XML配置简化**:引入了Namespace,比如 `&lt;context:component-scan&gt;`...

    Spring MVC Annotation验证的方法

    Spring MVC Annotation验证方法 Spring MVC 框架提供了多种验证方法,其中一种常用的方式是使用Annotation验证。本文将详细介绍 Spring MVC Annotation验证的方法,包括使用 Spring MVC 自带的 Annotation 验证和...

    Spring MVC Beginner-s Guide.pdf

    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-framework-reference

    Spring框架是一个开源的Java平台,它为现代基于Java的企业应用程序开发提供全面的编程和配置模型。Spring框架包含了许多模块,这些模块覆盖了各种开发需求,从核心容器(Core Container)到数据访问/集成(Data...

    spring-boot-reference.pdf

    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-framework-2.5.5

    在Spring 2.5.5中,注解驱动的开发(Annotation-driven development)已经变得非常流行,比如使用`@Autowired`、`@Component`、`@Service`、`@Repository`和`@Controller`等注解,简化了组件扫描和自动装配的过程。...

    spring源码spring-framework-4.2.5.RELEASE

    7. **Model-View-Controller**:Spring MVC遵循MVC模式,`org.springframework.web.bind.annotation`包中的注解如@RequestMapping、@RequestParam等,用于定义控制器方法的映射和参数绑定。 四、Transaction管理 8...

Global site tag (gtag.js) - Google Analytics