从零开始的Spring Boot 第一部分
要简洁的陈述这样一个观点:目标。
计划分为多次实施。
-
- 本次将大致了解什么是SpringBoot。
搭建环境并展示Hello World!。
进行参数和对象的传递,尝试其他功能。
文献引用
SystemLinkIT塾 SpringBoot入門講座
自分自身が初めてSpringBootを学習した際参考になりました。
Thymeleaf公式ドキュメント
公式ドキュメントだけあって非常に充実した内容です。
「SpringBoot是什么?」
这是一种使编写Java框架Spring变得更简单的方式。通过使用注解(类似于@ Override,以@开头的编写方式),不再需要复杂的XML配置文件编写,使它非常易于使用。
构建环境
我们将使用名为STS(Spring Tool Suite 4)的开发环境。它基于广为人知的Java开发环境Eclipse,并添加了一些功能来更方便地进行Spring开发。
1.在以下网站上下载STS并执行。(如果是zip文件,请解压缩)
创建项目
关于依赖关系
我刚刚在Spring Boot DevTools、Thymeleaf和Spring Web中勾选了选择框,这将导致以下代码自动写入pom.xml文件。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
因此,在使用Spring Boot功能时,可以选择在项目创建时勾选依赖关系,也可以手动在pom.xml中进行记录。
简单说,我还需要补充一下pom.xml文件。
你好,世界!(控制器编写)
创建RestController类
package com.example.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DemoRestController {
@RequestMapping(value="/rest",method=RequestMethod.GET)
public String hello() {
return "Hello World!";
}
}
@RestController
本类别用于在不转变到视图(HTML文件等)的情况下,将方法返回的值直接输出到页面的控制器类。
@RequestMapping是一个注解。
在中国人的方式中,我们会这样转述:
这段话表示在方法中进行描述。它是用来将来自客户端的请求与方法进行映射的功能。我们可以指定参数,但是代表性的有以下两个。
value=”/URL”:接收来自指定URL的请求。
method=RequestMethod.GET(或POST):接收来自指定的发送方式的请求。
通过这个步骤,访问 http://localhost:8080/rest
↓
URL 是 /rest,请求方法是 GET(如果在输入 URL 并显示页面时则自动使用 GET 方法。关于为什么,请参考 teratail 上的这个问题,解释得很清楚。)
↓
调用与这个信息匹配的 hello 方法
↓
将返回值 “Hello World!” 输出到页面上。
产生了这样的流程。
另外,@RequestMapping中还提供了带有请求方法的注释选项。由于可以简洁地编写,我们将在下次使用它。
使用 @GetMapping(“/URL”)
@RequestMapping(value=”/URL”,method=RequestMethod.GET) 与原文是一样的。
@提交映射(“/URL”)
@RequestMapping(value=”/URL”,method=RequestMethod.POST)的作用相同。
你好,世界!(控制器版本)
由于在 RestController 类中,通过方法的返回值来显示”Hello World”,所以这次让我们尝试在 HTML 文件中显示它。
创建HTML文件。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
Hello World!
</body>
</html>
创建一个Controller类。
接下来,在src/main/java/com/example/demo目录下创建DemoController类,并添加以下代码。(创建方法与创建RestController类相同)
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class DemoController {
@RequestMapping(value="/",method=RequestMethod.GET)
public ModelAndView hello() {
ModelAndView mav=new ModelAndView();
mav.setViewName("/index");
return mav;
}
}
@Controller
控制器
在类中进行描述。与@RestController不同,它是一个可以跳转到页面的控制器类。如果您希望在指定的类中定义一个不需要跳转到视图,而是在页面上显示返回值的方法,只需在方法上加上@ResponseBody即可。
@RequestMapping(value="/body",method=RequestMethod.GET)
@ResponseBody
public String body() {
return "Hello World?";
}
模型视图
这个类具备Model(对象管理)和View(Web页面信息)的功能。虽然也有单独的这两个类,但通常使用的是ModelAndView。
主要方法如下:
复习
SpringBootはSpringをより使いやすくしたもの
Spring Tool Suiteで簡単開発
@RequestMappingでURLとメソッドの紐づけ
@RestControllerでメソッドの戻り値をページに表示
@ControllerでHTMLファイルをページに表示
本次就到这里了。辛苦了。从下次开始将进入参数传递的阶段!