如何为 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);
}
当我尝试在自定义控制器中自动装配 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);
}