一、API定义
Spring boot定于restful API极其简单,通过几个简单的注解便可完全实现。
1 、在类名称前面增加注解@RestController,增加注解@RequestMapping,定义访问路由
@RestController
@RequestMapping(path="/greet") // This means URL's start with /demo (after Application
public class UserController {
}
2、定义具体方法,我们这里返回字符串,其他方式可自行搜索
@RequestMapping("/hello")
@ResponseBody
public String home(){
return "sdfsdfsdf";
}
3、运行Spring主文件
4、浏览器访问验证
二、数据库访问(MySQL)
1 、安装MySQL数据库(略)
2、pom.xml增加如下依赖
<!-- JPA Data (We are going to use Repositories, Entities, Hibernate, etc...) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- Use MySQL Connector-J -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
如需要显示执行过程中的sql语句,再添加如下依赖
<!-- log4jdbc 依赖-->
<dependency>
<groupId>com.googlecode.log4jdbc</groupId>
<artifactId>log4jdbc</artifactId>
<version>1.2</version>
</dependency>
3 、application.properties文件增加如下配置
spring.jpa.hibernate.ddl-auto=update
#这里增加了log4jdbc代理显示sql语句,如果不需要配置可以改为:jdbc:mysql://localhost:3307/xiyu?characterEncoding=utf-8&useSSL=false
spring.datasource.url=jdbc:log4jdbc:mysql://localhost:3307/xiyu?characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
#通过log4jdbc的方式代理mysql请求来捕捉sql日志,否则可不设置
spring.datasource.driverClassName = net.sf.log4jdbc.DriverSpy
4 定义Entity类文件,此文件字段需要和数据库表结构对应,hibernate执行过程中会通过此文件修改表结构
package com.hodor.xiyu.entity;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
private String name;
private String email;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
5 定义Repository类文件,此文件中定义数据库的各种操作,具体参考官方文档
package com.hodor.xiyu.repository;
import com.hodor.xiyu.entity.User;
import org.springframework.data.repository.CrudRepository;
public interface UserRepository extends CrudRepository<User,Integer> {
}
6 示例:定义保存数据的方法
@PostMapping(path="/add") // Map ONLY GET Requests
public @ResponseBody User addNewUser (@RequestBody User us) {
// @ResponseBody means the returned String is the response, not a view name
// @RequestParam means it is a parameter from the GET or POST request
User n = new User();
n.setName(us.getName());
n.setEmail(us.getEmail());
User rt = userRepository.save(n);
return rt;
}
7 Postman访问
三、模板渲染
如果明白了API的定义方式,返回模板渲染就很方便了,项目中使用thymeleaf模板引擎。
1 定义模板文件,创建目录 /src/resources/templates/user,默认模板文件夹是templates,同时在目录中创建文件user_list.html
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>用户列表</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<table>
<thead>
<tr>
<td>用户名</td>
<td>email</td>
</tr>
</thead>
<tbody>
<tr th:each="user, stat:${users}">
<td th:text="${user.name}"></td>
<td th:text="${user.email}">text@test.com</td>
</tr>
</tbody>
</table>
</body>
</html>
2 定义模板渲染函数,在controller类上增加注解@Controller
@Controller // This means that this class is a Controller
@RequestMapping(path="/user") // This means URL's start with /demo (after Application
public class UserController {
}
渲染函数如下:
@GetMapping(path="/all")
public String getAllUsers(Model model) {
// This returns a JSON or XML with the users
model.addAttribute("users",userRepository.findAll());
return "hello/user_list";
}
3 访问页面
附件资源:
https://download.csdn.net/download/xiyushiyi/10332828
done