본 게시물은 라이트 모드를 권장합니다
MSA 환경에서 Interceptor와 Feign을 이용해 헤더에서 뽑은 정보를 이용해 User 정보를 불러오는 기능을 만들었다.
하지만 애플리케이션 실행 시 순환 참조 에러가 났다
The dependencies of some of the beans in the application context form a cycle:
commentController defined in file ~
↓
commentService defined in file ~
┌─────┐
| com.toongether.webtoonservice.global.lib.feign.UserFeignClient
↑ ↓
| org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration
↑ ↓
| webConfig defined in file ~
↑ ↓
| tokenInterceptor defined in file ~
↑ ↓
| mvcResourceUrlProvider
└─────┘
onConstructor_ 에 @Lazy를 넣어서 임시로 해결했다.
@Configuration
@RequiredArgsConstructor(onConstructor_ = @Lazy)
public class WebConfig implements WebMvcConfigurer {
private final TokenInterceptor tokenInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(tokenInterceptor);
}
}
'Spring Boot' 카테고리의 다른 글
깔끔하게 멀티모듈 gradle 관리하기 (feat. buildSrc, libs.versions.toml) (1) | 2024.03.08 |
---|
본 게시물은 라이트 모드를 권장합니다
MSA 환경에서 Interceptor와 Feign을 이용해 헤더에서 뽑은 정보를 이용해 User 정보를 불러오는 기능을 만들었다.
하지만 애플리케이션 실행 시 순환 참조 에러가 났다
The dependencies of some of the beans in the application context form a cycle:
commentController defined in file ~
↓
commentService defined in file ~
┌─────┐
| com.toongether.webtoonservice.global.lib.feign.UserFeignClient
↑ ↓
| org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration
↑ ↓
| webConfig defined in file ~
↑ ↓
| tokenInterceptor defined in file ~
↑ ↓
| mvcResourceUrlProvider
└─────┘
onConstructor_ 에 @Lazy를 넣어서 임시로 해결했다.
@Configuration
@RequiredArgsConstructor(onConstructor_ = @Lazy)
public class WebConfig implements WebMvcConfigurer {
private final TokenInterceptor tokenInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(tokenInterceptor);
}
}
'Spring Boot' 카테고리의 다른 글
깔끔하게 멀티모듈 gradle 관리하기 (feat. buildSrc, libs.versions.toml) (1) | 2024.03.08 |
---|