2012-09-20 3 views
2

Spring Bean 어노테이션을 jar 파일로 생성 할 수 있습니까? 해당 항아리 클래스에서 다른 Spring Bean을 주입하는 방법은 무엇입니까? 가능한 방법을 제공해 줄 수 있습니까? 내가 아래로 얻을 때 그것은 작동하지 않는다? JAR 파일에스프링 구성 요소 항아리에서 클래스를 검색 하시겠습니까?

프로젝트에서

package org.java.support; 

    @Service("CommonService") 
    public class CommonService { 
    } 

package com.java.test.app; 

    @Service(value = "OtherService") 
    public class OtherService { 
     @Resource(name = "CommonService") 
     private CommonService service; 
    }  

configuraiton에서

<context:component-scan base-package="com.java.test.app, org.java.support"> 
     <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/> 
    </context:component-scan> 

나는 다음과 같은 오류가;

13:32:12,331 DEBUG [org.springframework.context.annotation.AnnotationConfigApplicationContext] Unable to locate LifecycleProcessor with name 'lifecycleProcessor': using default [or 
[email protected]b03b] 
13:32:12,331 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] Returning cached instance of singleton bean 'lifecycleProcessor' 
Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'CommonService' is defined 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:529) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1095) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:277) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1093) 
    at org.ace.java.support.delete.Test.main(Test.java:18) 
+0

죄송합니다. 귀하의 질문을 이해할 수 없습니다. –

+0

정상적으로 작동합니다. "other"jar가 종속성에 포함되어 있습니까? –

+0

애플리케이션 컨텍스트를 생성 할 때 Spring이 "CommonService"및 "OtherService"빈을 기록하는지 확인 했습니까? 또한 "MyService"가 실제로 존재합니까? – gnomie

답변

1

아니라 당신은 거의있다 : 당신이 사용해야합니다

은 스프링 컨텍스트에 항아리를 추가 필터를 포함한다. 하지만 두 개의 구성 요소 스캔 라인을 사용해야한다고 생각합니다.

예 : 내보내기 대화 상자에서, 이클립스에서 항아리를 생성하는 경우

<context:component-scan base-package="org.example"> 
    <context:include-filter type="regex" expression=".*Stub.*Repository"/> 
    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/> 
</context:component-scan> 

http://static.springsource.org/spring/docs/2.5.x/reference/beans.html#beans-classpath-scanning

2

참조 (옵션에서) 확인란 "디렉토리 항목 추가"있는지 확인이 확인됩니다.

관련 문제