Polish "Improve Spring Data Web configuration properties"
Closes gh-11403
This commit is contained in:
parent
be93eabc6b
commit
cfa3cab988
|
|
@ -65,14 +65,14 @@ public class SpringDataWebAutoConfiguration {
|
|||
public PageableHandlerMethodArgumentResolverCustomizer pageableCustomizer() {
|
||||
return (resolver) -> {
|
||||
Pageable pageable = this.properties.getPageable();
|
||||
resolver.setFallbackPageable(
|
||||
PageRequest.of(0, pageable.getDefaultPageSize()));
|
||||
resolver.setPageParameterName(pageable.getPageParameter());
|
||||
resolver.setSizeParameterName(pageable.getSizeParameter());
|
||||
resolver.setOneIndexedParameters(pageable.isOneIndexedParameters());
|
||||
resolver.setPrefix(pageable.getPrefix());
|
||||
resolver.setQualifierDelimiter(pageable.getQualifierDelimiter());
|
||||
resolver.setFallbackPageable(
|
||||
PageRequest.of(0, pageable.getDefaultPageSize()));
|
||||
resolver.setMaxPageSize(pageable.getMaxPageSize());
|
||||
resolver.setOneIndexedParameters(pageable.isOneIndexedParameters());
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -54,33 +54,33 @@ public class SpringDataWebProperties {
|
|||
*/
|
||||
private String sizeParameter = "size";
|
||||
|
||||
/**
|
||||
* Whether to expose and assume 1-based page number indexes. Defaults to "false",
|
||||
* meaning a page number of 0 in the request equals the first page.
|
||||
*/
|
||||
private boolean oneIndexedParameters = false;
|
||||
|
||||
/**
|
||||
* General prefix to be prepended to the page number and page size parameters.
|
||||
*/
|
||||
private String prefix = "";
|
||||
|
||||
/**
|
||||
* Delimiter to be used between the qualifier and the actual page number and size
|
||||
* properties.
|
||||
*/
|
||||
private String qualifierDelimiter = "_";
|
||||
|
||||
/**
|
||||
* Default page size.
|
||||
*/
|
||||
private int defaultPageSize = 20;
|
||||
|
||||
/**
|
||||
* Configures a general prefix to be prepended to the page number and page size parameters.
|
||||
*/
|
||||
private String prefix;
|
||||
|
||||
/**
|
||||
* Configures the delimiter to be used between the qualifier and the actual page number and size properties.
|
||||
*/
|
||||
private String qualifierDelimiter;
|
||||
|
||||
/**
|
||||
* Configures the maximum page size to be accepted.
|
||||
* Maximum page size to be accepted.
|
||||
*/
|
||||
private int maxPageSize = 2000;
|
||||
|
||||
/**
|
||||
* Whether to expose and assume 1-based page number indexes in the request parameters.
|
||||
* Defaults to {@literal false}, meaning a page number of 0 in the request equals the first page.
|
||||
* If this is set to {@literal true}, a page number of 1 in the request will be considered the first page.
|
||||
*/
|
||||
private boolean oneIndexedParameters = false;
|
||||
|
||||
public String getPageParameter() {
|
||||
return this.pageParameter;
|
||||
}
|
||||
|
|
@ -97,6 +97,30 @@ public class SpringDataWebProperties {
|
|||
this.sizeParameter = sizeParameter;
|
||||
}
|
||||
|
||||
public boolean isOneIndexedParameters() {
|
||||
return this.oneIndexedParameters;
|
||||
}
|
||||
|
||||
public void setOneIndexedParameters(boolean oneIndexedParameters) {
|
||||
this.oneIndexedParameters = oneIndexedParameters;
|
||||
}
|
||||
|
||||
public String getPrefix() {
|
||||
return this.prefix;
|
||||
}
|
||||
|
||||
public void setPrefix(String prefix) {
|
||||
this.prefix = prefix;
|
||||
}
|
||||
|
||||
public String getQualifierDelimiter() {
|
||||
return this.qualifierDelimiter;
|
||||
}
|
||||
|
||||
public void setQualifierDelimiter(String qualifierDelimiter) {
|
||||
this.qualifierDelimiter = qualifierDelimiter;
|
||||
}
|
||||
|
||||
public int getDefaultPageSize() {
|
||||
return this.defaultPageSize;
|
||||
}
|
||||
|
|
@ -105,37 +129,14 @@ public class SpringDataWebProperties {
|
|||
this.defaultPageSize = defaultPageSize;
|
||||
}
|
||||
|
||||
public String getPrefix() {
|
||||
return prefix;
|
||||
}
|
||||
|
||||
public void setPrefix(final String prefix) {
|
||||
this.prefix = prefix;
|
||||
}
|
||||
|
||||
public String getQualifierDelimiter() {
|
||||
return qualifierDelimiter;
|
||||
}
|
||||
|
||||
public void setQualifierDelimiter(final String qualifierDelimiter) {
|
||||
this.qualifierDelimiter = qualifierDelimiter;
|
||||
}
|
||||
|
||||
public int getMaxPageSize() {
|
||||
return maxPageSize;
|
||||
return this.maxPageSize;
|
||||
}
|
||||
|
||||
public void setMaxPageSize(final int maxPageSize) {
|
||||
public void setMaxPageSize(int maxPageSize) {
|
||||
this.maxPageSize = maxPageSize;
|
||||
}
|
||||
|
||||
public boolean isOneIndexedParameters() {
|
||||
return this.oneIndexedParameters;
|
||||
}
|
||||
|
||||
public void setOneIndexedParameters(final boolean oneIndexedParameters) {
|
||||
this.oneIndexedParameters = oneIndexedParameters;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -89,16 +89,38 @@ public class SpringDataWebAutoConfigurationTests {
|
|||
.isEqualTo("p");
|
||||
assertThat(ReflectionTestUtils.getField(argumentResolver, "sizeParameterName"))
|
||||
.isEqualTo("s");
|
||||
assertThat(ReflectionTestUtils.getField(argumentResolver, "fallbackPageable"))
|
||||
.isEqualTo(PageRequest.of(0, 10));
|
||||
assertThat(ReflectionTestUtils.getField(argumentResolver, "oneIndexedParameters"))
|
||||
.isEqualTo(true);
|
||||
assertThat(ReflectionTestUtils.getField(argumentResolver, "prefix"))
|
||||
.isEqualTo("abc");
|
||||
assertThat(ReflectionTestUtils.getField(argumentResolver, "qualifierDelimiter"))
|
||||
.isEqualTo("__");
|
||||
assertThat(ReflectionTestUtils.getField(argumentResolver, "fallbackPageable"))
|
||||
.isEqualTo(PageRequest.of(0, 10));
|
||||
assertThat(ReflectionTestUtils.getField(argumentResolver, "maxPageSize"))
|
||||
.isEqualTo(100);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void defaultPageable() {
|
||||
load();
|
||||
PageableHandlerMethodArgumentResolver argumentResolver = this.context
|
||||
.getBean(PageableHandlerMethodArgumentResolver.class);
|
||||
SpringDataWebProperties.Pageable properties = new SpringDataWebProperties().getPageable();
|
||||
assertThat(ReflectionTestUtils.getField(argumentResolver, "pageParameterName"))
|
||||
.isEqualTo(properties.getPageParameter());
|
||||
assertThat(ReflectionTestUtils.getField(argumentResolver, "sizeParameterName"))
|
||||
.isEqualTo(properties.getSizeParameter());
|
||||
assertThat(ReflectionTestUtils.getField(argumentResolver, "oneIndexedParameters"))
|
||||
.isEqualTo(true);
|
||||
.isEqualTo(properties.isOneIndexedParameters());
|
||||
assertThat(ReflectionTestUtils.getField(argumentResolver, "prefix"))
|
||||
.isEqualTo(properties.getPrefix());
|
||||
assertThat(ReflectionTestUtils.getField(argumentResolver, "qualifierDelimiter"))
|
||||
.isEqualTo(properties.getQualifierDelimiter());
|
||||
assertThat(ReflectionTestUtils.getField(argumentResolver, "fallbackPageable"))
|
||||
.isEqualTo(PageRequest.of(0, properties.getDefaultPageSize()));
|
||||
assertThat(ReflectionTestUtils.getField(argumentResolver, "maxPageSize"))
|
||||
.isEqualTo(properties.getMaxPageSize());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -646,11 +646,11 @@ content into your application. Rather, pick only the properties that you need.
|
|||
|
||||
# DATA WEB ({sc-spring-boot-autoconfigure}/data/web/SpringDataWebProperties.{sc-ext}[SpringDataWebProperties])
|
||||
spring.data.web.pageable.default-page-size=20 # Default page size.
|
||||
spring.data.web.pageable.max-page-size=2000 # Configures the maximum page size to be accepted.
|
||||
spring.data.web.pageable.one-indexed-parameters=false # Whether to expose and assume 1-based page number indexes in the request parameters.
|
||||
spring.data.web.pageable.max-page-size=2000 # Maximum page size to be accepted.
|
||||
spring.data.web.pageable.one-indexed-parameters=false # Whether to expose and assume 1-based page number indexes.
|
||||
spring.data.web.pageable.page-parameter=page # Page index parameter name.
|
||||
spring.data.web.pageable.prefix= # Configures a general prefix to be prepended to the page number and page size parameters.
|
||||
spring.data.web.pageable.qualifier-delimiter= # Configures the delimiter to be used between the qualifier and the actual page number and size properties.
|
||||
spring.data.web.pageable.prefix= # General prefix to be prepended to the page number and page size parameters.
|
||||
spring.data.web.pageable.qualifier-delimiter=_ # Delimiter to be used between the qualifier and the actual page number and size properties.
|
||||
spring.data.web.pageable.size-parameter=size # Page size parameter name.
|
||||
spring.data.web.sort.sort-parameter=sort # Sort parameter name.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue