XML 기반의 Spring 설정에서 "속성-자리"와 함께 :봄 부팅 - 초보 - 부모 나는 봄 부팅의 "봄 부팅 스타터 부모"에서 상속 내 POM에서
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
</parent>
에 따르면 다음으로 Spring Boot documentation Spring Boot Parent는 Spring 스타일의 플레이스 홀더와의 충돌을 막기 위해 maven-resources-plugin의 기본 필터 토큰을 $ {maven.token}에서 @ maven.token @으로 변경합니다. 배경 : Spring의 구분자는 Maven 구분자와 동일합니다.
제 생각에 : 변경 사항은 Maven 속성에 영향을 주며 Spring 속성 확장에는 영향을 미치지 않습니다. 하지만 어쩌면 내가 틀렸어 그 반대 일까? 를 통해 수입 내 XML 기반의 Spring 애플리케이션 컨텍스트 구성 파일 : "속성-자리 컨텍스트"다음을 사용하는 경우
지금,
@Configuration
@ImportResource("spring/applicationContext-core.xml")
@EnableJpaRepositories
@EnableAutoConfiguration
public class StudyDayApplication {
/**
* This main is for using Spring Boot in case of a JAR file packaging.
*
* @param args
*/
public static void main(String[] args) {
SpringApplication.run(StudyDayApplication.class, args);
}
}
봄 특정 키의 속성 확장은 더 이상 작동하지 않습니다. 내 "application-core.xml"에서는 외부 고유의 구성 속성을 사용하기 위해 Spring 고유의 "속성 자리 표시 자"를 사용합니다. 하지만 여전히 Spring 고유의 속성 구분 기호 (예 : 내 "dataSource"bean의 "jpa.driver.classname"을 확장)를 사용하려고합니다.
...
<context:property-placeholder
ignore-resource-not-found="false"
location="classpath*:*.properties"/>
...
<bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource">
<property name="driverClassName" value="${jpa.driver.classname}"/>
...
그러나 다음과 같은 XML을 추가 할 때 following remark에 따르면
"@ @ jpa.driver.classname"에 의해 "$ {jpa.driver.classname을}"교체 할 때 스프링의 교체에만 작동 속성 :
order="1"
ignore-unresolvable="true"
을 "속성-자리"에 내가 말해 봄 부팅 시작시 예외를 얻을하지 않습니다
는 "문자열 값의 자리 표시 자 'jpa.driver.classname'을 확인할 수 없습니다 "$ {jpa.driver.classname} "
하지만이 건물의 확장이 제대로 작동하지 않도록 해요" property-placeholder "는 분석 할 수없는 항목을 무시합니다. bean이 확장되지 않은 속성 키를 사용하여 인스턴스화되는 경우 나중에 예외가 발생합니다. "order = 1"속성 만 설정해도 도움이되지 않습니다.
아마도 "property-placeholder"를 명시 적으로 Spring Boot searches for "application.properties" automatically within the application으로 사용하기 위해 Spring Boot가 필요하지 않을 수도 있습니다. 그러나 나는이 접근법으로 바꾸고 싶지 않다.
"spring-boot-startter-parent"를 사용하고 일반적인 Spring 속성 확장을 활성화하는 방법이 있습니까?