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的参数

在下一篇文章中
relay_subgraph_partition_one_slide.pptx 立即下载

相关推荐

triton-inference-server-ge-backend

新版本特性 v2.3.0 支持对全局、session、graph 的options进行添加,从而进一步调优模型,相关案例请参考 性能调优方法论。 支持采用分档模式将符合条件模型转化为静态图,提高吞吐性能。 补充如何采用分档模式+锁核+调整精度,进一步提高性能。 在AscendHub下载镜像时需确认好版本,若使用旧版本镜像,需要手工下载源码编译生成新的backend后才能支持新特性。 版本特性 v2.2.0 支持从onnx文件读取模型输入输出信息, config中若无指定input,output,将会自动从文件中读取; 调整动态图在多实例下使用多Session方式,提高并发吞吐(显存占用会增高); 支持动态batch场景小batch动态合并特性,配合多Session,提高吞吐; 补充调优方法论以及cnclip模型的最佳实践; 支持多模型特性,可支持同时拉起多个模型,提高显存利用率; 支持非0轴动态shape场景; 支持TensorFlow的pb文件。

Spring学习日记(三)搭建MVC基本开发环境

  一、准备工作 1、新建web project 2、添加spring开发支持       此时会自动配置上web包,其中包含了springMVC支持。也就是说可以直接在项目中使用Spring MVC了 3、定义相关配置 (1)Spring MVC的所有配置都要在applicationContext.xml文件 &lt;!-- mvc的配置也是基于annotation实...

一不小心吃太撑了 315

2007-2025年36家商业银行绿色信贷余额数据(2025年无缺失)

1、指标覆盖区间为2007年至2025年 2、数据取自各银行年度报告及社会责任报告 3、核心指标为绿色信贷余额 4、涉及银行包括:苏农银行、中国银行、紫金银行、杭州银行、华夏银行、邮储银行、青岛银行、兴业银行、苏州银行、农业银行、宁波银行、上海银行、江阴银行、招商银行、长沙银行、北京银行、无锡银行、民生银行、浙商银行、常熟银行、成都银行、工商银行、郑州银行、光大银行、南京银行、建设银行、浦发银行、贵阳银行、渝农商行、西安银行、交通银行、江苏银行、中信银行、张家港行、平安银行、青农商行

我的爬坑日记丨spring mvc

1.问题描述: org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class java.util.HashMap 解决方式 导入相应的jar包jackson-core.jar 和jackson-databind.jar...

qq_36134369的博客 238

2019-2026年 中国分行业进出口数据 xlsx

数据整理中国各细分行业海关进出口数据,包括中国对各个国家进口、出口数据,中国各个行业进出口数据,各国贸易数据是了解每个国家市场的最基础和重要信息。数据非面板数据,时间、行业分类有缺失。 标 日期 采购商国家/地区 供应商国家/地区 采购商 供应商 采购商地址 供应商地址 通知人 通知人地址 制造商 原产国 目的国 起运港 目的港 HS编码 产品描述 唛头 数量 数量单位 重量 金额($) 单号 集装箱号 品牌

后端开发 Docker4.99.0 AppleSilicon 苹果芯片 Mac 安装包

本资源为 Docker Desktop 4.99.0 苹果芯片(Apple Silicon)专用安装包,原生适配 M 系列 Mac,可快速搭建本地容器开发环境,支持镜像拉取、容器编排、项目打包部署。适合后端开发、运维、全栈开发者,用于本地微服务、测试环境、项目容器化开发。

Spring学习日记——DAY07(SpringMVC)

采用Controller注释来放入spring容器中,RequesMapping用来指明url地址,还可以使用RESTFUL的形式,还可以用method属性来指明操作行为是get还是post,在使用RESTFUL形式的url时,方法可以自动解析,但是必须加@PathVariable注释。配置好web.xml文件实例,注意下面的mapping标签的url-pattern指的是被管理的标签,/指的是除了.jsp和.do以外的资源。V:view视图层:jsp html css js。3.返回JSON格式。

happymaker0626的博客 247

milvus-v2.6.25镜像文件

milvus-v2.6.25镜像文件

SpringMVC错误日记 —— 返回JSON数据或对象导致页面406缺省报错的解决方式

SpringMVC错误日记 —— 返回JSON数据或对象导致页面406缺省报错的解决方式前言分析故障解决结束语 前言 今天在配置SpringMVC途中,遇到了关于返回实体对象的思考,直接添加 @ResponseBody注解后返回是无法实现返回实体对象,会出现406缺省的问题 分析 通过一些搜索引擎的了解和自己的测试,发现SpringMVC返回一个实体对象或者JSON的流程是需要Jackson这个坐标进行依赖后即可完成页面返回实体对象。 故障解决 <dependency>

Marinda_Speed的博客 929

医学信息影像AI临床采纳的责任边界研究:基于场景选点与流程嵌入的分步实施路径

