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 に答える