`
Josh_Persistence
  • 浏览: 1635090 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

Spring3.X @MVC - (一)重要的配置文件

阅读更多
Spring MVC

前言:

一、总共有10节,也就是10篇博客来讲述Spring的MVC,几乎涵盖了所有Spring MVC中的内容。

 

二、我创建的例子是一个球场预订系统,例子我已经测试调试通过,是一个Maven的project,包含一个Parent project:wsheng-spring-base和一个子Module:wsheng-spring-mvc.

 

三、在Eclipse中直接import maven的project即可,会同时引入上诉两个project的。

 

四、如果你没有耐心,可以不必往下学习,因为网上有很多例子,但是都是讲的Spring MVC很少的面,而且你可以快速的上手,但如果你想真正了解Spring MVC中的很多细节,就可以慢慢的去看博客(从第一节到第十节),如果有什么问题,欢迎信息告诉我。

 

五、学习的方法是你可以先将源码导入到eclipse中,然后根据博客上的内容,对照源码,慢慢消化,这是个漫长的过程,但是会帮助你了解很多Spring MVC的细节。

===================================================================================


    Spring MVC是Spring框架最重要的模块之一,它构建于强大的Spring IOC容器之上,然后可大量使用容器的特性简化其配置。

    模式-视图-控制器(MVC)是UI设计模式中常见的设计模式。这种模式主要用于区分应用程序中的模式、视图和控制器三种角色。MVC模式的核心思想是分离业务逻辑和UI,MVC3层各自扮演自己的角色,独立修改,互不影响。其中模式层负责封装视图层展示用的数据,视图层只负责显示数据,不包含任何的业务逻辑,控制器负责接收用户请求并调用后端的服务进行业务逻辑的处理。

    Spring MVC3层模式中,模式层通常包含服务层处理的或者是持久化层存储的领域对象组成。视图层可以是JSP,PDF,Flex,Excel等。

一、有例子才是王道-Spring MVC开发简单的web应用(球场预定系统)



参照附件源码:

1. 解决方法:
在Spring2.5之前,要实现控制器层,只能写一个类继承AbstractController或者实现相关的接口。Spring2.5-Spring3.x之间,既可以继承AbstractController类也可以实现相关的接口,也可以使用强大的注解@Controller功能,Spring3.0之后,只能使用注解@Controller功能。

2. 相关的领域对象(Model层)
1). 预订实体类
package com.wsheng.spring.domain;

import java.util.Date;

public class Reservation {

    private String courtName;
    private Date date;
    private int hour;
    private Player player;
    private SportType sportType;

    public Reservation() {}

    public Reservation(String courtName, Date date, int hour, Player player, SportType sportType) {
        this.courtName = courtName;
        this.date = date;
        this.hour = hour;
        this.player = player;
        this.sportType = sportType;
    }

    public String getCourtName() {
        return courtName;
    }

    public Date getDate() {
        return date;
    }

    public int getHour() {
        return hour;
    }

    public Player getPlayer() {
        return player;
    }

    public SportType getSportType() {
        return sportType;
    }

    public void setCourtName(String courtName) {
        this.courtName = courtName;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public void setHour(int hour) {
        this.hour = hour;
    }

    public void setPlayer(Player player) {
        this.player = player;
    }

    public void setSportType(SportType sportType) {
        this.sportType = sportType;
    }
}

2)运动项目实体类
package com.wsheng.spring.domain;

/**
*
* @author Wang Sheng(Josh)
*
*/
public class SportType {

    private int id;
    private String name;

    public SportType() {}

    public SportType(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }
}

3)球员实体类
package com.wsheng.spring.domain;

/**
* Player(球员)
* @author Wang Sheng(Josh)
*
*/
public class Player {

    private String name;
    private String phone;

    public Player() {}

    public Player(String name, String phone) {
        this.name = name;
        this.phone = phone;
    }

    public String getName() {
        return name;
    }

    public String getPhone() {
        return phone;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
}

3. 设置Spring MVC应用
1)基于Spring的Web应用同样必须符合J2EE目录规范:如在WEB-INF目录下必须有一个web.mxl的部署描述符,这个WEB应用的类文件和JAR文件应该分别放在WEB-INF/classes和WEB-INF/lib目录中。


2)添加Spring的常规依赖,Spring web依赖和SpringMVC依赖
Spring的常规依赖可以参看源码附件中的pom.xml,Spring web和Spring MVC依赖为:
     <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
      </dependency>

      <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-web</artifactId>
             <version>${spring.version}</version>
      </dependency>


3)将重要的Spring配置文件放在WEB-INF/目录下:court-service.xml, court-servlet.xml。(具体参看附件源码)
注意:用户可以通过URL直接访问WEB-INF目录之外的文件,所以/css,/images等内容常常放在那个地方。而/jsp目录则根据实际的需要可以选择放在WEB-INF/之内或者之外。

4)在web.xml中添加Spring MVC的前端控制器。
该前端控制器是一个DispatcherServelt实例,在大型应用中,使用多个DispatcherServelt实例会更加方便,因为这可以轻松实现将DispatcherServlet实例委派给特定的URL,是代码管理更加容易,因为这样对于开发中涉及同一个应用逻辑的团队成员来说不会互相影响。
<!-- Spring MVC Servlet -->
    <servlet>
        <servlet-name>court</servlet-name> <!-- will load court-servlet.xml default -->
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
5)可以为不同层声明不同的配置文件
可以将所有的Spring的bean的信息定义在上面注释中提到的court-servelt.xml中,也可以为不同的层定义不同的xml,如court-persistence.xml和court-service.xml.
为了让Spring加载court-servlet.mxl以为的配置文件,必须在web.xml中定义servlet监听器ContextLoaderListener。默认情况下,它只加载配置文件WEB-INF/applicationContext.xml,但是可以在上下文参数contextConfigLocation中指定自己想要添加的文件。如果是多个文件,可以使用逗号分隔。
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/court-service.xml</param-value>
    </context-param>

    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>

注意:
ContextLoaderListener加载自己的bean配置文件(如applictionContext.xml,court-service.xml)到跟应用上下文中,而每个DispatcherServlet将其配置文件加载到自己的应用上下文(court-servlet.xml),并且引用根应用上下文为其上级。所以,每个DispatcherServlet实例加载的上下文可以访问甚至覆盖根引用上下文中生命的Bean(反之不行)。但是DispatcherServlet加载的上下文无法互相访问。

 

分享到:
评论

相关推荐

    Spring 2.5 jar 所有开发包及完整文档及项目开发实例

    这个jar文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类。如果应用只需基本的IoC/DI支持,引入spring-core.jar及...

    Spring-Reference_zh_CN(Spring中文参考手册)

    .3. 任务规划 2.6.4. 对Java 5(Tiger)的支持 2.7. 移植到Spring 2.0 2.7.1. 一些变化 2.7.1.1. Jar包 2.7.1.2. XML配置 2.7.1.3. Deprecated的类和方法 2.7.1.4. Apache OJB 2.7.1.5. iBatis 2.8. 更新的样例应用...

    Spring.3.x企业应用开发实战(完整版).part2

    17.8.8 Spring MVC配置 17.9 对Web层进行测试 17.9.1 编写Web测试基类 17.9.2 编写ForumManageController测试用例 17.10 部署和运行应用 17.11 小结 以下内容详见本书配书光盘: 附录A JavaMail发送邮件 附录B 在...

    Spring+3.x企业应用开发实战光盘源码(全)

     第4章:讲解如何在Spring配置文件中使用Spring 3.0的Schema格式配置Bean的内容,并对各个配置项的意义进行了深入的说明。  第5章:对Spring容器进行解构,从内部探究Spring容器的体系结构和运行流程。此外,我们...

    基于SpringMVC+Hibernate4的考勤管理系统+.zip

    spring-beans-4.0.0.RELEASE.jar 所有应用都要用到的,它包含访问配置文件、创建和管理bean spring-context-4.0.0.RELEASE.jar Spring 核心提供了大量扩展 spring-core-4.0.0.RELEASE.jar Spring 框架基本的核心工具...

    Spring3.x企业应用开发实战(完整版) part1

    17.8.8 Spring MVC配置 17.9 对Web层进行测试 17.9.1 编写Web测试基类 17.9.2 编写ForumManageController测试用例 17.10 部署和运行应用 17.11 小结 以下内容详见本书配书光盘: 附录A JavaMail发送邮件 附录B 在...

    Spring中文帮助文档

    7.10.3. 原型目标源 7.10.4. ThreadLocal目标源 7.11. 定义新的Advice类型 7.12. 更多资源 8. 测试 8.1. 简介 8.2. 单元测试 8.2.1. Mock对象 8.2.2. 单元测试支持类 8.3. 集成测试 8.3.1. 概览 8.3.2. ...

    springboot参考指南

    关闭默认的MVC配置 Spring Boot参考指南 7 viii. 65.8. 自定义ViewResolvers v. 66. 日志 i. 66.1. 配置Logback ii. 66.2. 配置Log4j i. 66.2.1. 使用YAML或JSON配置Log4j2 vi. 67. 数据访问 i. 67.1. 配置一个数据...

    Spring API

    7.10.3. 原型目标源 7.10.4. ThreadLocal目标源 7.11. 定义新的Advice类型 7.12. 更多资源 8. 测试 8.1. 简介 8.2. 单元测试 8.2.1. Mock对象 8.2.2. 单元测试支持类 8.3. 集成测试 8.3.1. 概览 8.3.2. ...

    spring security 参考手册中文版

    32.3.3使用CAS认证无状态服务 249 配置CAS以获取代理授予票证 249 使用代理票证调用无状态服务 250 32.3.4代理票证认证 251 33. X.509认证 253 33.1概述 253 33.2将X.509身份验证添加到您的Web应用程序 253 33.3在...

    spring chm文档

    7.10.3. 原型目标源 7.10.4. ThreadLocal目标源 7.11. 定义新的通知类型 7.12. 更多资源 8. 测试 8.1. 简介 8.2. 单元测试 8.3. 集成测试 8.3.1. Context管理和缓存 8.3.2. 测试fixture的依赖注入 8.3.3. ...

    Spring 2.0 开发参考手册

    7.10.3. 原型目标源 7.10.4. ThreadLocal目标源 7.11. 定义新的通知类型 7.12. 更多资源 8. 测试 8.1. 简介 8.2. 单元测试 8.3. 集成测试 8.3.1. Context管理和缓存 8.3.2. 测试fixture的依赖注入 8.3.3. ...

    Spring mvc参考文档

    3.Spring 3.x企业应用开发实战 4.spring+MVC中文教程pdf 5.Spring2.5.中文帮助文档 6.SpringGuide 7.SpringMVC配置文件 8.Spring从入门到精通 9.spring详细注解 10.精通Spring(清晰书页版) 11.使用注解方式配置的...

    weshop-微信小程序应用商城

    3. 执行docs/sql/data.sql文件,初始化数据 4. 修改配置中心(weshop-config-server)的database.properties和common.properties文件,更新MySQL账号和密码,更新RabbitMQ配置,更新zipkinServer配置 5. 运行Maven命令...

    陈开雄 Spring+3.x企业应用开发实战光盘源码.zip

    陈开雄 Spring+3.x企业应用开发实战光盘源码 !!!!压缩包的jar包太多,太大无法上传,请谅解,需要的可以联系我 QQ:349721489 第1章:对Spring框架进行宏观性的概述,力图使读者建立起对Spring整体性的认识。 ...

    webx3框架指南PDF教程附学习Demo

    • Spring MVC 以上框架都是非常优秀的。说实话,如果阿里巴巴网站在2001年开始,就有这么多可选择的话,无论选择哪一个都不会有问题。因为这些年来,所有的开源Web框架都在互相学习、并趋于相似。Webx也不例外,...

    基于spring freemarker jdbctemplate jquery的一个完整的项目例子

    才看了《spring 3.x》第一章内容,写的一个例子;感觉写得挺经典的。 于是骄傲地分享出来。 除了隐藏jdbc.properties里配置;其余都无保留的分享出来了。这里其实一个关于分库分表的配置文件。 使用技术细节:...

    Java 面试宝典

    一. Java 基础部分..................................................................................................................... 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么...

    单点登录源码

    SpringMVC | MVC框架 | [http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc](http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc) ...

Global site tag (gtag.js) - Google Analytics