rest-demo
本模块主要演示了对数据库的增删改查等操作。
- 采用嵌入式的H2数据库
- 使用Spring Data JPA进行数据持久化
- 通过Spring Data Rest将Spring Data JPA的Repository自动转换成REST服务
- 引入the HAL Browser,便于可视化测试
url | desc |
---|---|
http://localhost:8082/h2 | 访问h2控制台 |
http://localhost:8082/api | 返回接口清单 |
配置H2数据库
- 引入Maven依赖
com.h2database
h2
runtime
- 配置数据源等参数
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.url=jdbc:h2:file:~/.h2/test
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
# 启用H2控制台
spring.h2.console.enabled=true
# 设置H2控制台访问路径
spring.h2.console.path=/h2
配置Spring Data JPA
- 引入Maven依赖
org.springframework.boot
spring-boot-starter-data-jpa
- 定义实体类
@Entity
public class User {
@Id
@GeneratedValue
private Integer id;
private String name;
private String address;
...
}
- 定义仓库接口
增加@RepositoryRestResource注解,可通过path自定义Repository访问路径
@RepositoryRestResource(path = "user")
public interface UserRepository extends JpaRepository<User, Integer> {
User findByName(@Param("name") String name);
List<User> findByAddress(@Param("address") String address);
}
配置Spring Data REST
- 引入Maven依赖
org.springframework.boot
spring-boot-starter-data-rest
当然,也可直接引入the HAL Browser依赖,这样,测试起来将会更方便、更直观。
org.springframework.data
spring-data-rest-hal-browser
- 配置REST相关参数
非必须
spring.data.rest.basePath = /api
- 配置获取主键ID
默认情况下,接口查询是不会返回主键ID的;如果希望获取主键,可增加如下配置:
@Configuration
public class RepositoryConfig extends RepositoryRestConfigurerAdapter {
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
config.exposeIdsFor(User.class);
config.exposeIdsFor(Department.class);
}
}
运行截图
- Spring Data REST
- the HAL Browser
- H2 Console