在 spring boot 中,控制器是一个包含处理 http 请求的方法的类。控制器是通过使用 restcontroller 注解一个类来创建的。
@restcontroller public class examplecontroller { private examplerepository examplerepository; private static final string template = "hello, %s!"; @getmapping("/examples/{requestedid}") public responseentity<example> findbyid(@pathvariable long requestedid) { } } </example>
getmapping 注释用于将与字符串模式匹配的所有 get 请求路由到控制器中的方法。在您刚刚查看的代码示例中,getmapping 注释用于将所有对 url /examples/* 的 get 请求路由到 findbyid 方法。使用此代码,当请求发送到 /examples/ 时,将调用 findbyid 方法。
请求映射还有针对其他请求方法的其他注释,例如 postmapping 和 deletemapping。它们都是从父注释 requestmapping 派生的,您可以在它们的位置使用 requestmapping,但是,当您使用 requestmapping 时,您必须指定它应该处理的 http 方法
@restcontroller public class examplecontroller { private examplerepository examplerepository; private static final string template = "hello, %s!"; @requestmapping(method="get", path="/examples/{requestedid}") public responseentity<example> findbyid(@pathvariable long requestedid) { } } </example>
requestmapping 最常用于指定您希望 restcontroller 处理的 url。
@RestController @RequestMapping("/api/v1/examples") // This is the base path public class ExampleController { @GetMapping public String getAllExamples() { } @GetMapping("/{id}") public String getExampleById(@PathVariable("id") Long id) { } @PostMapping public String createExample() { } @DeleteMapping("/{id}") public String deleteExample(@PathVariable("id") Long id) { } }
在上面的代码片段中,通过使用 requestmapping 注解 restcontroller 类,url /api/v1/examples 充当类内所有路由的前缀。这意味着 getmapping 为 /{id} 的 getexamplebyid 方法实际上具有 getmapping 为 /api/v1/examples/{id} ,这同样适用于此类中具有与其关联的 requestmapping 的每个方法。
以上就是Spring Boot 控制器基础知识的详细内容,更多请关注图灵教育其它相关文章!