티스토리 뷰
트러블슈팅
The dependencies of some of the beans in the application context form a cycle: 에러 발생 해결 방법
기억용블로그 2022. 6. 2. 10:25728x90
***************************
APPLICATION FAILED TO START
***************************
Description:
The dependencies of some of the beans in the application context form a cycle:
pagingApiController defined in file
┌─────┐
| qnaService defined in file
↑ ↓
| sellerService defined in file
└─────┘
Action:
Relying upon circular references is discouraged and they are prohibited by default. Update your application to remove the dependency cycle between beans. As a last resort, it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true.
문제
정확히 문제가 발생한 배경은 qnaService에 있던 판매자인지 여부를 확인하는 메서드를 떼어내서 sellerService에 넣고 발생했다.
근데 더 문제는 로직을 아무리 째려봐도 순환적인 문제가 발생하지 않았음
그냥 딱 한 번만 확인하고 넘어가기 때문에 로직의 순환 문제가 아니라는 것을 말한다는걸 알아챔
해결
원인은 로직의 개념에서 참조를 말하는 것이 아니라
단순히 Bean이 서로를 참조하고 있는지에 대한 여부를 말하고 있다는 것이었음
본인 문제의 원인은 "사용하고 있지 않던" qnaService가 sellerService에 존재함으로서 참조를 하려고 해서 발생한 문제였다.
@Service
@Transactional
@RequiredArgsConstructor
public class SellerService {
private final QnaService qnaService;
위 qnaService가 사용하지 않고 있었음에도 순환참조 문제를 발생시킨 원인이었다.
해당 필드를 지움으로서 문제 해결!
스프링 자체에서 순환 참조가 가능하게 만들 수 있는 아주 쉬운 방법이 있었지만 만약 이게 로직적으로 잘못된 개념이었다면 나중에 훨씬 더 큰 기회 비용으로 고쳐야 되는 것을 알았기에 근본적 원인을 찾고자 하였다.
로직 문제가 아니었던게 다행이고 필요없는 코드는 그때 그때 지우자는 교훈을 얻었다.
'트러블슈팅' 카테고리의 다른 글
젠킨스 SSH로 sh를 실행할때 경로에 주의하자 (0) | 2022.07.04 |
---|---|
@Embeddable을 사용할때 NullPointerException을 방지하는 방법 (0) | 2022.06.04 |
Parameter value [\] did not match expected type [java.lang.String (n/a)] 버그 일시적 해결 방법 (0) | 2022.05.24 |
Cannot call sendRedirect() after the response has been committed 해결 방법 (0) | 2022.05.19 |
http://localhost:8080/null로 redirect되는 문제 해결 방법(임시) (0) | 2022.05.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- RequestPart
- 배포
- neovim
- Dap
- IDE
- ModelAttribute
- 레디스
- RequestBody
- lunarvim
- JavaScript
- 도커
- 루나빔
- RequestParam
- vim
- 아키텍처
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함