KOIN 리뉴얼을 진행하는데 스프링 빈 주입방식이 모두 필드 주입이길래 생성자 주입으로 변경했습니다.
그러고 실행을 시켰더니
Common causes of this problem include using a final class or a non-visible class;
nested exception is java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given
이라는 에러가 터졌습니다.
찾아보니 spring3 이하에서는 AOP 처리를 할 때 하나 이상의 인터페이스를 구현한 객체가 아니면 jdk dynamic proxy 가 아닌 CGLIB를 사용한다고 하네요.
그리고 CGLIB는 기본 생성자를 필요로 합니다. 따라서 기본 생성자를 생성하면 안되는 생성자 주입은 사용할수가 없습니다..
당장 스프링 버젼을 올리거나 아키텍쳐를 갈아엎기는 무리가 있으니 어쩔 수 없이 필드 주입을 사용해야 할 듯 싶네요. 혹시 모를 순환참조를 막기 위해 어떤 방법이 있을까 고민해봐야겠습니다.
'programming > 프로젝트' 카테고리의 다른 글
[Error] NullPointerException (0) | 2022.08.25 |
---|---|
Mybatis 상속 관계 매핑 (0) | 2022.08.22 |
[tomcat error] Jenkins 스크립트를 통한 tomcat 실행 시 권한 충돌 (0) | 2022.08.17 |
Koin stage 인프라 구성 (0) | 2022.08.04 |
KOIN 프로젝트 시작 (0) | 2022.08.02 |