본문 바로가기
개발공부/개발하다_발견함

7월 23일 스프링 인터셉터와 싸우다 남긴 흔적...

by 맙소사 2022. 8. 4.
The bean 'messageToMeInterceptor', defined in class path resource [MessageToMe/demo/Config/WebConfig.class], could not be registered. A bean with that name has already been defined in file [D:\Repo\messagetome\MessageToMe\target\classes\MessageToMe\demo\Interceptor\MessageToMeInterceptor.class] and overriding is disabled.

Action:

Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true


Process finished with exit code 0
클래스 경로 리소스 [MessageToMe/demo/Config/WebConfig.class]에 정의된 'messageToMeInterceptor' 빈을 등록할 수 없습니다. 해당 이름의 빈은 [D:\Repo\messagetome\MessageToMe\target\classes\MessageToMe\demo\Interceptor\MessageToMeInterceptor.class] 파일에 이미 정의되어 있으며 재정의가 비활성화되어 있습니다.

동작:

bean 중 하나의 이름을 바꾸거나 spring.main.allow-bean-definition-overriding=true를 설정하여 재정의를 활성화하는 것을 고려하십시오.


종료 코드 0으로 프로세스 완료

WebConfig로 Interceptor 추가하면서 addInterceptor(new Interceptor) 해버리면 Spring Container에서 이 Interceptor를 관리하지 못한다고 한다.

> 하단에 @ Bean 작성해서 추가함

> 인터셉터에 선언해둔 @ Component랑 충돌해서 빈 두 개 있다고 터짐 (이게 바로 위의 에러다)

> @ Component 지우면 빈 주입이 안됨

위에서 한 시간 내내 헛돌다가 webConfig에다 작성한 빈에다가 새로 생성하면서 같이 주입할 서비스 작성함 인터셉터쪽에 생성자 파라미터로 같이 넣어줌 > this.해서 집어넣음 > 됨 !!!!!! 와 !!!!!!!!!!!!!!!!!!!!!

댓글