2008. 9. 22. 15:59

~Aware 인터페이스 벗어나기 숙제에 대해서...

일거리에 치이다가 머리도 식힐겸 차한잔 하면서 가볍게 생각해봤는데요.

단순하게 처리한다면 다음과 같이 해도 되지 않을까 싶습니다.

MessageSourceAware 의 경우 AC(ApplicationContext)가 설정 메타데이터(*.xml)에 정의된 messageSource 가 등록이 되어 있어야 해당 객체를 가져다가 주입시켜줍니다. AC 에 등록되어 관리되는 bean 중 하나라고 볼 수 있으니 @Autowired 나 @Resource 등을 사용해서 가져다 쓰면 될 것 같습니다.

@Autowired MessageSource messageSource;

그 외에 나머지 녀석들은 관리되는 빈이 아니라 AC가 내부적으로 사용하는 녀석들로 추정(AC 생성 후 getBeanDefinitionCount() 등의 메소드에 보이지 않는 걸로 보아)되는데요.

~Aware 인터페이스가 구현되는 원리와 비슷하게 BeanPostProcessor, BeanFactoryPostProcessor 를 사용해서 직접적으로 주입 작업을 해주면 되지 않을까요. BeanUtil 클래스 등을 사용해서 AC 나 BeanName 등 필드가 있다면 주입시켜주는 형태로요..^^;;

너무 무식한 방법인가요 ㅡ,.ㅡ;;