Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring Boot和MVC:如何从application.properties为@RequestBody对象字段设置默认值?_Spring_Spring Mvc_Spring Boot - Fatal编程技术网

Spring Boot和MVC:如何从application.properties为@RequestBody对象字段设置默认值?

Spring Boot和MVC:如何从application.properties为@RequestBody对象字段设置默认值?,spring,spring-mvc,spring-boot,Spring,Spring Mvc,Spring Boot,我正在编写以下代码: @RestController @RequestMapping("/user") public class UserController { @Autowired private JdbcTemplate jt; @RequestMapping("/getUsers") public ListResult getUsers(@RequestBody GetUsersArgs args) { // paging query t

我正在编写以下代码:

@RestController
@RequestMapping("/user")
public class UserController
{
    @Autowired private JdbcTemplate jt;

    @RequestMapping("/getUsers")
    public ListResult getUsers(@RequestBody GetUsersArgs args)
    {
        // paging query that returns ListResult object.
        // ...
    }

    private static class GetUsersArgs
    {
        public int firstRowIndex = 0;
        public int pageSize = 500;
    }
}
我想做的是,从Spring Boot的application.properties文件中为GetUsersArgs对象的pageSize字段设置默认值

当application.properties文件的内容如下所示时

server.port: 9000
management.port: 9001
userList.pageSize: 100
pageSize字段必须设置为100。否则,设置为500


怎么能做到呢?

那样不行。Spring只能替换托管bean中的值,您的值是根据请求参数构造的。您可以做的是向控制器中注入一个值并使用它

public class UserController

    @Value("${userList.pageSize:500}")
    private int pageSize;

然后,您可以在方法中使用此值设置对象上的
pageSize

谢谢。但是GetUserArgs类不能是静态内部类(因为静态类的对象不能访问外部类的成员变量),对吗?为什么不。为什么您不能从
getUsers
方法调用
GetUserArgs
上的方法?只需在
GetUserArgs
上添加一个
setPageSize
方法,并在需要时调用。