이 문서의 내용
테스트 환경 및 주요 아젠다
더보기
이 프로젝트의 개발 환경
- 개발 언어 및 환경
- OpenJDK 12
- Spring: spring-context: 5.0.2.RELEASE
- AspectJ: apectjweaver: 1.8.13
- Gradle 7.3
스프링 AOP를 사용해 Proxy 객체를 만들고 있습니다. Bean 간의 종속성이 순환 참조되어 다음 오류가 발생하고 있습니다.
Requested bean is currently in creation: Is there an unresolvable circular reference?
Step 1: 순환 참조 해결
오류의 원인은 명확합니다. Bean 간의 종속성이 순환 참조되지 않도록 코드를 수정합니다.
테스트 환경에서는 Bean을 등록하기 위한 스프링 설정 클래스(@Configurable)가 Pointcut으로 지정되어 있습니다. 설정 클래스를 다른 패키지로 리팩토링하여 문제를 해결합니다.
Step 2: 스프링 부트 프로퍼티 변경
스프링 부트에서 프로퍼티 파일을 수정합니다. resources/application.properties에서 다음과 같이 프로퍼티를 추가합니다.
spring.main.allow-circular-references=true
또는 resources/application.yml에서 다음과 같이 프로퍼티를 추가합니다.
spring:
main:
allow-circular-references: true
더보기
원칙적으로는 프로퍼티에서 순환 참조를 허용하는 대신 원인이 되는 코드를 직접 수정하는 것이 좋습니다.
'Java > Spring' 카테고리의 다른 글
"nested exception is com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure" 오류 (0) | 2023.12.05 |
---|---|
Spring 5 입문: Chapter 08A. JdbcTemplate을 사용한 DB 연동 (0) | 2023.12.05 |
스프링 AOP & AspectJ Pointcut 기본 문법 (0) | 2023.12.01 |
Spring 5 입문: Chapter 07. AOP 프로그래밍(Aspect Oriented Programming) (0) | 2023.11.30 |
Spring 5 입문: Chapter 06. Bean 라이프사이클과 범위 (0) | 2023.11.28 |