Spring에서 두 가지 경우가 생기면 주의하자!!
1. 다른 Concrete 클래스를 상속받아서 오버라이딩 하는 클래스를 구현할때,
2. 내부 멤버변수로 상속받은 클래스를 가질때

다음과 같이 적는다.
/*
* @spring.bean name="boardUserBO" singleton="false"
* @spring.property name="boardBO" ref="simpleBoardBO"
*/
public class BoardUserBO extends SimpleBoardBO implements BoardBO{
    private BoardBO boardBO;
    public void setBoardBO(BoardBO boardBO)
    {
       this.boardBO = boardBO;
    }
}

SimpleBoardBO를 상속받았기때문에  BoardUserBO에서는 SimpleBoardBO기능에서 확장되는 것만 오버라이딩을 했다.

이 경우 SimpleBoardBO가 xdoclet annotation을 해주었더라도, 중복으로 BoardUserBO클래스를 레퍼런스하는 simpleBoardBO가 생기면서 무한 루프를 돈다. simpleBoardBO의 이름의 객체가 프록시에 2개가 생성되는 것이다.

불편하더라도 SimpleBoardBO의 인터페이스를 전부 구현을 해서 extends, implement는 추상화 형태로 두고, 모든 메소드를 클래스 안에서 구현을 하자

 
Posted by ologist
 TAG ,

블로그 이미지
ologist

공지사항

Yesterday221
Today25
Total34,406

달력

 « |  » 2012.02
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

최근에 받은 트랙백

글 보관함