使用SpringBoot开发JavaWeb应用入门
0、环境及开发工具准备
环境
- 首先是jdk,可以到oracle官网(oracle.com)下载jdk,版本用8或11都行,本文演示使用8
- 然后是数据库,本文使用MySQL5.7
开发工具
可以使用sts或者idea,本文使用idea,下载地址(https://www.jetbrains.com/idea/download/#section=windows),下载旗舰版(Ultimate)可以免费试用30天
1、创建项目
统一编码
创建项目之前,首先统一字符集以防止中文乱码
设置idea编码:
启动时右下Configure - Settings
然后搜索encoding,两个都改为UTF-8,确认即可
创建SpringBoot项目
点击Create New Project
左边选择Spring Initializr,右边Project SDK选择jdk1.8,如果没有的话就New一个
然后点击Next填写项目信息,这里我就全部默认,继续Next
这里选择项目依赖,暂时只勾选Web下的Web,继续Next
最后一步,填写项目名和选择项目存放位置
这里我也都默认了(项目位置强烈不建议使用带有中文和特殊字符的路径),Finish
然后idea会自动帮我们下载项目依赖包,此时需要保持网络稳定
整个项目的结构大致是这样的
启动看看效果
点击DemoApplication或者main方法前面的绿色小箭头即可启动应用
看到控制台打出了Tomcat started on port(s): 8080 (http) with context path ''
这句日志,打开浏览器输入网址http://localhost:8080
即可看到如下界面
这是一个默认的错误页面,但也足以说明项目成功启动了
2、编写控制器(Controller)
上一节说到启动后展示了一个默认的错误页面,相信很多人都能看懂那个错误,404嘛
因为我们没有指定应该展示什么页面。
接下来我们就来指定一下
新建一个Controller
在启动类DemoApplication的包名上右键新建一个包,取名就叫controller
在新建的controller包上右键新建一个Java Class,就叫IndexController吧
添加一个请求映射
在新建的IndexController里添加如下代码
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class IndexController {
@RequestMapping(value = "/", method = RequestMethod.GET)
@ResponseBody
public String index() {
return "<h1>Hello SpringBoot</h1>";
}
}
点击右上角重启应用
刷新浏览器即可看到我们在index方法里return的Hello SpringBoot
请求映射简解
如何映射一个url地址到一个具体方法呢?我们来看一下IndexController类的内容
- 首先这个类得是控制器类,IndexController为什么是控制器呢,不是因为他叫xxxController,而是因为他头上的@Controller注解
@Controller
public class IndexController {
- 然后看这个方法
@RequestMapping(value = "/", method = RequestMethod.GET)
@ResponseBody
public String index() {
return "<h1>Hello SpringBoot</h1>";
}
- 首先是@RequestMapping(value = “/”, method = RequestMethod.GET)
- @RequestMapping是指把一个请求映射到这个方法来处理
- value指的是那个url,这里的url是相对的url,即相对于
http://localhost:8080/
的url - method是指请求方法,最常用的有GET,POST,PUT,DELETE等,我们从浏览器里直接输的网址,是GET请求
- 这个注解还有一种简写
@GetMapping("/")
,对应的也有@PostMapping,@PutMapping,@DeleteMapping等 - 最后是@ResponseBody注解,他表明把这个方法的返回值直接返回给浏览器,如果不加这个注解,将会解析并返回视图,接下来就讲讲返回视图的操作
3、使用模板引擎
Java的模板引擎有很多,这里使用SpringBoot官方推荐的thymeleaf
,教程参考
首先添加依赖
在项目根目录的pom.xml
的标签内部添加如下内容
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
然后在src/resources/templates下新建一个test.html
最后添加一个请求映射到这个html
在IndexController里添加一个方法,如下
@GetMapping("/test")
public String test() {
return "test";
}
打开http://localhost:8080/test
即可看到这个页面