spring - Spring boot - 带有未传递参数的 @getMapping 方法
问题描述
我是 Spring Boot 的新手,所以我只是想了解一些事情。在我正在观看的其中一个教程中,我注意到讲师做了这样的事情:
@GetMapping
public String register(User user) {
return "register";
}
有人可以解释一下与用户相关的情况。我认为将用户传递给视图“注册”是否正确?
如果没有用户传递给这个方法会发生什么,它只是使用一个新的用户对象。在这种情况下应该使用自动接线吗?
本例中的用户类实现了 UserDetails。
如果我的术语是关闭的,就像我说我是 Spring Boot 的新手
解决方案
通常,我没有遇到过很多这样的情况,即你有一个GetMapping
像这样的“裸”(非注释)对象参数。
通常,Get 方法请求的参数将使用诸如@RequestParam
or之类的注释进行修饰@PathVariable
。由于您现在拥有代码,我立即认为此方法需要一个User
对象作为@RequestBody
. 但是在我看来,获取身体请求很奇怪。
我能想到的唯一例外是这是注入当前登录用户的某种方式。但在那种情况下,我只是通过传入一个 Spring SecurityPrincipal
对象来看到这一点。我不确定一个UserDetail
对象是否像这样工作,但我可能是错的。如果是这种情况,那么您所拥有的是一个“特殊用法”案例,其中 Spring 自动注入当前登录的用户,因为它将其识别为UserDetail
.
否则,我不确定 Spring 应该在哪里或如何放置一个User
对象的实例,如果它不是来自 an@RequestBody
或其他东西。照原样,我希望这个User
对象始终为空。
推荐阅读
- java - Compare String with each element of a String Array using Streams
- laravel - 为什么在播种机的 json 中向 ap 标签添加一个类会破坏该播种机?
- xml - 使用 XSLT 对 XML 部分进行排序
- go - 我可以在 Tomcat 中部署 Go 项目吗?
- javascript - 码头工人无法运行scrapy-splash
- android - flutter_pdfview crashing device after opening pdf
- python - 不均匀分布数据的分类方法
- powershell - 在powershell中从字符串中过滤空格
- angular - 登录弹出窗口后角度动画被阻止
- spring-boot - 我们如何在 zeebe 处理程序中调用 Hystrix 的后备方法?