基于Spring MVC框架搭建Web项目的两种方式——配置法、注解法

一、配置法

在spring2.5之前,Spring MVC项目都是采用在xml中配置的方式去声明Controller的业务实现类;

1.下载框架所需的相关jar包:

(1)spring jar包下载地址(以spring-framework-4.2.0.RELEASE-dist.zip为例):https://repo.spring.io/libs-release-local/org/springframework/spring/4.2.0.RELEASE/

(2)Spring的核心容器依赖于common-logging包的下载地址(以commons-logging-1.2-bin.zip为例):https://commons.apache.org/proper/commons-logging/download_logging.cgi

2.IDEA新建web项目,并在WEB-INF目录下,新建lib文件夹,将上面的jar放于此文件夹中

commons-logging-1.2-bin.zip中只需要一个jar包:commons-logging-1.2.jar,

spring-framework-4.2.0.RELEASE-dist.zip中有三种类型的jar包:

(1)Spring框架的class文件的jar包;

(2)以“-source"结尾的jar包是Spring框架源文件压缩包;

(3)以”-javadoc"结尾的jar包是Spring框架API文档的压缩包;

所以,我们只需要将(1)(2)两种类型的jar包添加到项目中即可,当然也可以全部添加进去;

(ps: jar包复制到lib目录下,分别选中commons-logging和spring的jar包后右键,选择“Add as Library...”添加依赖即可)

3.在web.xml中配置Spring MVC框架的核心控制器配置:

添加“<absolute-ordering>"代码的作用是解决项目配置完成后,运行时出现下列报错的:

<init-param>标签指定了本Spring MVC项目的配置信息是配置在”/WEB-INF/springmvc-config.xml"中,在WEB-INF目录下新建一个名为springmvc-config的xml文件即可;

图中1里的配置是配置Spring MVC框架所需要的映射器、适配器和视图解析器;图中2里的配置则是配置自定义的用于处理前端请求的实现了Controller接口的处理类,前端通过访问name定义的值,然后调用对应的实现类;

4.编写相关的Controller实现类和页面即可:

图中的“<a href="/thanks">How are you?</a>"即在调用新的页面(通过”/thanks"在springmvc-config.xml中找到对应的Controller实现类,然后执行对应的处理方法跳转新的页面);

 

二、注解法

配置法的一个弊端为:每一个实现的Controller的业务处理类只能处理一个请求,因为所有的处理逻辑只能放到handleRequest方法中

所以在spring2.5之后,Spring MVC项目开始采用注解法,这种方式的优势是,不需要将每一个自定义的业务处理类都去springmvc-config.xml中去一 一配置,并且一个业务处理类中可以定义多个处理不同请求的方法;

注解法的项目搭建过程跟配置法相似,只有两处不同之处:

1.springmvc-config.xml配置如下图所示:

<context:component-scan>标签的作用是:项目运行时,去自动扫描“com.dongwu.controller"目录下所有带有指定注释(@Controller、@RequestMapping)的类,这些类即为业务处理类,将他们注册到项目中,以便用户操作时进行请求处理和分发调用这些业务处理类(配置了该目录后,就不需要每实现一个业务处理类后,在去springmvc-config.xml中去配置该业务处理类的信息了)

2.业务处理类采用注解的方式,而不需要在去实现Controller接口:

上图中,@Controller注解表示当前类是一个业务处理类,@RequestMapping则代表这是一个前端请求的处理方法,其value值的作用跟配置法中在springmvc-config.xml中的<bean name="/hello">相同,采用这种方式后,可以实现在同一个业务处理类中去编写不同请求的处理方法,如上图中的helloWorld()和hiWorld()即是处理不同请求的方法;

 

之后配置tomcat和项目部署运行,这里就不在赘述了~

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.0.5 从web项目迁移成maven项目 1.0.6 增加菜单框架ext实现,类路径调整 1.0.7 增加http工具类,demo例子 1.0.8 socket工具类,权限组件,菜单组件,jdbc分页支持多种数据库,ant路径工具类,增加jquery easyUI 1.0.9 版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 zookeeper工具类优化 增加工具类 1.0.16 页面html标志修改 httpclient中文支持 工具类增强(zip,reflect,thread) 1.0.17 ftp服务端和客户端工具类,配置文件maven和web项目路径统一 1.1.0 soapui工具类(web版本) properties等工具类 1.1.1 工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 1.1.8 jquery 图片预览插件 图片滚动显示插件 1.1.9 jquery实现鼠标在按钮上显示窗口,离开窗口和按钮时消失 1.1.10 rabbitMQ集成 视频截图 图片缩略图旋转 集成Mybatis 使用数据库连接池druid dubbo使用
# demoWeb 一个基于SpringMVC的web框架 1.0.5 从web项目迁移成maven项目 1.0.6 增加菜单框架ext实现,类路径调整 1.0.7 增加http工具类,demo例子 1.0.8 socket工具类,权限组件,菜单组件,jdbc分页支持多种数据库,ant路径工具类,增加jquery easyUI 1.0.9 版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 zookeeper工具类优化 增加工具类 1.0.16 页面html标志修改 httpclient中文支持 工具类增强(zip,reflect,thread) 1.0.17 ftp服务端和客户端工具类,配置文件maven和web项目路径统一 1.1.0 soapui工具类(web版本) properties等工具类 1.1.1 工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 1.1.8 jquery 图片预览插件 图片滚动显示插件 1.1.9 jquery实现鼠标在按钮上显示窗口,离开窗口和按钮时消失 1.1.10 rabbitMQ集成 视频截图 图片缩略图旋转 集成Mybatis 使用数据库连接池druid dubbo使用 1.1.11 集成Spring Cache,FastJson Spring Cache增加redis缓存实现 Mybatis使用二级缓存,增加redis实现 增加reactJs 增加Mybatis插件pageHelper,Mapper 1.1.12 使用draft富文本编辑器 增加ant design 代码生成器功能增强
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值