文章目录
1. SpringBoot控制器
在Spring Boot中,控制器是MVC模式中的关键组件,负责处理用户请求,并将其分派到适当的服务进行处理。
1.1 控制器的作用
控制器在Spring Boot应用程序中的主要任务是接收和处理来自用户的请求。这些请求可以是HTTP请求,如GET或POST。一旦接收到请求,控制器通常会与模型(例如,数据模型或服务)交互以处理这些请求,并最终返回一个视图,以便用户可以看到或者直接返回数据给请求方。
1.2 创建一个控制器
在Spring Boot中,创建控制器非常简单。只需要一个类,然后在类上使用@Controller或@RestController注解就可以将该类标记为控制器。让我们看一个简单的示例:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}
在上面的代码中,我们首先导入了所需的类。然后,我们使用@RestController注解标记这个类是一个控制器。接着,我们定义了一个方法hello(),该方法返回一个字符串。@GetMapping(“/hello”)注解告诉Spring Boot,当用户访问"/hello" URL时,应该调用这个方法。
1.3 @Controller与@RestController
在Spring Boot中,有两种类型的控制器:@Controller和@RestController。
@Controller是一个常规控制器,它通常与一个视图模板(如Thymeleaf或FreeMarker)一起使用,来生成一个HTML响应。这是一个典型的例子:
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(Model model) {
model.addAttribute("name", "Spring Boot");
return "hello";
}
}
在上面的代码中,当用户访问"/hello" URL时,会调用hello()方法,然后返回一个名为"hello"的视图。"name"的值(“Spring Boot”)将传递给视图。
另一方面,@RestController是一个特殊类型的控制器,它只返回数据,不返回视图。这对于构建REST API非常有用。@RestController的功能与@Controller和@ResponseBody两个注解的结合效果一样。以上面的"Hello, Spring Boot!"例子就是一个@RestController的示例。
每种控制器都有其用途,你可以根据你的需要来选择使用哪一种。
2. SpringBoot路由
在Spring Boot中,路由是一种机制,通过它,应用程序可以决定如何响应客户端的请求。路由的定义通常依赖于请求的URL和HTTP方法。
2.1 路由的定义和作用
路由在Web应用程序中起着至关重要的作用。它们定义了当用户访问特定URL时应该发生什么。这通常涉及到找到并执行相关的控