spring boot 整合RESTFUL服务

目录

1、自定义请求路径

2、自定义查询方法

3、隐藏方法

4、配置cors

5、其他配置


spring boot 整合RESTFUL服务 

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