스트라이프에서 스프링의 빈을 가져오려면 다음의 설정을 추가해야한다.

web.xml 의 스프링 필터에 스프링 인터셉터를 추가한다.

[web.xml]

<filter>
    <display-name>Stripes Filter</display-name>
    <filter-name>StripesFilter</filter-name>
    <filter-class>net.sourceforge.stripes.controller.StripesFilter</filter-class>
    <init-param>
       <param-name>ActionResolver.Packages</param-name>
       <param-value>kr.or.ehc.kg.web</param-value>
    </init-param>
    <init-param>
            <param-name>Interceptor.Classes</param-name>
            <param-value>
                        net.sourceforge.stripes.integration.spring.SpringInterceptor
            </param-value>
     </init-param>
</filter>

 

그리고 액션 리졸버 클래스에서는 @SpringBean 어노테이션으로 스프링 빈을 가져올 수 있다.

public class ArticleAction implements ActionBean {
    ...
    @SpringBean("articleService")
    private ArticleService articleService;
    ...
}

 

물론, 메서드에 어노테이션을 지정할 수 있다. 스프링빈을 가져올 때, 관례적으로 'set스프링빈' 의 형태의 메서드를 취하나, 메서드 보안 관계상 다른 이름으로 주입하는 것도 좋은 방법이다

public class ArticleAction implments ActionBean {
     ...
    private BoardService boardService;
    @SpringBean("boardService")
    public void injectBoardService(BoardService boardService) {
        this.boardService = boardService;
    }

    ...
}


+ Recent posts