복붙노트

[SPRING] Hibernate 엔터티 autowire

SPRING

Hibernate 엔터티 autowire

나에게 충고를 해 주시겠습니까? Hibernate 엔티티에 대해 Spring autowiring을 어떻게 멋지게 사용할 수 있습니까?

엔티티가 있고 메일을 보낸 사람이 있어야한다고 가정 해 보겠습니다.

@Entity
public class EmailActivity extends Activity {
    @Autowired @Transient
    private JavaMailSender javaMailSender;

    ...
}

하고있는 것보다 더 좋은 방법이 있습니까?

AutowireCapableBeanFactory.autowireBean(
    getCurrentSession().get(Activity.class, id)
);

내 DAO에?

감사!

해결법

  1. ==============================

    1.것이 가능하다! (그리고 Spring Roo의 기본 스타일입니다!)

    것이 가능하다! (그리고 Spring Roo의 기본 스타일입니다!)

    필요한 것은 @Configurable 어노테이션을 엔티티에 추가하는 것입니다. 컨피규레이션 에서 주석을 활성화하고 AspectJ 직조를 사용한다.

    Spring Reference에 챕터가있다. 7.8.1 AspectJ를 사용하여 Spring에 의존성 삽입하기

    참조 :

    BTW 가능한 경우 AspectJ 컴파일 시간 짜기를 사용하는 것이 좋습니다.

  2. ==============================

    2.내가하는 일은 AutowiredAnnotationBeanPostProcessor를 사용하는 것이다.

    내가하는 일은 AutowiredAnnotationBeanPostProcessor를 사용하는 것이다.

    엔티티의 생성자에서 AutowiredAnnotationBeanPostProcessor에 "this"를 주입하도록 요청하십시오.

    이 기사의 끝 부분에있는 나의 의견은 기술에 대해 자세히 설명합니다. 이 기사는 Hibernate 엔티티를 autowiring하는 비슷한 방법에 대해 설명한다.

  3. ==============================

    3.이 기사에서 설명하는 aspectj-weaving을 사용하는 것, 즉 최대 절전 모드 LoadEventListener를 사용하는 것보다 나은 방법이있는 것 같습니다.

    이 기사에서 설명하는 aspectj-weaving을 사용하는 것, 즉 최대 절전 모드 LoadEventListener를 사용하는 것보다 나은 방법이있는 것 같습니다.

  4. from https://stackoverflow.com/questions/5594934/hibernate-entity-autowire by cc-by-sa and MIT license