3

我正在编写以下代码:

@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。

怎么做到呢?

4

1 回答 1

3

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

public class UserController

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

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

于 2013-12-09T12:04:04.860 回答