什么是SpringMVC中的@ModelAttribute?
我发现我最初的努力是为了理解@ModelAttribute是Spring决定将多个注释合并为一个的结果。当我将它分成几个较小的注释时,它变得更清晰了:
对于参数注释,请考虑@ModelAttribute相当于@Autowired + @Qualifier也就是说,它试图从Spring托管模型中检索具有给定名称的bean。如果找不到命名bean,而不是抛出错误或返回null,它隐式地承担了@Bean也就是说,使用默认构造函数创建一个新实例,并将bean添加到模型中。
对于方法注释,请考虑@ModelAttribute相当于@Bean + @Before,也就是说,它将用户代码构造的bean放在模型中,并且它总是在请求处理方法之前被调用。
比方说,我看到了@ModelAttribute如下所示(请不要照本宣科!):
@Bean(“person”) @Before public Person createPerson(){
return new Person();} @RequestMapping(…) public xxx handlePersonRequest( (@Autowired @Qualifier(“person”) |
@Bean(“person”)) Person person, xxx){
…}
如你所见,Spring做出了正确的决定@ModelAttribute一个包罗万象的注释;没有人想看到一个注释。
什么是SpringMVC中的@ModelAttribute?相关推荐
- springMVC中的@ModelAttribute注解
springMVC小总结 常用注解总结 以下内容是我个人对@ModelAttribute注解的见解,如有错误请批评指正!!! 例子中用到的代码:代码获取 @ModelAttribute注解 1.作用: ...
- SpringMVC中 -- @RequestMapping的作用及用法
一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.x ...
- 详解SpringMVC中Controller的方法中参数的工作原理[附带源码分析]
目录 前言 现象 源码分析 HandlerMethodArgumentResolver与HandlerMethodReturnValueHandler接口介绍 HandlerMethodArgumen ...
- 详解SpringMVC中Controller的方法中参数的工作原理[附带源码分析] good
目录 前言 现象 源码分析 HandlerMethodArgumentResolver与HandlerMethodReturnValueHandler接口介绍 HandlerMethodArgumen ...
- SpringMVC中数据库链接配置
从昨天开始一直在纠结数据库链接的问题,现在可以说才从库里面查出数据.这种感觉还是希望和大家分享一下 首先我们来看看我用ecplise创建项目的目录结构: 上面是我的目录结构,和数据库链接的都放在了ap ...
- SpringMVC中的拦截器
SpringMVC中的拦截器 拦截器的作用 Spring MVC 的处理器拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理. 用户可以自己定义一些拦截器来实现 ...
- SpringMVC 中的异常处理
SpringMVC 中的异常处理 异常处理的思路 系统中异常包括两类:预期异常和运行时异常 RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手段减 ...
- SpringMVC中利用HandlerExceptionResolver完成异常处理
SpringMVC中利用HandlerExceptionResolver完成异常处理 参考文章: (1)SpringMVC中利用HandlerExceptionResolver完成异常处理 (2)ht ...
- 在SpringMVC中使用@RequestBody注解处理json时,报出HTTP Status 415的解决方案
在SpringMVC中使用@RequestBody注解处理json时,报出HTTP Status 415的解决方案 参考文章: (1)在SpringMVC中使用@RequestBody注解处理json ...
最新文章
- 计算机网络基础常考面试题总结
- maven2——设置镜像篇
- web.xml 中的listener、 filter、servlet 加载顺序
- 使用autoit实现自动加域
- 李佳琦抢了薇娅的流量
- iTween for Unity
- YFI 核心开发者 banteg 推出 1:100 万拆分 YFI 代币的新项目 Woofy
- 【leetcode】Minimum Path Sum
- ssis包部署到数据库_使用SSIS包将行标题和数据添加到平面文件中
- 目前最小的替换模板了,只有十几行代码
- python和其它语言混合编程_C++和Python混合编程 - python嵌入C++
- 3 笔经小结-智力篇
- 第 7 章 Neutron - 082 - 将 instance 连接到 first_local_net
- python学习答案_乐学Python答案
- MOEAD原理及Python实现、MOEAD实现、基于分解的多目标进化、 切比雪夫方法-(python完整代码)
- SharePoint服务器端对象模型 之 使用CAML进行数据查询
- 教程:这两个小妙招手把手教会你白底图片怎么抠图
- 数据库作业17:第六章总结
- 2013国内IT行业薪资对照表【技术岗】
- 成才之路杂志社成才之路编辑部成才之路杂志2022年第33期目录