Spring Boot和MVC:如何设置application.properties中@RequestBody对象字段的



我正在编写以下代码:

@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

最新更新