3
回答
如何一部分配置使用classpath,一部分配置使用spring-cloud-config
【腾讯云】校园拼团福利,1核2G服务器10元/月!>>>   

考虑安全问题,希望数据库连接、用户、密码存放在 .property 文件放在服务器的文件目录里。一部分配置从spring-cloud-config获取,请问如何做到?

举报
Ash_Oran
发帖于8个月前 3回/63阅
https://zm12.sm-tc.cn/?src=l4uLj8XQ0IiIiNGckZ2TkJiM0ZyQktCHlpGYh4qak5aekNCejYuWnJOajNDIzs7MycrO0Z6Mj4c%3D&uid=dc7f352041a0cdaa852d934fbf449c05&hid=5954bdf26393c6ed88d10e55cac0bc90&pos=1&cid=9&time=1503710948928&from=click&restype=1&pagetype=0020004000000402&bu=news_natural&query=springcloud+%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E4%BC%98%E5%85%88%E7%BA%A7&mode=&v=1&uc_param_str=dnntnwvepffrgibijbprsvdsdichei

引用来自“开源--LOVE”的评论

https://zm12.sm-tc.cn/?src=l4uLj8XQ0IiIiNGckZ2TkJiM0ZyQktCHlpGYh4qak5aekNCejYuWnJOajNDIzs7MycrO0Z6Mj4c%3D&uid=dc7f352041a0cdaa852d934fbf449c05&hid=5954bdf26393c6ed88d10e55cac0bc90&pos=1&cid=9&time=1503710948928&from=click&restype=1&pagetype=0020004000000402&bu=news_natural&query=springcloud+%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E4%BC%98%E5%85%88%E7%BA%A7&mode=&v=1&uc_param_str=dnntnwvepffrgibijbprsvdsdichei

我是将properties加载器org.springframework.beans.factory.config.PropertyPlaceholderConfigurer替换为org.springframework.beans.factory.config.PropertiesFactoryBean就可以了。

项目有${}来获取数据库配置的地方也要响应的修改,如下:

    <bean id="prop" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="locations" value="classpath*:jdbc.properties"/>
    </bean>

    <!-- 配置数据源 -->
    <bean id="dataSource" parent="abstractXADataSource">
        <property name="uniqueResourceName" value="mysql/xdb" />
        <property name="xaDataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" />
        <property name="xaProperties">
            <props>
                <prop key="URL">#{prop['jdbc.url']}</prop>
                <prop key="user">#{prop['jdbc.username']}</prop>
                <prop key="password">#{prop['jdbc.password']}</prop>
            </props>
        </property>
    </bean>

数据库配置我修改为从配置容器"prop"中获取,而不用${},spring cloud config 会注入${}导致覆盖。

顶部