2010-04-15 6 views
1

다음이 메이븐 의존성에 스프링 설정 파일을 사용하는 방법 : 프로젝트 B에서 다음종속성 AI에

<beans> 
    <bean 
     id="simplePersonBase" 
     class="com.paml.test.SimplePerson" 
     abstract="true"> 
     <property 
      name="firstName" 
      value="Joe" /> 
     <property 
      name="lastName" 
      value="Smith" /> 
    </bean> 
</beans> 

와, 내가 종속성 같이 추가하고 다음과 같은 설정이 있습니다

<?xml version="1.0" encoding="UTF-8"?> 
<beans 
    xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 
    <bean 
     id="simplePersonAddress01" 
     parent="simplePersonBase"> 
     <property 
      name="firstName" 
      value="BillyBob" /> 
     <property 
      name="address" 
      value="1060 W. Addison St" /> 
     <property 
      name="city" 
      value="Chicago" /> 
     <property 
      name="state" 
      value="IL" /> 
     <property 
      name="zip" 
      value="60613" /> 
    </bean> 
</beans> 
을 내가 지금처럼 ClassPathXmlApplicationContext를 사용하는 경우

는 : 그것은 부모 XML을 해결할 수

BeanFactory beanFactory = new ClassPathXmlApplicationContext(new String[] { 
     "./*.xml" }); 

    SimplePerson person = (SimplePerson)beanFactory.getBean("simplePersonAddress01"); 
    System.out.println(person.getFirstName()); 

봄 뿌려줍니다.

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'simplePersonBase' is defined 

확실한 방법이 있지만 확실하지 않습니다. 아무도 어떻게 알 수 있습니까?

답변

2

접두어 classpath*:으로 시도해보십시오.

+0

전에 이것을 보았지만 다른 오류가 나를 오도하고 있습니다. \t \t의 BeanFactory BeanFactory에 = 새로운 ClassPathXmlApplicationContext (새로운 String [] { \t \t \t. "클래스 경로 * : * XML"}) 기록을 위해,이 변화 할 때 내가 가지고있는 것입니다; – javamonkey79

0

A.jave에 해당 xml 파일이 있습니까? 프로젝트 A에서 src/main/resources 안에 XML을 넣었습니까?

+0

예, 첫 번째 XML 스 니펫은 프로젝트 A의 src/main/resources에 있습니다. – javamonkey79

0

이 질문에 대한 답변은 아니지만이 접근법에 유의하십시오.

악몽으로 해결할 수있는 오류입니다. 시작시 스프링 오류가 발생한다고 상상해보십시오 - 해결할 수있는 유일한 방법은 모든 항아리를 열어서 응용 프로그램 컨텍스트를 유지하는 것입니다.

최소한 응용 프로그램 컨텍스트 파일을 별개의 패키지에 넣고 이름으로 사용할 것을 지정하십시오.

classpath의 루트에있는 * .xml은 재난을 대비하는 방법입니다.