内容概要:本文以“影像人工智能(CAD)的临床采纳与责任边界”为核心议题,指出当前影像AI的发展瓶颈已从技术准确性转向“谁负责、怎么用”的机制与治理问题。通过文献研究与政策文本分析,文章系统梳理了CAD的应用场景与效果、临床采纳障碍及责任边界划分三大问题,揭示出“假阳性导致医生信任下降、责任归属不清、采购与使用脱节”三重瓶颈相互强化的闭环结构,并提出“场景选点—试用验证—责任规则先行—流程嵌入”的分步递进式建设路径,强调需通过机制闭环实现技术真正落地。; 适合人群:从事医疗信息化管理、医学人工智能研究、医院运营管理及相关政策制定的专业人员,以及医学信息学、卫生管理专业的高年级本科生与研究生。; 使用场景及目标:①用于医疗机构评估影像AI引入的可行性与实施路径,避免资源错配;②为政策制定者提供优化考核机制与责任界定的理论依据;③帮助AI厂商理解临床真实需求,提升产品与流程的契合度;④作为学术研究框架,支持对技术采纳与治理机制的深入探讨。; 阅读建议:本文构建了“现状—机制—治理”三层分析框架,建议读者结合自身角色聚焦不同章节:管理者重点关注第五章路径设计,研究者关注第三章文献述评与第六章研究展望,实施者关注第四章瓶颈分析与实施保障。阅读时应特别注意概念的操作化定义与证据等级区分,避免将理论推导误作实证结论,并在应用时结合本地实际进行裁剪与验证。

推动企业技术需求与高校科研成果对接,需要哪些关键支撑要素?.docx

推动企业技术需求与高校科研成果对接,需要哪些关键支撑要素?

Spring Boot单元测试实战:JUnit 5与Mockito核心技巧详解

单元测试是保障软件质量、实现快速反馈的关键实践,其核心在于隔离被测代码与外部依赖,确保逻辑验证的独立性与可靠性。通过模拟框架如Mockito,开发者可以创建虚拟对象替代数据库、API等复杂依赖,从而在可控环境中专注业务逻辑验证。这一技术显著提升了代码的健壮性与可维护性,是持续集成和敏捷开发中的重要环节。在Spring Boot生态中,结合JUnit 5测试框架,能够高效完成从Service层单元测试到Controller、Repository的切片测试。本文基于Spring Boot 3.x与Mockito

weixin_34356310的博客 337

A股分钟行情数据,涵盖股票、ETF、可转债及指数 每条记录包含交易日期、具体时间、证券代码、证券简称、开盘价、最高价、最低价、收盘价、成交量、成交额 数据为日内分钟频率,逐分钟记录价格变动与成交信息

A股分钟行情数据,涵盖股票、ETF、可转债及指数。每条记录包含交易日期、具体时间、证券代码、证券简称、开盘价、最高价、最低价、收盘价、成交量、成交额。数据为日内分钟频率,逐分钟记录价格变动与成交信息,按交易日分割存储,历史分钟K线保留完整。 数据源:CMES金融数据库

小白日记:SpringMVC快速入门,简单明了,一看就会

SpringMVC快速入门 开发环境准备 idea2020 + MySQL8.0.19 + maven3 + java1.8 创建一个项目 SpringMVC快速入门 开发环境准备 idea2020 + MySQL8.0.19 + maven3 + java1.8 创建一个项目 可以不用快速构建,但是因为自己构建不熟练,所以就选择快速构建,但是一定要选择maven-archetype-webapp 点击next 稍作等待,系统会帮你下载一些包,网络上一些加速的办法,可以试试,一般是配置一个键值对。

moro_s的博客 280

一个免费的激光打标软件的配套硬件说明

激光打标软件配套硬件说明

高校技术转移办公室人员如何利用知识图谱技术提升科技成果评价的科学性与高效性?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

【课程设计】ssm学生健康防疫信息管理 毕业设计 041613

学生模块: 账号登录认证。 管理个人资料信息,修改可修改的信息项。 每日打卡(健康打卡、)添加和查询已有打卡的记录。 教师模块: 个人资料管理,修改删除自己的信息。 学生的添加与查询、每日安排的查询、健康打卡的查询、请假管理的查询与审核请假、核酸检测的查询及删除、通知公告的查询、日记统计的查看。 管理员模块: 系统用户的管理,管理和添加删除管理员,可以设置登录权限,或者删除所有用户账号。 教师管理,添加教师的具体信息与查询教师同时也具备删除教师。 通知管理,添加发布公告查询公告和删除公告的功能。 学生管理,

WeiXin_DZbishe的博客 785

国央企创新负责人在推动内部技术转化时,如何确保服务流程的合规与可控?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

上一篇: Spring下基于JPA的数据层的完整配置
下一篇: 动态生成table在IE下的bug
FredWorks
博客等级 码龄23年 21粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值