-
跳转页面:
@Controller
public class TestController {
@GetMapping(value=“/hello”)
public String test() {
return “index.html”;
}
}
注意:上述的 index.html必须在static中 -
@RestController = @Controller + @ResponseBody 返回内容
@Controller 返回页面,页面在src/main/rseources/statics中
@ResponseBody 返回内容 -
@GetMapping ,@PostMapping和@RequestMapping区别
GetMapping 是一个处理 GET 请求的方法。它主要用于获取数据,例如查询数据库、获取页面信息等
PostMapping 是一个处理 POST 请求的方法。它主要用于提交数据,例如表单提交、文件上传等。
RequestMapping 是一个更高级别的映射方法,可以处理多种 HTTP 请求方法(GET、POST、PUT、DELETE 等)。它主要用于处理更复杂的请求,例如跨域请求、带有请求头的请求等。
@RequestMapping(value = “/api”, method = RequestMethod.GET) -
1)当Controller类存在返回页面的控制器时,不可以使用@RestController来注解这个Controller类。
2)当需要同时返回页面和字符串时,需要使用@Controller,来注解这个Controller类,然后在返回字符串的方法上,使用@ResponseBody,来注解那个具体的方法。
3)当不需要返回页面时,可以直接使用@RestController注解,来代替@Controller和@ResponseBody,即可直接返回结果。 -
resoureces目录下可使用application.yaml来配置,和appliaction.properties相当


-
templates目录和statics目录:
static目录用来保存静态文件的目录, 比如HTML, JS, CSS, 图片等, 是不需要服务器进行数据绑定的页面.
static目录下的文件, SpringBoot帮我们做了静态路径自动解析.比如: 我写了一个/static/hello.html在浏览器上访问: localhost/hello.html 即可访问到.
template目录是用来保存动态模版文件的目录, 比如Freemarker, JSP, Thymeleaf等需要服务器动态渲染数据的文件.
由于页面渲染需要服务器中的数据, 所以该文件必须经过Controller控制器进行Model数据绑定后, 由服务器进行跳转. 所以直接访问是无意义的, 也访问不到.比如: 我写了一个/templates/hello.ftl在浏览器上访问: localhost/hello.ftl是访问不到的, 需要访问Controller的路径, 才能访问到页面 (由Controller进行跳转, 也就说明数据已经绑定成功.) -
ApiResponse 用于controller的返回模板:(自己理解的,可以设置这么一个类,使得代码更加简洁)
如下图所示有几个注意点
1)使用了Serializable接口:Serializable 接口是一个标记接口,用于表示一个对象可以被序列化。序列化是指将对象的状态转换为一种特定的数据格式,以便于存储或传输。通常,序列化后的数据可以更紧凑、更快速地进行存储和传输。
当一个类实现了 Serializable 接口时,Java 自带的序列化机制(如 ObjectOutputStream 和 ObjectInputStream)就可以自动地对这个对象进行序列化和反序列化操作。
需要注意的是,Serializable 接口本身没有任何方法,只是作为一个标记接口,用于指示对象可以被序列化。具体的序列化和反序列化操作是由 Java 自带的类和方法完成的。
2)调用时直接new ResponseAP即可

8. @Data:是一个来自 Lombok 库的注解,用于简化 Java 对象的 getter 和 setter 方法。当你使用 Lombok 库时,在类或属性上添加 @Data 注解,Lombok 会自动生成 getter 和 setter 方法。这样可以减少重复代码,使开发过程更加简洁高效。
但需要导入依赖

Java:restudy——SpringBoot中的controller
于 2023-10-01 20:10:25 首次发布

216

被折叠的 条评论
为什么被折叠?



