[SPRING] 추상 수퍼 클래스에서 스프링 의존성 주입
SPRING추상 수퍼 클래스에서 스프링 의존성 주입
스프링 프레임 워크를 사용하여 추상 수퍼 클래스에 의존성을 주입해야한다는 요구 사항이 있습니다.
class A extends AbstractClassB{
private Xdao daox ;
...
public setXdao() { ... }
}
class AbstractClassB{
..
private yDao daoy;
public seyYdao() { ... }
}
나는 언제나 수퍼 클래스 의존성을 전달할 필요가있다. 나는 abstract 클래스 B를 인스턴스화한다 (이것은 내 프로젝트에서 100 가지 방법으로 서브 클래 싱 될 수있다)
application.xml의 항목 (스프링 컨텍스트 파일)
<bean id="aClass" class="com.mypro.A"
<property name="daox" ref="SomeXDaoClassRef" />
<property name="daoy" ref="SomeYDaoClassRef"/>
</bean>
어떻게하면 모든 하위 클래스 bean 작성에서 사용할 수 있도록 application.xml에 수퍼 클래스 AbstractClassB의 bean 참조를 작성할 수 있습니까?
해결법
-
==============================
1.당신은 추상적 인 bean 정의를 생성 한 다음 그 정의를 "subtype"할 수 있습니다.
당신은 추상적 인 bean 정의를 생성 한 다음 그 정의를 "subtype"할 수 있습니다.
<bean id="b" abstract="true" class="com.mypro.AbstractClassB"> <property name="daox" ref="SomeXDaoClassRef" /> </bean> <bean id="a" parent="b" class="com.mypro.A"> <property name="daoy" ref="SomeYDaoClassRef" /> </bean>
엄밀히 말하면, b에 대한 정의는 클래스를 지정하지 않아도 될 수 있습니다.
<bean id="b" abstract="true"> <property name="daox" ref="SomeXDaoClassRef" /> </bean> <bean id="a" parent="b" class="com.mypro.A"> <property name="daoy" ref="SomeYDaoClassRef" /> </bean>
그러나 명확성을 위해 도구를 제공하는 것이 더 나을 수있는 기회가되므로 자주 맡기는 것이 가장 좋습니다.
Spring Manual의 3.7 절에서는 Bean 정의 상속에 대해 설명한다.
-
==============================
2.Spring 추상 플래그를 사용하여 클래스에 추상 클래스임을 알릴 수 있습니다. 그런 다음 모든 구체 구현은이 빈을 상위 빈으로 표시 할 수 있습니다.
Spring 추상 플래그를 사용하여 클래스에 추상 클래스임을 알릴 수 있습니다. 그런 다음 모든 구체 구현은이 빈을 상위 빈으로 표시 할 수 있습니다.
<bean id="abstractClassB" class="AbstractClassB" abstract="true"> <property name="yDao" ref="yDao" /> </bean> <bean id="classA" class="A" parent="abstractClassB"> <property name="xDao" ref="xDao" /> </bean>
-
==============================
3.추상 부모 bean을 가짐 :
추상 부모 bean을 가짐 :
http://forum.springsource.org/showthread.php?t=55811
from https://stackoverflow.com/questions/4238987/inject-spring-dependency-in-abstract-super-class by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring 프레임 워크 4.x와 Hibernate 5.2 통합하기 (0) | 2019.01.02 |
---|---|
[SPRING] RestTemplate에서 응답 헤더를 읽으려면 어떻게해야합니까? (0) | 2019.01.02 |
[SPRING] spring : 다른 bean의 속성을 읽음으로써 한 bean의 속성을 설정합니까? (0) | 2019.01.02 |
[SPRING] Spring Data JPA : 예제로 쿼리 하시겠습니까? (0) | 2019.01.02 |
[SPRING] 사용자 권한 부여 된 권한은 항상 : ROLE_ANONYMOUS입니까? (0) | 2019.01.02 |