일반 적인 자바 SE 개발에서, IOC / DI / 컴퍼넌트스캔 등의 기능이 필요로 하다. (스프링부트처럼 프레임워크를 기반으로 동작하는게 아니라)
필요한 이유는 AOP(특히 @Transaction을 통해 JPA를 편하게 쓰기 위해)를 사용하기 위함인데..
AOP에 관련한 어노테이션이 붙어있으면 컴퍼넌트 스캔을 통해 프록시객체를 싱글턴 빈으로 만들고, DI컨테이너에 보관하고 있을테니.. 저 빈을 사용하기 위함임.

현재 다른 프레임워크(RCP)를 사용중이라... RCP에도 DI는 되는것으로 알고있는데 컴퍼넌트 스캔은 잘 모르겠음..(찾아볼 것)

프로그램 흐름 : RCP프레임워크 시작 -> 각종 어노테이션 컴퍼넌트 스캔 -> 빈등록. 객체주입은 DI컨테이너에서  get해올 것.


시도 V1: 일단 스프링 프레임워크를 그대로 가져오는게 아니라, 컴퍼넌트스캔 IOC AOP만 가능하게 라이브러리 형태로 가져와볼 것.

성공함! 성공코드 파일첨부

Java.zip
0.01MB

프로그램 흐름을 보면 
main -> AnnotationConfigApplicationContext을 생성(이때 AppConfig설정 참조) -> 설정을 보고 패키지 단위에서 컴퍼넌트 스캔해서 빈 만들고 만들고 의존성 주입해줌, 빈 만드는 과정에서 AOP 관련한 것들 프록시 형태로된 객체가 빈으로 되는 것임 -> 어플리케이션 컨텍스트의 빈은 프록시빈이므로 AOP 동작 잘됨

참조사이트 :  https://creamilk88.tistory.com/162
https://hwannny.tistory.com/62

 

'IT > 트러블슈팅 기록' 카테고리의 다른 글

OSIV 비슷하게 구현하기  (0) 2022.07.15

+ Recent posts