봄과 MyBatis로 통합 자리는 문제를 해결할 수없는

문제 : 새로운 DAO 인터페이스 프롬프트 단위 테스트를 쓰기 :

Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type 'java.lang.String' to required type 'int' for property 'maxActive'; nested exception is java.lang.NumberFormatException: For input string: "${maxActive}"

자리 표시 자 원래의 구성 데이터 소스를 사용하는 경우, 프롬프트가 자리 표시 자 $ {maxActive}가 해당 속성없이 발견 구문 분석됩니다.
속성 @PropertySource (값 = { "클래스 경로 *하여로드 부 실험 : jdbc.properties를"}) 주석 부하 구성 파일.
당신이 당신의 속성 파일 경로가 올바른지 인정하고 인터넷에서 해당 정보를 찾을 수있는 속성 값으로이 후 https://my.oschina.net/u/1455908/blog/215953 즉 MapperScannerConigurer의 MyBatis로 구성합니다 말 @PropertySource 주석 우선 파싱 자리 자리 구문 분석이 직접 "$ {maxActive}"구성 항목의 값으로 문자열을 사용하지 않기 때문에. 라는 주어진다 "$ {maxActive}"문자열은 해당 값 INT로 변환 할 수 없습니다.

문제 해결

일본어 @PropertySource에서 주석을 사용하여 구성 파일로드 다음과 같다 : (값 = { "클래스 경로 * jdbc.properties"}) 읽어

    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:jdbc.properties</value>
            </list>
        </property>
        <property name="ignoreUnresolvablePlaceholders" value="true"></property>
    </bean>

변경하지 않는 MapperScannerConfigurer 원래의 구성은, 같은 다음과 같습니다 :

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.**.dao,com.**.mapper,com.**.test.**.mapper" />
        <!--网上说这个name属性值要配置成这个sqlSessionFactoryBeanName名字,我恰好配的就是这个,所以我这里不需要改-->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>

그래야 문제가 해결된다. 그러나 @PropertySource이 댓글이 속성을 ignoreUnresolvablePlaceholders하지 않는 이유 질문 남아, 구성 할 수 있으며 올바른 방법을 XML 파싱을 사용할 수 있습니다.

추천

출처www.cnblogs.com/frankwin608/p/11870274.html