{"id":2180,"date":"2025-08-11T17:03:11","date_gmt":"2025-08-11T09:03:11","guid":{"rendered":"https:\/\/note.ui11.cc\/?p=2180"},"modified":"2025-08-11T17:14:54","modified_gmt":"2025-08-11T09:14:54","slug":"%e8%b7%af%e5%be%84%e5%8f%82%e6%95%b0-springboot%e6%80%bb%e7%bb%93","status":"publish","type":"post","link":"https:\/\/note.ui11.cc\/index.php\/2025\/08\/11\/%e8%b7%af%e5%be%84%e5%8f%82%e6%95%b0-springboot%e6%80%bb%e7%bb%93\/","title":{"rendered":"\u8def\u5f84\u53c2\u6570-Springboot\u603b\u7ed3"},"content":{"rendered":"\n<p>\u5728 Spring Boot \u4e2d\uff0c\u53c2\u6570\u6ce8\u89e3\u7528\u4e8e\u5c06 HTTP \u8bf7\u6c42\u4e2d\u7684\u6570\u636e\uff08\u5982\u8def\u5f84\u53d8\u91cf\u3001\u8bf7\u6c42\u53c2\u6570\u3001\u8bf7\u6c42\u4f53\u7b49\uff09\u7ed1\u5b9a\u5230\u63a7\u5236\u5668\u65b9\u6cd5\u7684\u53c2\u6570\u4e0a\uff0c\u7b80\u5316\u4e86\u53c2\u6570\u83b7\u53d6\u7684\u6d41\u7a0b\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1.&nbsp;<code>@PathVariable<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4f5c\u7528<\/strong>\uff1a\u83b7\u53d6 URL \u8def\u5f84\u4e2d\u7684\u53d8\u91cf\uff08RESTful \u98ce\u683c\u8def\u5f84\u53c2\u6570\uff09\u3002<\/li>\n\n\n\n<li><strong>\u573a\u666f<\/strong>\uff1a\u7528\u4e8e\u83b7\u53d6 URL \u4e2d\u52a8\u6001\u90e8\u5206\u7684\u503c\uff0c\u5982\u00a0<code>\/users\/{id}<\/code>\u00a0\u4e2d\u7684\u00a0<code>id<\/code>\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>@RestController\n@RequestMapping(\"\/users\")\npublic class UserController {\n    \n    \/\/ \u83b7\u53d6\u8def\u5f84\u4e2d\u7684id\u53c2\u6570\n    @GetMapping(\"\/{id}\")\n    public String getUserById(@PathVariable Long id) {\n        return \"\u83b7\u53d6\u7528\u6237ID\uff1a\" + id;\n    }\n    \n    \/\/ \u591a\u8def\u5f84\u53c2\u6570\uff08\u540d\u79f0\u4e0d\u4e00\u81f4\u65f6\u9700\u6307\u5b9avalue\uff09\n    @GetMapping(\"\/{userId}\/orders\/{orderId}\")\n    public String getOrder(\n            @PathVariable(\"userId\") Long uId,  \/\/ \u8def\u5f84\u53d8\u91cfuserId\u7ed1\u5b9a\u5230uId\n            @PathVariable Long orderId         \/\/ \u540d\u79f0\u4e00\u81f4\u53ef\u7701\u7565value\n    ) {\n        return \"\u7528\u6237ID\uff1a\" + uId + \"\uff0c\u8ba2\u5355ID\uff1a\" + orderId;\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2.&nbsp;<code>@RequestParam<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4f5c\u7528<\/strong>\uff1a\u83b7\u53d6 URL \u4e2d\u00a0<code>?<\/code>\u00a0\u540e\u7684\u8bf7\u6c42\u53c2\u6570\uff08\u67e5\u8be2\u53c2\u6570\uff09\u3002<\/li>\n\n\n\n<li><strong>\u573a\u666f<\/strong>\uff1a\u5982\u00a0<code>\/search?keyword=java&amp;page=1<\/code>\u00a0\u4e2d\u7684\u00a0<code>keyword<\/code>\u00a0\u548c\u00a0<code>page<\/code><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>@RestController\n@RequestMapping(\"\/search\")\npublic class SearchController {\n    \n    \/\/ \u57fa\u672c\u4f7f\u7528\n    @GetMapping\n    public String search(\n            @RequestParam String keyword,  \/\/ \u5fc5\u4f20\u53c2\u6570\uff0c\u4e0d\u4f20\u4f1a\u62a5\u9519\n            @RequestParam(defaultValue = \"1\") int page,  \/\/ \u53ef\u9009\u53c2\u6570\uff0c\u9ed8\u8ba4\u503c1\n            @RequestParam(required = false) Integer size  \/\/ \u53ef\u9009\u53c2\u6570\uff0c\u53ef\u4f20null\n    ) {\n        return \"\u5173\u952e\u8bcd\uff1a\" + keyword + \"\uff0c\u9875\u7801\uff1a\" + page + \"\uff0c\u6bcf\u9875\u5927\u5c0f\uff1a\" + size;\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">.&nbsp;<code>@RequestBody<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4f5c\u7528<\/strong>\uff1a\u83b7\u53d6 HTTP \u8bf7\u6c42\u4f53\u4e2d\u7684\u6570\u636e\uff08\u901a\u5e38\u662f JSON\/XML \u683c\u5f0f\uff09\uff0c\u5e76\u7ed1\u5b9a\u5230 Java \u5bf9\u8c61\u3002<\/li>\n\n\n\n<li><strong>\u573a\u666f<\/strong>\uff1aPOST\/PUT \u8bf7\u6c42\u4e2d\u63d0\u4ea4\u590d\u6742\u6570\u636e\uff08\u5982\u8868\u5355\u63d0\u4ea4\u3001JSON \u6570\u636e\uff09\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u5b9a\u4e49\u5b9e\u4f53\u7c7b\npublic class User {\n    private Long id;\n    private String name;\n    private Integer age;\n    \/\/ \u7701\u7565getter\u3001setter\u3001\u6784\u9020\u65b9\u6cd5\n}\n\n@RestController\n@RequestMapping(\"\/users\")\npublic class UserController {\n    \n    \/\/ \u63a5\u6536JSON\u8bf7\u6c42\u4f53\u5e76\u8f6c\u6362\u4e3aUser\u5bf9\u8c61\n    @PostMapping\n    public String createUser(@RequestBody User user) {\n        return \"\u521b\u5efa\u7528\u6237\uff1a\" + user.getName() + \"\uff0c\u5e74\u9f84\uff1a\" + user.getAge();\n    }\n}<\/code><\/pre>\n\n\n\n<p><strong>\u8bf7\u6c42\u793a\u4f8b<\/strong>\uff08JSON \u683c\u5f0f\uff09\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ POST \/users \u7684\u8bf7\u6c42\u4f53\n{\n  \"id\": 1,\n  \"name\": \"\u5f20\u4e09\",\n  \"age\": 20\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><code>@RequestHeader<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4f5c\u7528<\/strong>\uff1a\u83b7\u53d6 HTTP \u8bf7\u6c42\u5934\u4e2d\u7684\u4fe1\u606f\u3002<\/li>\n\n\n\n<li><strong>\u573a\u666f<\/strong>\uff1a\u83b7\u53d6\u00a0<code>Content-Type<\/code>\u3001<code>Token<\/code>\u00a0\u7b49\u8bf7\u6c42\u5934\u53c2\u6570\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>@RestController\npublic class HeaderController {\n    \n    @GetMapping(\"\/header\")\n    public String getHeader(\n            @RequestHeader(\"Content-Type\") String contentType,\n            @RequestHeader(value = \"Token\", required = false) String token\n    ) {\n        return \"Content-Type\uff1a\" + contentType + \"\uff0cToken\uff1a\" + token;\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">&nbsp;<code>@CookieValue<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4f5c\u7528<\/strong>\uff1a\u83b7\u53d6\u8bf7\u6c42\u4e2d\u7684 Cookie \u503c\u3002<\/li>\n\n\n\n<li><strong>\u573a\u666f<\/strong>\uff1a\u9700\u8981\u4ece Cookie \u4e2d\u83b7\u53d6\u4f1a\u8bdd\u4fe1\u606f\u7b49\u573a\u666f\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>@RestController\npublic class CookieController {\n    \n    @GetMapping(\"\/cookie\")\n    public String getCookie(@CookieValue(value = \"SESSIONID\", required = false) String sessionId) {\n        return \"\u4f1a\u8bddID\uff1a\" + sessionId;\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">&nbsp;<code>@ModelAttribute<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4f5c\u7528<\/strong>\uff1a\u5c06\u8bf7\u6c42\u53c2\u6570\uff08\u8868\u5355\u6570\u636e\uff09\u7ed1\u5b9a\u5230 Java \u5bf9\u8c61\uff08\u652f\u6301\u5d4c\u5957\u5bf9\u8c61\uff09\u3002<\/li>\n\n\n\n<li><strong>\u573a\u666f<\/strong>\uff1a\u8868\u5355\u63d0\u4ea4\u65f6\uff0c\u81ea\u52a8\u5c01\u88c5\u53c2\u6570\u5230\u5b9e\u4f53\u7c7b\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u5b9e\u4f53\u7c7bUser\uff08\u540c\u4e0a\uff09\n@RestController\n@RequestMapping(\"\/form\")\npublic class FormController {\n    \n    \/\/ \u8868\u5355\u53c2\u6570\u7ed1\u5b9a\u5230User\u5bf9\u8c61\n    @PostMapping(\"\/user\")\n    public String submitForm(@ModelAttribute User user) {\n        return \"\u63d0\u4ea4\u7684\u7528\u6237\uff1a\" + user.getName() + \"\uff0c\u5e74\u9f84\uff1a\" + user.getAge();\n    }\n}<\/code><\/pre>\n\n\n\n<p><strong>\u8868\u5355\u63d0\u4ea4\u793a\u4f8b<\/strong>\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;form action=\"\/form\/user\" method=\"post\">\n    &lt;input name=\"name\" value=\"\u5f20\u4e09\">\n    &lt;input name=\"age\" value=\"20\">\n    &lt;button type=\"submit\">\u63d0\u4ea4&lt;\/button>\n&lt;\/form><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><code>@MatrixVariable<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4f5c\u7528<\/strong>\uff1a\u83b7\u53d6 URL \u4e2d\u7684\u77e9\u9635\u53d8\u91cf\uff08\u7528\u00a0<code>;<\/code>\u00a0\u5206\u9694\u7684\u53c2\u6570\uff09\u3002<\/li>\n\n\n\n<li><strong>\u6ce8\u610f<\/strong>\uff1a\u9ed8\u8ba4\u7981\u7528\uff0c\u9700\u5728\u914d\u7f6e\u7c7b\u4e2d\u5f00\u542f\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u5f00\u542f\u77e9\u9635\u53d8\u91cf\uff08\u914d\u7f6e\u7c7b\uff09\n@Configuration\npublic class WebConfig implements WebMvcConfigurer {\n    @Override\n    public void configurePathMatch(PathMatchConfigurer configurer) {\n        configurer.setRemoveSemicolonContent(false); \/\/ \u4e0d\u79fb\u9664\u5206\u53f7\u540e\u7684\u5185\u5bb9\n    }\n}\n\n\/\/ \u4f7f\u7528\u793a\u4f8b\n@RestController\npublic class MatrixController {\n    @GetMapping(\"\/cars\/{path}\")\n    public String getCars(\n            @MatrixVariable(\"color\") String color,  \/\/ \u83b7\u53d6color\u77e9\u9635\u53d8\u91cf\n            @MatrixVariable(\"brand\") List&lt;String> brands,  \/\/ \u591a\u4e2a\u503c\n            @PathVariable String path\n    ) {\n        return \"\u8def\u5f84\uff1a\" + path + \"\uff0c\u989c\u8272\uff1a\" + color + \"\uff0c\u54c1\u724c\uff1a\" + brands;\n    }\n}<\/code><\/pre>\n\n\n\n<p><strong>\u8bf7\u6c42\u793a\u4f8b<\/strong>\uff1a<br>\u8bbf\u95ee&nbsp;<code>\/cars\/abc;color=red;brand=bmw;brand=tesla<\/code><br>\u8fd4\u56de\uff1a<code>\u8def\u5f84\uff1aabc\uff0c\u989c\u8272\uff1ared\uff0c\u54c1\u724c\uff1a[bmw, tesla]<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u603b\u7ed3<\/h3>\n\n\n\n<p>Spring Boot \u7684\u53c2\u6570\u6ce8\u89e3\u7b80\u5316\u4e86\u8bf7\u6c42\u6570\u636e\u7684\u83b7\u53d6\uff0c\u6838\u5fc3\u6ce8\u89e3\u5305\u62ec\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8def\u5f84\u53c2\u6570\uff1a<code>@PathVariable<\/code><\/li>\n\n\n\n<li>\u67e5\u8be2\u53c2\u6570\uff1a<code>@RequestParam<\/code><\/li>\n\n\n\n<li>\u8bf7\u6c42\u4f53\uff1a<code>@RequestBody<\/code><\/li>\n\n\n\n<li>\u8bf7\u6c42\u5934\uff1a<code>@RequestHeader<\/code><\/li>\n\n\n\n<li>Cookie\uff1a<code>@CookieValue<\/code><\/li>\n\n\n\n<li>\u8868\u5355\u7ed1\u5b9a\uff1a<code>@ModelAttribute<\/code><\/li>\n<\/ul>\n\n\n\n<p>\u6839\u636e\u8bf7\u6c42\u7c7b\u578b\uff08GET\/POST \u7b49\uff09\u548c\u6570\u636e\u4f4d\u7f6e\uff08\u8def\u5f84 \/ \u8bf7\u6c42\u4f53 \/ \u5934\uff09\u9009\u62e9\u5408\u9002\u7684\u6ce8\u89e3\uff0c\u53ef\u5927\u5e45\u63d0\u5347\u5f00\u53d1\u6548\u7387\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>\u7279\u522b\u6ce8\u610f<\/strong>\uff1a<code>@PathVariable<\/code>\u00a0\u662f Spring Boot \u4e2d\u7528\u4e8e\u7528\u4e8e\u83b7\u53d6 URL \u8def\u5f84\u4e2d\u52a8\u6001\u53c2\u6570\u7684\u6ce8\u89e3\uff0c\u4e3b\u8981\u7528\u4e8e RESTful \u98ce\u683c\u7684\u63a5\u53e3\u8bbe\u8ba1\uff0c\u901a\u8fc7\u5b83\u53ef\u4ee5\u8f7b\u677e\u83b7\u53d6 URL \u8def\u5f84\u4e2d\u7684\u53d8\u91cf\u503c\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u6838\u5fc3\u7279\u70b9<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4f5c\u7528\uff1a\u4ece URL \u8def\u5f84\u4e2d\u63d0\u53d6\u52a8\u6001\u53c2\u6570\uff08\u5982\u00a0<code>\/users\/{id}<\/code>\u00a0\u4e2d\u7684\u00a0<code>id<\/code>\uff09<\/li>\n\n\n\n<li>\u9002\u7528\u573a\u666f\uff1aRESTful API \u4e2d\u83b7\u53d6\u8d44\u6e90\u6807\u8bc6\uff08ID\u3001\u540d\u79f0\u7b49\uff09<\/li>\n\n\n\n<li>\u7ed1\u5b9a\u65b9\u5f0f\uff1a\u901a\u8fc7\u53c2\u6570\u540d\u4e0e\u8def\u5f84\u53d8\u91cf\u540d\u5339\u914d\u81ea\u52a8\u7ed1\u5b9a<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u57fa\u672c\u4f7f\u7528\u65b9\u6cd5<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">1. \u7b80\u5355\u793a\u4f8b\uff08\u540d\u79f0\u4e00\u81f4\uff09<\/h4>\n\n\n\n<p>\u5f53\u65b9\u6cd5\u53c2\u6570\u540d\u4e0e URL \u8def\u5f84\u4e2d\u7684\u53d8\u91cf\u540d\u4e00\u81f4\u65f6\uff0c\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\uff1a<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@RestController\n@RequestMapping(\"\/users\")\npublic class UserController {\n    \/\/ URL \u8def\u5f84\uff1a\/users\/123\n    @GetMapping(\"\/{id}\")\n    public String getUser(@PathVariable Long id) {\n        \/\/ id \u4f1a\u81ea\u52a8\u83b7\u53d6\u8def\u5f84\u4e2d\u7684 123\n        return \"\u83b7\u53d6\u7528\u6237ID\uff1a\" + id; \n    }\n}<\/code><\/pre>\n\n\n\n<p>\u8bbf\u95ee&nbsp;<code>http:\/\/localhost:8080\/users\/123<\/code>\uff0c\u4f1a\u8fd4\u56de&nbsp;<code>\u83b7\u53d6\u7528\u6237ID\uff1a123<\/code>\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">2. \u540d\u79f0\u4e0d\u4e00\u81f4\u65f6\u6307\u5b9a\u7ed1\u5b9a\u5173\u7cfb<\/h4>\n\n\n\n<p>\u5982\u679c\u65b9\u6cd5\u53c2\u6570\u540d\u4e0e\u8def\u5f84\u53d8\u91cf\u540d\u4e0d\u540c\uff0c\u9700\u8981\u901a\u8fc7&nbsp;<code>value<\/code>&nbsp;\u5c5e\u6027\u6307\u5b9a\u5bf9\u5e94\u5173\u7cfb<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@GetMapping(\"\/{userId}\/orders\/{orderId}\")\npublic String getOrder(\n    @PathVariable(\"userId\") Long uId,  \/\/ \u8def\u5f84\u53d8\u91cf userId \u7ed1\u5b9a\u5230 uId\n    @PathVariable Long orderId         \/\/ \u540d\u79f0\u4e00\u81f4\uff0c\u76f4\u63a5\u7ed1\u5b9a\n) {\n    return \"\u7528\u6237ID\uff1a\" + uId + \"\uff0c\u8ba2\u5355ID\uff1a\" + orderId;\n}<\/code><\/pre>\n\n\n\n<p>\u8bbf\u95ee&nbsp;<code>http:\/\/localhost:8080\/users\/456\/orders\/789<\/code>\uff0c\u4f1a\u8fd4\u56de&nbsp;<code>\u7528\u6237ID\uff1a456\uff0c\u8ba2\u5355ID\uff1a789<\/code>\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">3. \u53ef\u9009\u53c2\u6570\uff08\u5141\u8bb8\u4e3a null\uff09<\/h4>\n\n\n\n<p>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c<code>@PathVariable<\/code>&nbsp;\u4fee\u9970\u7684\u53c2\u6570\u662f\u5fc5\u4f20\u7684\uff0c\u5982\u679c\u8def\u5f84\u4e2d\u6ca1\u6709\u8be5\u53d8\u91cf\uff0c\u4f1a\u62a5\u9519\u3002<br>\u82e5\u9700\u8981\u8bbe\u7f6e\u4e3a\u53ef\u9009\u53c2\u6570\uff0c\u53ef\u6dfb\u52a0&nbsp;<code>required = false<\/code>\uff08\u4f46\u9700\u786e\u4fdd\u8def\u5f84\u8bbe\u8ba1\u652f\u6301\u53ef\u9009\uff09\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u652f\u6301 \/users \u548c \/users\/123 \u4e24\u79cd\u8def\u5f84\n@GetMapping({\"\/\", \"\/{id}\"})\npublic String getUserInfo(@PathVariable(required = false) Long id) {\n    if (id == null) {\n        return \"\u83b7\u53d6\u6240\u6709\u7528\u6237\";\n    } else {\n        return \"\u83b7\u53d6\u7528\u6237ID\uff1a\" + id;\n    }\n}<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">4. \u63a5\u6536\u591a\u4e2a\u53c2\u6570\u5e76\u5904\u7406<\/h4>\n\n\n\n<p>\u53ef\u4ee5\u540c\u65f6\u83b7\u53d6\u591a\u4e2a\u8def\u5f84\u53d8\u91cf\uff0c\u5e76\u8fdb\u884c\u4e1a\u52a1\u5904\u7406\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@GetMapping(\"\/products\/{category}\/{id}\")\npublic String getProduct(\n    @PathVariable String category,\n    @PathVariable Long id\n) {\n    return \"\u5546\u54c1\u5206\u7c7b\uff1a\" + category + \"\uff0c\u5546\u54c1ID\uff1a\" + id;\n}<\/code><\/pre>\n\n\n\n<p>\u8bbf\u95ee&nbsp;<code>http:\/\/localhost:8080\/products\/electronics\/100<\/code>\uff0c\u8fd4\u56de&nbsp;<code>\u5546\u54c1\u5206\u7c7b\uff1aelectronics\uff0c\u5546\u54c1ID\uff1a100<\/code>\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u6ce8\u610f\u4e8b\u9879<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u8def\u5f84\u53d8\u91cf\u540d\u533a\u5206\u5927\u5c0f\u5199<\/strong>\uff1aURL \u4e2d\u7684\u00a0<code>{UserId}<\/code>\u00a0\u548c\u4ee3\u7801\u4e2d\u7684\u00a0<code>@PathVariable(\"userId\")<\/code>\u00a0\u4f1a\u5339\u914d\u5931\u8d25\u3002<\/li>\n\n\n\n<li><strong>\u53c2\u6570\u7c7b\u578b\u81ea\u52a8\u8f6c\u6362<\/strong>\uff1aSpring \u4f1a\u81ea\u52a8\u5c06\u8def\u5f84\u4e2d\u7684\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3a\u65b9\u6cd5\u53c2\u6570\u7684\u7c7b\u578b\uff08\u5982\u00a0<code>String<\/code>\u00a0\u2192\u00a0<code>Long<\/code>\uff09\uff0c\u8f6c\u6362\u5931\u8d25\u4f1a\u629b\u00a0<code>TypeMismatchException<\/code>\u3002<\/li>\n\n\n\n<li><strong>\u914d\u5408\u00a0<code>@RequestMapping<\/code>\u00a0\u4f7f\u7528<\/strong>\uff1a\u901a\u5e38\u4e0e\u00a0<code>@GetMapping<\/code>\u3001<code>@PostMapping<\/code>\u00a0\u7b49\u6ce8\u89e3\u914d\u5408\uff0c\u5b9a\u4e49\u5305\u542b\u53d8\u91cf\u7684\u8def\u5f84\u3002<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u603b\u7ed3<\/strong><\/h3>\n\n\n\n<p><code>@PathVariable<\/code>&nbsp;\u662f RESTful \u63a5\u53e3\u5f00\u53d1\u4e2d\u7684\u6838\u5fc3\u6ce8\u89e3\uff0c\u901a\u8fc7\u5b83\u53ef\u4ee5\u4f18\u96c5\u5730\u4ece URL \u8def\u5f84\u4e2d\u63d0\u53d6\u52a8\u6001\u53c2\u6570\uff0c\u4f7f\u4ee3\u7801\u66f4\u7b80\u6d01\u3001\u8bed\u4e49\u66f4\u6e05\u6670\u3002\u4f7f\u7528\u65f6\u9700\u6ce8\u610f\u53c2\u6570\u540d\u5339\u914d\u548c\u7c7b\u578b\u8f6c\u6362\u95ee\u9898\uff0c\u786e\u4fdd\u8def\u5f84\u8bbe\u8ba1\u4e0e\u53c2\u6570\u63a5\u6536\u903b\u8f91\u4e00\u81f4\u3002<\/p>\n\n\n\n<p class=\"has-vivid-red-color has-text-color has-link-color wp-elements-3afb5b63f8e2760c8b539a0600abf5db\"><strong><code>@PathVariable<\/code>\u00a0\u548c\u00a0<code>@RequestParam<\/code>\u00a0\u662f Spring Boot \u4e2d\u7528\u4e8e\u83b7\u53d6\u8bf7\u6c42\u6570\u636e\u7684\u4e24\u4e2a\u6838\u5fc3\u6ce8\u89e3\uff0c\u4f46\u5b83\u4eec\u7684\u5e94\u7528\u573a\u666f\u548c\u4f7f\u7528\u65b9\u5f0f\u6709\u660e\u663e\u533a\u522b\uff1a<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u6838\u5fc3\u533a\u522b<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u7ef4\u5ea6<\/th><th><code>@PathVariable<\/code><\/th><th><code>@RequestParam<\/code><\/th><\/tr><\/thead><tbody><tr><td><strong>\u6570\u636e\u4f4d\u7f6e<\/strong><\/td><td>URL \u8def\u5f84\u4e2d\uff08\u5982&nbsp;<code>\/users\/{id}<\/code>&nbsp;\u4e2d\u7684&nbsp;<code>id<\/code>\uff09<\/td><td>URL \u95ee\u53f7\u540e\u7684\u67e5\u8be2\u53c2\u6570\uff08\u5982&nbsp;<code>?page=1&amp;size=10<\/code>\uff09<\/td><\/tr><tr><td><strong>\u9002\u7528\u573a\u666f<\/strong><\/td><td>RESTful \u98ce\u683c\u7684\u8def\u5f84\u53c2\u6570\uff08\u8d44\u6e90\u6807\u8bc6\uff09<\/td><td>\u8fc7\u6ee4\u3001\u5206\u9875\u3001\u641c\u7d22\u7b49\u53ef\u9009\u53c2\u6570<\/td><\/tr><tr><td><strong>URL \u683c\u5f0f<\/strong><\/td><td><code>\/\u8d44\u6e90\/{\u53d8\u91cf1}\/{\u53d8\u91cf2}<\/code><\/td><td><code>\/\u8d44\u6e90?\u53c2\u65701=\u503c1&amp;\u53c2\u65702=\u503c2<\/code><\/td><\/tr><tr><td><strong>\u662f\u5426\u5fc5\u4f20<\/strong><\/td><td>\u9ed8\u8ba4\u5fc5\u4f20\uff08\u53ef\u901a\u8fc7&nbsp;<code>required=false<\/code>&nbsp;\u8bbe\u4e3a\u53ef\u9009\uff09<\/td><td>\u9ed8\u8ba4\u5fc5\u4f20\uff08\u53ef\u901a\u8fc7&nbsp;<code>required=false<\/code>&nbsp;\u8bbe\u4e3a\u53ef\u9009\uff09<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u4ee3\u7801\u793a\u4f8b\u5bf9\u6bd4<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">1.&nbsp;<code>@PathVariable<\/code>&nbsp;\u793a\u4f8b\uff08\u8def\u5f84\u53c2\u6570\uff09<\/h4>\n\n\n\n<p>\u7528\u4e8e\u83b7\u53d6 URL \u8def\u5f84\u4e2d\u7684\u52a8\u6001\u53d8\u91cf\uff0c\u901a\u5e38\u662f\u8d44\u6e90\u7684\u552f\u4e00\u6807\u8bc6\uff08\u5982 ID\uff09\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@RestController\n@RequestMapping(\"\/users\")\npublic class UserController {\n    \/\/ \u8bbf\u95ee\u8def\u5f84\uff1a\/users\/123\n    @GetMapping(\"\/{id}\")\n    public String getUser(@PathVariable Long id) {\n        return \"\u83b7\u53d6\u7528\u6237ID\uff1a\" + id; \/\/ id = 123\n    }\n}<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">2.&nbsp;<code>@RequestParam<\/code>&nbsp;\u793a\u4f8b\uff08\u67e5\u8be2\u53c2\u6570\uff09<\/h4>\n\n\n\n<p>\u7528\u4e8e\u83b7\u53d6 URL \u4e2d&nbsp;<code>?<\/code>&nbsp;\u540e\u7684\u952e\u503c\u5bf9\u53c2\u6570\uff0c\u901a\u5e38\u662f\u8fc7\u6ee4\u6216\u5206\u9875\u6761\u4ef6\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@RestController\n@RequestMapping(\"\/users\")\npublic class UserController {\n    \/\/ \u8bbf\u95ee\u8def\u5f84\uff1a\/users?page=1&amp;size=10\n    @GetMapping\n    public String getUsers(\n            @RequestParam int page,\n            @RequestParam int size\n    ) {\n        return \"\u7b2c\" + page + \"\u9875\uff0c\u6bcf\u9875\" + size + \"\u6761\"; \/\/ page=1, size=10\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u5176\u4ed6\u5173\u952e\u533a\u522b<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u53c2\u6570\u683c\u5f0f<\/strong>\uff1a\n<ul class=\"wp-block-list\">\n<li><code>@PathVariable<\/code>\u00a0\u7684\u53c2\u6570\u662f URL \u8def\u5f84\u7684\u4e00\u90e8\u5206\uff0c\u5fc5\u987b\u7b26\u5408\u8def\u5f84\u8bed\u6cd5\uff08\u4e0d\u80fd\u5305\u542b\u00a0<code>?&amp;=<\/code>\u00a0\u7b49\u7279\u6b8a\u5b57\u7b26\uff09\u3002<\/li>\n\n\n\n<li><code>@RequestParam<\/code>\u00a0\u7684\u53c2\u6570\u662f\u952e\u503c\u5bf9\u5f62\u5f0f\uff0c\u591a\u4e2a\u53c2\u6570\u7528\u00a0<code>&amp;<\/code>\u00a0\u5206\u9694\uff0c\u652f\u6301\u66f4\u7075\u6d3b\u7684\u53d6\u503c\u3002<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u4f7f\u7528\u573a\u666f<\/strong>\uff1a\n<ul class=\"wp-block-list\">\n<li>\u5f53\u53c2\u6570\u662f\u8d44\u6e90\u7684\u552f\u4e00\u6807\u8bc6\uff08\u5982 ID\u3001\u540d\u79f0\uff09\u65f6\uff0c\u7528\u00a0<code>@PathVariable<\/code>\uff08\u7b26\u5408 RESTful \u8bbe\u8ba1\uff09\u3002<\/li>\n\n\n\n<li>\u5f53\u53c2\u6570\u662f\u53ef\u9009\u7684\u8fc7\u6ee4\u6761\u4ef6\uff08\u5982\u641c\u7d22\u5173\u952e\u8bcd\u3001\u5206\u9875\u53c2\u6570\uff09\u65f6\uff0c\u7528\u00a0<code>@RequestParam<\/code>\u3002<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u9ed8\u8ba4\u503c\u5904\u7406<\/strong>\uff1a\n<ul class=\"wp-block-list\">\n<li>\u4e24\u8005\u90fd\u53ef\u901a\u8fc7\u00a0<code>defaultValue<\/code>\u00a0\u8bbe\u7f6e\u9ed8\u8ba4\u503c\uff0c\u4f46\u00a0<code>@PathVariable<\/code>\u00a0\u9700\u8981\u8def\u5f84\u652f\u6301\uff08\u5982\u00a0<code>\/users\/{id:.*}?<\/code>\u00a0\u5141\u8bb8\u7a7a\u503c\uff09\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ @RequestParam \u8bbe\u7f6e\u9ed8\u8ba4\u503c\n@GetMapping(\"\/list\")\npublic String list(@RequestParam(defaultValue = \"1\") int page) { ... }\n\n\/\/ @PathVariable \u8bbe\u7f6e\u9ed8\u8ba4\u503c\uff08\u9700\u8def\u5f84\u652f\u6301\uff09\n@GetMapping({\"\/info\", \"\/info\/{id}\"})\npublic String info(@PathVariable(required = false, defaultValue = \"0\") Long id) { ... }<\/code><\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5728 Spring Boot \u4e2d\uff0c\u53c2\u6570\u6ce8\u89e3\u7528\u4e8e\u5c06 HTTP \u8bf7\u6c42\u4e2d\u7684\u6570\u636e\uff08\u5982\u8def\u5f84\u53d8\u91cf\u3001\u8bf7\u6c42\u53c2\u6570\u3001\u8bf7\u6c42\u4f53\u7b49\uff09\u7ed1\u5b9a\u5230 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2180","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/note.ui11.cc\/index.php\/wp-json\/wp\/v2\/posts\/2180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/note.ui11.cc\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/note.ui11.cc\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/note.ui11.cc\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/note.ui11.cc\/index.php\/wp-json\/wp\/v2\/comments?post=2180"}],"version-history":[{"count":3,"href":"https:\/\/note.ui11.cc\/index.php\/wp-json\/wp\/v2\/posts\/2180\/revisions"}],"predecessor-version":[{"id":2218,"href":"https:\/\/note.ui11.cc\/index.php\/wp-json\/wp\/v2\/posts\/2180\/revisions\/2218"}],"wp:attachment":[{"href":"https:\/\/note.ui11.cc\/index.php\/wp-json\/wp\/v2\/media?parent=2180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/note.ui11.cc\/index.php\/wp-json\/wp\/v2\/categories?post=2180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/note.ui11.cc\/index.php\/wp-json\/wp\/v2\/tags?post=2180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}