spring boot 整合RESTFUL服务
目录
1、自定义请求路径
2、自定义查询方法
3、隐藏方法
4、配置cors
5、其他配置
1、添加restful项目的pom文件
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency>
2、创建实体类
@Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String name; private String age; 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 getAge() { return age; } public void setAge(String age) { this.age = age; } }
3、配置文件application.properties
#数据源1 spring.datasource.type = com.alibaba.druid.pool.DruidDataSource spring.datasource.username = root spring.datasource.password = root spring.datasource.url = jdbc:mysql://localhost/chapter01?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL57Dialect spring.jpa.properties.database = mysql spring.jpa.properties.hibernate.hbm2ddl.auto = update spring.jpa.properties.show-sql = true
4、创建UserRepository
public interface UserRepository extends JpaRepository<User,Integer> { User findByNameEquals(@Param("name")String name); }
自定义请求路径
默认的查询方法为http://localhost:8080/实体类小写加s:http://localhost:8080/users
http://localhost:8080/users/search 改实体类暴露出了哪些方法
需要在 UserRepository加上注解 :@RepositoryRestResource(path = "us" ,collectionResourceRel = "us",itemResourceRel = "b")
自定义查询方法需要在方法上加上
@RestResource(path = "name",rel = "name")
隐藏方法
在类或方法上加上@RepositoryRestResource(exported=false)
配置cors
在类或方法上加@CrossOrigin可以跨域访问
其他配置
#每页默认条数,默认为20 spring.data.rest.default-page-size=2 #分页查询页码参数名,默认值为page spring.data.rest.page-param-name=page #分页查询记录参数名,默认为size spring.data.rest.limit-param-name=size #分页查询排序参数名,默认值为sort spring.data.rest.sort-param-name=sort #请求路径上都加上/api spring.data.rest.base-path=/api #添加成功是否返回内容 spring.data.rest.return-body-on-create=true #更新成功是否返回更新内容 spring.data.rest.return-body-on-update=true
上面的配置也可以写成java配置,java配置优先级比较高
@Configuration public class RestConfig extends RepositoryRestConfigurerAdapter { @Override public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) { config.setDefaultPageSize(2) .setPageParamName("page") .setLimitParamName("size") .setSortParamName("sort") .setBasePath("/api") .setReturnBodyOnCreate(true) .setReturnBodyOnCreate(true); } }
具体代码参考GitHub:https://github.com/FadeHub/spring-boot-learn/tree/master/spring-boot-restful