개발공부/개발하다_발견함
7월 23일 스프링 인터셉터와 싸우다 남긴 흔적...
맙소사
2022. 8. 4. 11:21
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.해서 집어넣음 > 됨 !!!!!! 와 !!!!!!!!!!!!!!!!!!!!!