在Spring框架中,@Controller
是一个核心的注解,用于标记一个类为Spring MVC的控制器类。这样的类通常包含多个用于处理HTTP请求的方法,并返回视图名称、ModelAndView
对象、或者响应体(如JSON、XML等)。
当你为一个类添加 @Controller
注解时,Spring MVC会自动检测并识别这个类,将其作为一个控制器,并为其创建相应的bean实例。
以下是一个简单的 @Controller
示例:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello() {
// 这里只是简单地返回一个视图名称
// 实际的视图(如JSP、Thymeleaf模板等)将在其他地方定义
return "hello";
}
}
在这个例子中,HelloController
类被标记为一个控制器。当HTTP GET请求发送到 /hello
路径时,hello()
方法会被调用,并返回一个视图名称 "hello"
。然后,Spring MVC会尝试渲染与这个名称关联的视图。
注意,你还可以使用其他注解(如 @RequestMapping
、@PostMapping
、@PutMapping
、@DeleteMapping
等)来指定控制器方法应处理哪些HTTP请求和方法类型。这些注解提供了更细粒度的控制,但 @GetMapping
、@PostMapping
等是 @RequestMapping
的特殊化版本,使得代码更简洁。