2014-07-09 1 views
0

내 설정은 다음과 같습니다대체는

<bean 
     class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" 
     id="entityManagerFactory"> 
     <property name="dataSource" ref="dataSource" /> 

     <property name="persistenceXmlLocation" 
      value="classpath:META-INF/spring/environments/${env}/persistence.xml" /> 
    </bean> 

내가 원하는 것은,

META-INF는/봄/환경/$ {ENV}/지속성 경우 .XML

내가 LocalContainerEntityManagerFactoryBean로드 할, 발견되지

META-INF/spring/environments/dev/persistence.xml

가능합니까?

답변

0

상자 밖이 아니라고 생각합니다. 그러나 당신은 그것을하기 위해 작은 지원 수업을 사용할 수 있습니다.

public class ResourceCandidateResolver { 

    @Autowired 
    private ResourceLoader resourceLoader; 
    private String[] candidates; 

    public String resolve() { 
     for (String candidate : candidates) { 
      Resource res = resourceLoader.getResource(candidate); 
      if (res.exists()) 
       return candidate; 
     } 

     return null; 
    } 

    public String[] getCandidates() { 
     return candidates; 
    } 

    public void setCandidates(String[] candidates) { 
     this.candidates = candidates; 
    } 
} 

그리고 주사를 사용하십시오.

<bean id="resourceCandidateResolver" class="beans.ResourceCandidateResolver"> 
     <property name="candidates"> 
      <list> 
       <value>classpath:/persistence-one.xml</value> 
       <value>classpath:/persistence-two.xml</value> 
      </list> 
     </property> 
</bean> 
<bean 
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" 
    id="entityManagerFactory"> 
    <property name="dataSource" ref="dataSource" /> 

    <property name="persistenceXmlLocation" 
     value="#{resourceCandidateResolver.resolve()}" /> 
</bean> 

기타 옵션은 Configuration 클래스입니다.

+0

두 번째 옵션 (구성 클래스) 사용 방법은 무엇입니까? – riship89

+0

@ riship89 내부에 유효한 지속성 구성을 검색하는 LCEMFB를 만드는 Bean 메소드를 사용하여 Configuration 클래스를 작성하기 만하면됩니다. –