LocalContainerEntityManagerFactoryBean 에 null 를 리턴할 때
by Jeongjin Kim
LocalContainerEntityManagerFactoryBean
을 이용해서 직접 Bean 을 등록할 때
LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
return emf.getObject();
를 하면 null 이 리턴된다.
이유는 LocalContainerEntityManagerFactoryBean
는 AbstractEntityManagerFactoryBean
을 상속하여 구현하는데
이 클래스의 메소드 afterPropertiesSet()
가 모든 속성값이 세팅이 다 됐음을 알리는 역할을 한다.
XML 로 Bean 설정을 하면 BeanFactory
가 이 메소드를 호출하지만 Annotation
으로 Bean 을 등록할 때에는 직접 호출해줘야 한다.
따라서 위 코드에서 getObject()
를 호출하기 전에 afterPropertiesSet()
을 호출하여 설정이 완료됐음을 알리고 오브젝트를 가져와야 한다.
LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
emf.afterPropertiesSet()
return emf.getObject();
Subscribe via RSS