控制器定义

未匹配的标注

控制器

springboot的控制器一般放在 com.company.demo.controller 包下,但它其实不依靠目录,而依靠注解。
也就是说你其实可以把类放在任意一个位置,只要加了注解,springboot启动时会扫描整个项目,从而知道这是一个你定义的控制器。

可用注解

注解 说明
@Controller 标记类为 MVC 控制器,通常用于传统 Web 视图
@RestController 组合注解(@Controller + @ResponseBody),用于 RESTful API(直接返回 JSON/XML 数据,而非视图)

例子

/**
 * 控制器
 */
@Controller
public class IndexController {

    @GetMapping("/about")
    public String about(){
        // 访问 127.0.0.1:8080/about
    }

}

/**
 * 控制器|设置路由前缀
 * @Controller("/admin") 表示整个控制器通用路由前缀admin
 * 类似 laravel 的 Route::prefix('admin')->group()
 */
@Controller("/admin")
public class UserController {

    @GetMapping("/user/login")
    public String login(){
        // 访问 127.0.0.1:8080/admin/user/login
    }

}

控制器相关注解汇总

注解 用途
@Controller 定义传统 Web 控制器(返回视图)
@RestController 定义 RESTful API 控制器(返回 JSON)
@RequestMapping 通用请求映射配置
@GetMapping 快捷定义 HTTP 方法映射
@PathVariable 从 URL 路径中获取变量
@RequestParam 从 URL 查询参数中获取值
@RequestBody 绑定请求体数据到对象
@ResponseBody 直接返回数据到响应体
@ExceptionHandler 处理控制器内的异常
@ModelAttribute 绑定表单数据到模型对象
@CrossOrigin 配置跨域请求

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
唐章明
讨论数量: 0
发起讨论 查看所有版本


暂无话题~