@ RepositoryEventHandler-Ereignisse stoppen mit @ RepositoryRestController
Wenn ich ein @ erstel@RepositoryRestController
für eine Entität das zugehörige@RepositoryEventHandler
-Methoden werden in Spring Data REST nicht über Spring Boot 1.4.0.M3 (auch Spring Boot 1.3.5) ausgelöst - ist dies ein Fehler oderwie entworfe?
Ich habe einAccount
Entität mit einem@RepositoryEventHandler
:
@Slf4j
@Component
@RepositoryEventHandler(Account.class)
public class AccountEventBridge {
@HandleBeforeCreate
public void handleBeforeCreate(Account account){
log.info("Before create " + account);
}
@HandleAfterCreate
public void handleAfterCreate(Account account){
log.info("Created " + account);
}
}
welche auslösen, wie sie sollten, wenn ich POST:
curl -H "Content-Type: application/json" -X POST
-d '{"name":"aaa", "owner":{"email":"aaa@1010","password":"snap"}}'
http://localhost:8080/api/accounts
wenn ich nicht ein @ hinzufü@RepositoryRestController
:
@RepositoryRestController
public class AccountRespositoryRestController {
private final AccountRepository repository;
@Autowired
public AccountRespositoryRestController(AccountRepository repository) {
this.repository = repository;
}
@RequestMapping(method = RequestMethod.POST,value = "/accounts")
public @ResponseBody PersistentEntityResource post(
@RequestBody Account account,
PersistentEntityResourceAssembler assembler) {
// ...
Account entity = this.repository.save(account);
return assembler.toResource(entity);
}
}
Wenn ich das @ auskommentie@RepositoryRestController
Anmerkung, die@RepositoryEventHandler
Methoden lösen erneut aus.
Es scheint, als ob diese sich unabhängig voneinander verhalten sollten, da sie innerhalb von Spring Data REST zwei verschiedene konzeptionelle Ebenen bedienen - oder verstehe ich etwas falsch?
Wenn dies beabsichtigt ist, ist es bedauerlich - ich muss alle HTTP-Methoden implementieren, um die Ereignisse selbst für eine Entität mit einem @ zu erstelle@RepositoryRestController
. Ist das wirklich die Absicht?