Spring Boot 2.x 小新功能

  • 时间:
  • 浏览:3

设置 pring.data.web.pageable.size-parameter 可修改当前页参数名,默认参数名为 size

JDK 8 +

/**

    *  创建用户

    *    处里 "/users" 的 POST 请求,用来获取用户列表

    *    通过 @RequestBody 绑定实体类参数

    */

   @RequestMapping(value = "/create", method = RequestMethod.POST)

    │   │               │   ├── UserService.java

    │   │                   └── UserController.java

要是说,能并能在 application.properties 中自定义分页和排序相关的默认值和参数名。

最好的赞赏

Spring Boot exposes a new spring.data.web configuration namespace that allows to easily configure paging and sorting.

具体删剪特征如下:

具体见地址:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0.0-M2-Release-Notes

    Page<T> findAll(Pageable pageable);

    "age":22,

├── pom.xml

上一篇:《「北京站」ArchData 技术峰会-文末社区送福利》

这里要是,Spring 2.x 更新了有另四个小小的功能即:

</snapshots></repository></repositories></project>

本文提纲

</dependency><!-- 单元测试依赖 -->

       <dependency><groupId>org.springframework.boot</groupId>

    │   │               │       └── UserServiceImpl.java

└── src

1. 工程特征

Spring Boot 2.0.0.M4 

最重要的是,

一、前言

如图:

    │   │               ├── service

org.spring.springboot.domain - 实体类及数据操作层 DAO

    │   │               │   ├── User.java

Content-Type: application/json

设置 spring.data.web.sort.sort-parameter 可修改字段排序参数名,默认参数名为 sort

@Autowired

   UserService userService; // 用户服务层



   /**

    *  获取用户分页列表

    *    处里 "/users" 的 GET 请求,用来获取用户分页列表

    *    通过 @RequestParam 传递参数,进一步实现条件查询肯能分页查询

    *

    *    Pageable 支持的分页参数如下

    *    page - 当前页 从 0 结束了

    *    size - 每页大小 默认值在 application.properties 配置

    */

   @RequestMapping(method = RequestMethod.GET)

    └── test

@Autowired

   UserRepository userRepository;

设置 spring.data.web.pageable.default-page-size 可修改分页大小,默认分页大小为 20

推荐:《泥瓦匠 5 年 Java 的成长感悟(上)》

size - 每页大小 默认值在 application.properties 配置

 分页查询用户: PageNumber = 1 PageSize = 3

2017-09-20 14:46:16.703  INFO 14593 --- [nio-60 60 -exec-4] o.h.h.i.QueryTranslatorFactoryInitiator  : HHH000397: Using ASTQueryTranslatorFactory

就后会你的关注

    │   │               │   └── impl

这边没办法 具体的业务操作,就打印了对应业务层分页相关的参数。

