springboot配置注入增强(四)使用框架实现自定义数据源和自定义属性解析

编程入门 行业动态 更新时间:2024-10-23 14:20:10

springboot配置注入增强(四)使用框架实现<a href=https://www.elefans.com/category/jswz/34/1771438.html style=自定义数据源和自定义属性解析"/>

springboot配置注入增强(四)使用框架实现自定义数据源和自定义属性解析

1.代码

框架代码已经上传到gitee中

代码链接:

jar包:

2.使用方式

2.1 引入jar包

引入本地jar包或者把jar包上传到自己的maven仓库中

或者把代码下载下来改一改包名或加点自己的代码,然后通过build.gradle上传到自己的maven仓库中,只要修改账号密码和仓库地址,然后通过publish命令上传 ,脚本中根据version中是否以-SNAPSHOT结尾来判断上传到哪个仓库中

2.2 自定义属性解析方法

实现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 {@Overridepublic String resolveStringValue(String strVal) {if (strVal.contains("decode")) {strVal += "----自定属性解析";}return strVal;}
}

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

2.3 自定义增加属性数据源

自定义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>> {@Overridepublic PropertySource<Map<String, Object>> buildPropertySource(Environment environment) {Map<String, Object> source = new HashMap<>();source.put("user.123.sex", "自定义数据源");return new MapPropertySource("enhanceTestSource", source);}
}

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

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

结果为

3.原理

本质上用了上一篇中介绍方式进行的开发,其中自定义解析用了上一篇中3.1+3.2组合的方式,先尝试进行3.1,如果不成功在用3.2兜底

添加了自动配置com.config.enhance.autoconfigure.EnhanceAutoConfiguration,通过@Import将扩展点加入到springboot的启动流程中

更多推荐

springboot配置注入增强(四)使用框架实现自定义数据源和自定义属性解析

本文发布于:2023-12-03 20:39:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1657411.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:自定义   数据源   框架   属性   springboot

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!