我发现我最初的努力是为了理解@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?相关推荐

  1. springMVC中的@ModelAttribute注解

    springMVC小总结 常用注解总结 以下内容是我个人对@ModelAttribute注解的见解,如有错误请批评指正!!! 例子中用到的代码:代码获取 @ModelAttribute注解 1.作用: ...

  2. SpringMVC中 -- @RequestMapping的作用及用法

    一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.x ...

  3. 详解SpringMVC中Controller的方法中参数的工作原理[附带源码分析]

    目录 前言 现象 源码分析 HandlerMethodArgumentResolver与HandlerMethodReturnValueHandler接口介绍 HandlerMethodArgumen ...

  4. 详解SpringMVC中Controller的方法中参数的工作原理[附带源码分析] good

    目录 前言 现象 源码分析 HandlerMethodArgumentResolver与HandlerMethodReturnValueHandler接口介绍 HandlerMethodArgumen ...

  5. SpringMVC中数据库链接配置

    从昨天开始一直在纠结数据库链接的问题,现在可以说才从库里面查出数据.这种感觉还是希望和大家分享一下 首先我们来看看我用ecplise创建项目的目录结构: 上面是我的目录结构,和数据库链接的都放在了ap ...

  6. SpringMVC中的拦截器

    SpringMVC中的拦截器 拦截器的作用 Spring MVC 的处理器拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理. 用户可以自己定义一些拦截器来实现 ...

  7. SpringMVC 中的异常处理

    SpringMVC 中的异常处理 异常处理的思路 系统中异常包括两类:预期异常和运行时异常 RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手段减 ...

  8. SpringMVC中利用HandlerExceptionResolver完成异常处理

    SpringMVC中利用HandlerExceptionResolver完成异常处理 参考文章: (1)SpringMVC中利用HandlerExceptionResolver完成异常处理 (2)ht ...

  9. 在SpringMVC中使用@RequestBody注解处理json时,报出HTTP Status 415的解决方案

    在SpringMVC中使用@RequestBody注解处理json时,报出HTTP Status 415的解决方案 参考文章: (1)在SpringMVC中使用@RequestBody注解处理json ...

最新文章

  1. 计算机网络基础常考面试题总结
  2. maven2——设置镜像篇
  3. web.xml 中的listener、 filter、servlet 加载顺序
  4. 使用autoit实现自动加域
  5. 李佳琦抢了薇娅的流量
  6. iTween for Unity
  7. YFI 核心开发者 banteg 推出 1:100 万拆分 YFI 代币的新项目 Woofy
  8. 【leetcode】Minimum Path Sum
  9. ssis包部署到数据库_使用SSIS包将行标题和数据添加到平面文件中
  10. 目前最小的替换模板了,只有十几行代码
  11. python和其它语言混合编程_C++和Python混合编程 - python嵌入C++
  12. 3 笔经小结-智力篇
  13. 第 7 章 Neutron - 082 - 将 instance 连接到 first_local_net
  14. python学习答案_乐学Python答案
  15. MOEAD原理及Python实现、MOEAD实现、基于分解的多目标进化、 切比雪夫方法-(python完整代码)
  16. SharePoint服务器端对象模型 之 使用CAML进行数据查询
  17. 教程:这两个小妙招手把手教会你白底图片怎么抠图
  18. 数据库作业17:第六章总结
  19. 2013国内IT行业薪资对照表【技术岗】
  20. 成才之路杂志社成才之路编辑部成才之路杂志2022年第33期目录

热门文章

  1. lol体验服一直显示连接服务器,为什么英雄联盟体验服进不去游戏
  2. 【图像重建】基于正交匹配追踪(OMP)算法结合小波变换是图像重建含Matlab源码
  3. 微信小程序云开发之模糊搜索
  4. web服务弹性伸缩_我如何为实际用户构建可伸缩的现代Web应用程序
  5. 《大数据: Hive 介绍与安装》
  6. 帝国CMS仿《3641图库》模板/图片网站源码/带WAP手机站带数据
  7. 工伤事故申请工伤认定多久会生效
  8. 阿里内部Android笔记火爆IT圈,已拿offer入职
  9. Android 摄像头调用(不含拍照),kotlin开源
  10. TFTLCD 液晶界面设计