@Override

   public User insertByUser(User user) {

    │   ├── java

5.用户控制层 UserController

4.用户业务层实现类 UserServiceImpl

</dependency><!-- h2 数据源连接驱动 -->

       <dependency><groupId>com.h2database</groupId>

/**

}

要是说,能并能在 application.properties 中自定义分页和排序相关的默认值和参数名。

Hibernate: select count(user0_.id) as col_0_0_ from user user0_

    │   │               ├── domain

这里我们 修改了各个参数名。肯能那先 后会设置一句话,分页排序查询接口地址如下:

    │   │               └── web

<parent><groupId>org.springframework.boot</groupId>

    │   │               ├── PagingSortingApplication.java

PagingAndSortingRepository 提供了有另四个接口

还是温故知新,加进去去要是 Spring 2.x 小新功能 - Spring Data Web configuration

2.编译工程

GET http://localhost:60 60 /users?page=1&size=3&sort=id,desc

1.pom.xml

可见,查询出第 2 页的用户数据,而且按 id 倒序。还有可见,返回了分页相关的数据:每页大小(这里是 3 个)、排序、总个数和总页数等。

page - 当前页 从 0 结束了

    "birthday":"2019-09-19"

POST http://localhost:60 60 /users/create

/**

git clone 下载工程 spring-boot-core-book-demo ,项目地址见 GitHub -

</dependency></dependencies><build><plugins><!-- Spring Boot Maven 插件 -->

           <plugin><groupId>org.springframework.boot</groupId>

从应用日志中并能并能看出对应的 HQL : 

四、小结

<name>chapter-5-spring-boot-paging-sorting</name>

Mac OS 10.12.x

接口而且我继承 PagingAndSortingRepository 类即可。默认会提供要是 实现,比如 CRUD 相关的实现。支持的默认最好的办法有: count(), findAll(), findOne(ID), delete(ID), deleteAll(), exists(ID), save(DomainObject), save(Iterable<DomainObject>)。

运行环境:

二、运行工程

https://github.com/JeffLi1993/spring-boot-core-book-demo。 

org.spring.springboot.controller - Controller 层

重复后边步骤,新增用户 13 个。

四、小结

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    "name":"javaer",

mvn clean install

GET http://localhost:60 60 /users?pageNumber=1&pageSize=3&orderBy=id,desc

Spring 2.x 更新了有另四个小小的功能即:

一、前言

简单依赖了 Web 依赖、Spring Data JPA 依赖 :: 数据持久层框架,而且使用 h2 内存式数据源。

}

2017-09-20 14:46:16.660  INFO 14593 --- [nio-60 60 -exec-4] s.b.core.service.impl.UserServiceImpl    :  

在项目根目录 spring-boot-core-book-demo,运行 maven 指令去编译工程:

</dependency><!-- Spring Data JPA 依赖 :: 数据持久层框架 -->

       <dependency><groupId>org.springframework.boot</groupId>

    │   │           └── core

}

PagingSortingApplication - 应用启动类

    │       └── static

项目特征如下图所示:

@Override

   public Page<User> findByPage(Pageable pageable) {

    │   └── resources

https://github.com/JeffLi1993/spring-boot-core-book-demo

    Iterable<T> findAll(Sort sort);

2.在 application.properties 应用配置文件,增加相关分页排序参数

要是不明白的,能并能git clone 下载工程 spring-boot-core-book-demo,工程代码注解很删剪,项目地址见 GitHub -

org.spring.springboot.service - 业务逻辑层

设置 spring.data.web.pageable.page-parameter 可修改当前页参数名,默认参数名为 page

    │   │               │   └── UserRepository.java

这里实现了有另四个 HTTP 服务接口。这次主要在实现 getUserPage 最好的办法,利用分页参数来进行。

    │       ├── application.properties

3.用户持久层操作接口 UserRepository

    │   │   └── spring

Spring Data Web configuration

3.运行工程

application.properties - 应用配置文件,应用启动会自动读取配置

而且,调用分页查询用户列表接口:

如图:

private static final Logger LOGGER = LoggerFactory.getLogger(UserServiceImpl.class);

在 PostMan 工具中,新增用户几次:

    ├── main

    │   │       └── boot

关于 Data Web 分页和排序相关的配置:

在 chapter-5-spring-boot-paging-sorting 工程中,右键运行 PagingSortingApplication 应用启动类的 main 函数。待控制台日志中看多启动成功后。

<snapshots><enabled>false</enabled>

</properties><dependencies><!-- Web 依赖 -->

       <dependency><groupId>org.springframework.boot</groupId>

用来支持 分页 和 排序 的获取数据接口。

<groupId>spring.boot.core</groupId>

三、工程配置详解

三、chapter-5-spring-boot-paging-sorting 工程配置详解

二、运行 chapter-5-spring-boot-paging-sorting 工程

/**

Hibernate: select user0_.id as id1_0_, user0_.age as age2_0_, user0_.birthday as birthday3_0_, user0_.name as name4_0_ from user user0_ order by user0_.id desc limit ? offset ?

{

</plugin></plugins></build><repositories><repository><id>spring-milestones</id>