如何为 PersistentEntityResourceAssembler 定义一个 bean?

How to define a bean for PersistentEntityResourceAssembler?

当我尝试在自定义控制器中自动装配 PersistentEntityResourceAssembler 时,出现以下错误。

Description:

Field resourceAssembler in api.controller.IslandController required a bean of type 'org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler' that could not be found.

Action:

Consider defining a bean of type 'org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler' in your configuration.

这是我的控制器实现:

@RestController
public class IslandController {

    @Autowired
    private IslandRepository islandRepo;

    @Autowired
    private PagedResourcesAssembler pagedResourcesAssembler;

    @Autowired
    private PersistentEntityResourceAssembler resourceAssembler;

    @RequestMapping(method = GET, value = "islands")
    public ResponseEntity<?> getAllIslands(Pageable page) {
        Page<Island> islandList = islandRepo.findAll(page);
        return new ResponseEntity<>(pagedResourcesAssembler.toResource(islandList, resourceAssembler), HttpStatus.OK);
    }

那么如何为 PersistentEntityResourceAssembler 定义一个 bean?

这不是解决此问题的方法:摆​​脱 @Autowired PersistentEntityResourceAssembler 并改为将 PersistentEntityResourceAssembler 参数传递给您的方法,让 Spring 施展魔法

@RequestMapping(method = GET, value = "islands")
public ResponseEntity<?> getAllIslands(Pageable page,
        PersistentEntityResourceAssembler resourceAssembler) {
    Page<Island> islandList = islandRepo.findAll(page);

    return new ResponseEntity<>(pagedResourcesAssembler.toResource(islandList, resourceAssembler), HttpStatus.OK);
}