[SPRING] 봄 부팅 @RepositoryEventHandler가 호출되지 않았습니다.
SPRING봄 부팅 @RepositoryEventHandler가 호출되지 않았습니다.
@RepositoryEventHandler가 설정되어 있는데 알 수없는 이유로 호출되지 않습니다.
@Component
@RepositoryEventHandler(User.class)
public class UserEventHandler {
@Autowired
private PasswordCrypto passwordCrypto;
@HandleBeforeSave
public void handleUserSave(User user) {
if (user.getPassword() != null && !"".equals(user.getPassword())) {
user.setPassword(passwordCrypto.encrypt(user.getPassword()));
}
}
@HandleBeforeCreate
public void handleUserCreate(User user) {
user.setPassword(passwordCrypto.encrypt(user.getPassword()));
}
}
저장소 :
public interface UserRepository extends CrudRepository<User, Long> {
Optional<User> findOneByUsername(String username);
}
그리고 내 주요 수업 :
@SpringBootApplication
@EntityScan("de.ihrig.feuerwehr.hydranet.model")
@EnableJpaRepositories
@ComponentScan({
"somepath",
"somepath including the UserEventHandler"
})
public class ServerApplication {
public static void main(String[] args) {
SpringApplication.run(ServerApplication.class, args);
}
}
도움을 주셔서 감사합니다. 오류를 찾을 수 없습니다.
해결법
-
==============================
1.계속되는 몇 가지 일이있을 수 있습니다.
계속되는 몇 가지 일이있을 수 있습니다.
Repo에 @RestResource가 주석으로 표시되어 있지는 않지만 단지 감시 일뿐입니다.
주석이 정확하다고 생각하고 REST API를 통과하지 않는 진입 점을 사용하여 단위 테스트를 통해 테스트하고 있습니다. 핸들러는 해당 벡터를 통해 들어오는 Repo 이벤트 만 캡처합니다.
진입 점에 관계없이 모든 Repo 이벤트를 캡처하려면 AbstractRepositoryEventListener를 사용하려고합니다.
Spring Data Rest Events 문서는 이것을 다룹니다. 또한 봄 부팅시 리포지토리 이벤트 수신을 참조하십시오.
from https://stackoverflow.com/questions/32796049/spring-boot-repositoryeventhandler-not-invoked by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring Hibernate - CrudRepository와 SessionFactory의 차이점 (0) | 2019.07.17 |
---|---|
[SPRING] Spring에서 런타임에 속성 값을 변경하는 방법 (0) | 2019.07.17 |
[SPRING] ActiveMQ 및 CachingConnectionFactory의 자동 연결 문제 (0) | 2019.07.17 |
[SPRING] Spring-boot : 찾을 수없는 'entityManagerFactory'라는 이름의 bean이 필요합니다. (0) | 2019.07.17 |
[SPRING] Spring @Async : LAZY 콜렉션의 null 동면 세션 (0) | 2019.07.17 |