什么是SpringMVC中的@ModelAttribute?

31 篇文章 2 订阅
31 篇文章 2 订阅

我发现我最初的努力是为了理解@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一个包罗万象的注释;没有人想看到一个注释。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值