一个项目肯定会多少有些配置项,例如jdbc的一些配置,Spring的占位符,简化了对配置文件的读取,用起来极其方便。
1、假设你的配置项如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | jdbc.url=jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=UTF8 jdbc.username=user jdbc.password=password jdbc.validationQuery=select 1 jdbc.maxActive=20 jdbc.initialSize=1 jdbc.minIdle=1 jdbc.maxWait=60000 jdbc.timeBetweenEvictionRunsMillis=3000 jdbc.minEvictableIdleTimeMillis=300000 jdbc.testWhileIdle=true jdbc.testOnReturn=false jdbc.testOnBorrow=false jdbc.defaultAutoCommit=true |
写在配置文件config.properties中
2、你只要在Spring配置文件中配上如下bean
1 2 3 | <bean id="propertyConfigurer"> <property name="location" value="classpath:config.properties"/> </bean> |
3、就可以在spring中自由注入你的配置项了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <bean abstract="true"> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="maxActive" value="${jdbc.maxActive}" /> <property name="initialSize" value="${jdbc.initialSize}" /> <property name="maxWait" value="${jdbc.maxWait}" /> <property name="minIdle" value="${jdbc.minIdle}" /> <property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}" /> <property name="minEvictableIdleTimeMillis" value="${jdbc.minEvictableIdleTimeMillis}" /> <property name="validationQuery" value="${jdbc.validationQuery}" /> <property name="testWhileIdle" value="${jdbc.testWhileIdle}" /> <property name="testOnBorrow" value="${jdbc.testOnBorrow}" /> <property name="testOnReturn" value="${jdbc.testOnReturn}" /> <property name="defaultAutoCommit" value="${jdbc.defaultAutoCommit}"/> </bean> |
4、如果你有些配置项是要加密的,在使用的时候需要解密。
这时你可以继承PropertyPlaceholderConfigurer,重写它的convertPropertyValue或者convertProperty方法进行解密
1 2 3 4 5 6 7 8 9 10 11 | @Override protected String convertPropertyValue(String originalValue) { return 解密(originalValue); } @Override protected String convertProperty(String propertyName, String propertyValue) { return 解密(originalValue); } |
然后把id=”propertyConfigurer”的class换成你自己的class。
这样就可以在配置文件中按你的格式配置密文了。
除非注明,赵岩的博客文章均为原创,转载请以链接形式标明本文地址
本文地址:https://zhaoyanblog.com/archives/194.html