框架代码已经上传到gitee中
代码链接:https://gitee.com/summer-cat001/config-enhance
jar包:https://gitee.com/summer-cat001/config-enhance/tree/master/build/libs
引入本地jar包或者把jar包上传到自己的maven仓库中
或者把代码下载下来改一改包名或加点自己的代码,然后通过build.gradle上传到自己的maven仓库中,只要修改账号密码和仓库地址,然后通过publish命令上传 ,脚本中根据version中是否以-SNAPSHOT结尾来判断上传到哪个仓库中

实现EnhancePropertyResolver接口,并添加到spring.factories中com.config.enhance.resolver.EnhancePropertyResolver中,多个用逗号分隔
- package com.config.enhance.test2.enhance;
-
- import com.config.enhance.resolver.EnhancePropertyResolver;
-
-
- public class EnhancePropertyResolverTest extends EnhancePropertyResolver {
-
- @Override
- public String resolveStringValue(String strVal) {
- if (strVal.contains("decode")) {
- strVal += "----自定属性解析";
- }
- return strVal;
- }
- }
这样就可以了,下面看下运行结果




自定义EnhancePropertySource接口,并添加到spring.factories中com.config.enhance.env.EnhancePropertySource中,多个用逗号分隔
- package com.config.enhance.test2.enhance;
-
- import com.config.enhance.env.EnhancePropertySource;
- import org.springframework.core.env.Environment;
- import org.springframework.core.env.MapPropertySource;
- import org.springframework.core.env.PropertySource;
-
- import java.util.HashMap;
- import java.util.Map;
-
-
- public class EnhancePropertySourceTest implements EnhancePropertySource<Map<String, Object>> {
-
- @Override
- public PropertySource<Map<String, Object>> buildPropertySource(Environment environment) {
- Map<String, Object> source = new HashMap<>();
- source.put("user.123.sex", "自定义数据源");
- return new MapPropertySource("enhanceTestSource", source);
- }
- }

这样就可以了,下面看下运行结果



当然自定义的数据源也会被自定义的解析方法进行解析如

结果为


本质上用了上一篇中介绍方式进行的开发,其中自定义解析用了上一篇中3.1+3.2组合的方式,先尝试进行3.1,如果不成功在用3.2兜底
添加了自动配置com.config.enhance.autoconfigure.EnhanceAutoConfiguration,通过@Import将扩展点加入到springboot的启动流程中