使用当当网的分表分库框架sharding jdbc报错如下
Cloud not resolve placeholder … in string value …?
原因是由于inline表达式内使用Groovy语法,Groovy语法的变量占位符为${}
,与Spring的Property占位符冲突
错误的地方是:设置<context:property-placeholder>的地方没有放到跟下面的配置在同一个文件中
<bean id="dataSource_card" primary="true"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${driverClassName}" />
<property name="url" value="${jdbc.card.url}" />
<property name="username" value="${jdbc.card.username}" />
<property name="password" value="${jdbc.card.password}" />
</bean>
解决办法
把<context:property-placeholder location="classpath:property/*.properties" ignore-unresolvable="true" />
放到使用
${driverClassName}同一文件中去。
这个perperties文件是properties下的jdbc.properties.