java - 如何拆分类以使用多个 @Controller
问题描述
我正在学习弹簧靴,并开发了以下简单示例。我想使用@Controller 将一个类注释为控制器。这个类有构造函数,我想访问 GreetingFromDeuController ,如下所示:
http://localhost:8080:/GreetingFromDeuController?str = "hi"
我收到的错误是
@RequestMapping is not applicable on a constructor
请让我知道如何解决。
代码:
@Controller
@RequestMapping("/GreetingFromDeuController")
public class GreetingFromDeuController {
private String str;
@RequestMapping("/GreetingFrom/deu")
GreetingFromDeuController(@RequestParam(value = "str") String str) {
this.str = str;
}
@RequestMapping("/GreetingFromDeuController")
public String getGreetingFromDeu() {
return this.str;
}
}
解决方案
首先,在您点击 URL 之前,您的构造函数会进行很多初始化。因此,您需要进行设计或告诉我您的业务需求,我会尽力为您提供解决方案。我的重构代码解决方案将帮助您分两步实现这一目标。首先点击 POST 方法,它将对设置变量起作用,然后 GET 方法的后续点击将返回该设置值。
我们可以像下面这样重构代码。它将解释 RequestMapping 在方法和类上的使用。
考虑到我们必须编写两个 API,一个用于读取,一个用于写入。
网址:
1. POST http://localhost:8080/example/greetings (in request body send {str:'hi'})
2. GET http://localhost:8080/example/greetings
@Controller
@RequestMapping("/example")
public class GreetingFromDeuController {
private String str;
@RequestMapping(value="/greetings" , method = RequestMethod.POST)
public void setGreetingFromDeu(@RequestBody(value = "str") String str)
{
this.str = str;
}
@RequestMapping(value="/greetings" , method = RequestMethod.GET)
public String getGreetingFromDeu()
{
return this.str;
}
}
推荐阅读
- c# - 在 ASP.NET Core Web API 的 HttpGet 方法中返回模型的单个属性
- python - Django 3.0.5 ModelForm 没有指定模型类。错误
- javascript - 如何平均嵌套数组
- python - 试图用python写一个闹钟
- c# - Items.Restrict 返回重复项
- android - 将此 LinearLayout 转换为约束布局
- elasticsearch - lucene中与项目列表匹配的子字符串
- r - 如何计算R中内核估计的Kullback-leiber散度
- npm - 在我在 vuetify 项目中使用的包中加载 vuetify
- c - 当 unsigned short int 不是时,为什么 unsigned int 存储负值?unsigned int 值没有像应有的那样环绕