[Spring] FactoryBean
접하게 된 계기 강의를 듣던 중 강사님께서 DB에서 값을 받아오기 위한 빈을 FactoryBean을 구현해서 만드는 것을 보게 되었다. 평소에 @Component나 @Configuration, @Bean을 통해서 빈을 생성했는데 이렇게 만드는 방법도 있다는 것을 보게 되었다. 스프링의 빈 등록 스프링은 지정된 클래스 이름을 가지고 Reflection API를 이용해서 빈을 생성한다. 내부적으로 빈 정의에 나오는 클래스 이름을 가지고 빈을 생성한다. 문제 스프링에서 DI할 수 없는 클래스의 빈이 있을 수 있다. 예를 들어 클래스 정보를 미리 알아낼 수 없는 경우이다. Java에서는 Dynamic Proxy로 만드는 객체의 경우 클래스가 무엇인지 미리 알 수 없다. 클래스 자체도 내부적으로 새로 정의해서 사..
2023.03.15