2014-01-17 1 views
1

나는 MySimpleController을 가지고 있으며이 컨트롤러를 공통 라이브러리에 추출해야한다.구성 요소 스캐닝을 사용하지 않고 Spring beans 등록하기

package xxx.mypackage; 

@Controller 
class MySimpleController{} 

이 라이브러리는 다른 패키지 이름, 이전 xxx.mypackage과 다른 yyy.newpackage 있습니다. 이 때문에 구성 요소 검색에 적합하지 않습니다.

다음은 질문입니다. 구성 요소 검사없이이 컨트롤러를 등록하는 방법이 있습니까? 난 단지 내 항아리를 포함하고 내 컨트롤러를 제대로 기대하고 싶다. META-INF 폴더에 몇 가지 정의가 있지만 올바른 방법인지 확신 할 수 없습니다.

답변

0

이 컨트롤러를 application 패키지의 새 패키지가있는 bean으로 추가하십시오. 이렇게하면 xml 구성을 통해로드 된 유일한 bean이되는 반면 다른 모든 것은 구성 요소 검사를 통해 이루어집니다.

<beans> 
    <bean name="myBean" class="yy.MySimpleController"/> 
</beans> 
+0

사용자 구성을 변경해야합니다. 내 항아리가 포함되며 수동 등록 없이도 작동합니다. – Cemo

+0

글쎄, 만약이 파일을 jar 파일로 옮기고 싶다면 누군가이 jar 파일을 의존성으로 사용할 것인가? 그렇다면 코드에서 MySimpleController를 종속 항목으로 사용하지 않으시겠습니까? – Hrishikesh

+0

예, 종속성으로 사용됩니다. MySimpleController는 완전한 기능 코드이며 다른 부분은이 컨트롤러와 상호 작용하지 않습니다. 시스템 정보를 제공하는 컨트롤러로 간주하십시오. – Cemo

1

전체 3 자 라이브러리

@Configuration 
public class CustomConfig { 

    @Bean 
    public MySimpleController mySimpleController(){ 
     return new MySimpleController(); 
    } 
} 

에 대한 구성을 만들고

@Import(CustomConfig.class) 

내 샘플 JavaConfig에 스캔하지 않고 구성을 가져옵니다,하지만 너무 XML 구성에 적용됩니다.

+0

자동으로 가져오고 싶습니다. – Cemo

+1

멋진. 이것은 더 나은 해결책입니다. – Hrishikesh

+0

스캔없이 @Cemo가 자동으로 나타 납니까? :) – MariuszS

관련 문제