[SPRING] 봄에 abstract = "true"가 의미하는 것은 무엇입니까?
SPRING봄에 abstract = "true"가 의미하는 것은 무엇입니까?
Java에서는 추상 클래스를 인스턴스화 할 수 없습니다. 그러나 봄은 "="사실로 콩 만들기와 같은 것을 말한다. 추상 클래스의 상태가 그 자식 클래스 인스턴스에 의해서만 초기화된다면 (나는 맞을 것 같다), 추상 클래스에 정의 된 메소드 내에서 그 속성을 사용할 필요가 있다면 ... 가능성이있다. 그것? 다음과 같은 코드 세트가 있습니다.
class abstract A {
private Something somethingObj;
// getters and setters are present.
public void logSomething() {
try{
//some code which throws exception
}
catch(Exception e){
somethingObj.logIt(e);// I have some logic inlogIt method.
}
}
}
해결법
-
==============================
1.Spring의 추상 Bean은 추상 클래스와 다소 다릅니다. 사실 Spring의 추상 빈은 어떤 클래스에도 맵핑 될 필요가 없다. 예를 들면 다음과 같습니다.
Spring의 추상 Bean은 추상 클래스와 다소 다릅니다. 사실 Spring의 추상 빈은 어떤 클래스에도 맵핑 될 필요가 없다. 예를 들면 다음과 같습니다.
<bean id="dao" abstract="true"> <property name="dataSource" ref="dataSource"/> <property name="someHelper" ref="someHelper"/> </bean> <bean id="fooDao" class="FooDao" parent="dao"> <property name="fooHelper" ref="fooHelper"/> </bean> <bean id="barDao" class="BarDao" parent="dao"> <property name="barHelper" ref="barHelper"/> </bean>
수업 :
public class FooDao { private DataSource dataSource; private SomeHelper someHelper; private FooHelper fooHelper; //setters } public class BarDao { private DataSource dataSource; private SomeHelper someHelper; private BarHelper barHelper; //setters }
FooDao와 BarDao에는 부모 클래스 (추상 클래스 또는 비 기본 클래스)가 공통적으로 존재하지 않습니다. 부모 추상 bean 정의는 공통 속성을 그룹화하는 데에만 사용되므로 XML에서 반복을 피할 수 있습니다.
반면에 FooDao와 BarDao가 상속받은 추상 Dao 클래스를 소개하는 것은 좋은 생각입니다.
public abstract Dao { protected DataSource dataSource; protected SomeHelper someHelper; //setters } public class FooDao extends Dao { private FooHelper fooHelper; //setters } public class BarDao extends Dao { private BarHelper barHelper; //setters }
하지만 여전히 콩은 클래스를 정의 할 필요가 없습니다. 여러 가지 구체적인 빈이 동일한 종속성을 가질 때 XML에서 중복을 줄이는 방법으로 추상 빈을 처리하십시오.
-
==============================
2.사실, 추상 부모 콩은 클래스 속성을 정의하는 데 필요하지 않습니다, 당신은 공유하는 공통 속성이 필요할 수 있습니다.
사실, 추상 부모 콩은 클래스 속성을 정의하는 데 필요하지 않습니다, 당신은 공유하는 공통 속성이 필요할 수 있습니다.
이 튜토리얼에 따르면
from https://stackoverflow.com/questions/9397532/what-is-meant-by-abstract-true-in-spring by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring MVC에서 뷰를 렌더링 할 때 발생하는 예외를 처리하는 방법은 무엇입니까? (0) | 2018.12.30 |
---|---|
[SPRING] oauth / token 요청에 대해 OPTIONS HTTP 메소드 허용 (0) | 2018.12.30 |
[SPRING] Spring .properties 파일 : 요소를 배열로 가져 오기 (0) | 2018.12.30 |
[SPRING] LDAP : 연결 세부 정보로 사용자를 인증하는 방법 (0) | 2018.12.30 |
[SPRING] @RequestMapping 사용자 지정 속성을 구현하는 방법 (0) | 2018.12.30 |