一个基本开发框架的整合演化之路--3、为配置中心的整合而努力,xxl-conf一些不合理的地方之更改

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cdnight/article/details/86662208

前言

这个基本框架是有配置中心的,配置中心用的是,xxl-conf。。里面自带有admin管理控制台,就是这个,有些地方需要更改一下,在此之前,可以先看看下列文章,先照着做了回来改代码:
【配置中心】xxl-conf配置1 - 入门教程
【配置中心】xxl-conf配置2 - spring boot+gradle打包为可执行的war
【配置中心】xxl-conf配置3 - xxl-conf-admin在linux下面的自启动
【配置中心】xxl-conf配置4 - spring mvc客户端读取xxl-conf的配置信息

这篇文章主要参考了:
一起开发一个文件服务器–3、配置中心和redis(2)xxl-conf的键值设置【试验稿】
一起开发一个文件服务器–3、配置中心和redis(3)spring与redis的集成【试验稿】

管理后台配置属性不允许部分字符串的问题

注意,我发现了一个非常难以明白的限制,那就是:
在这里插入图片描述
大小写限制,字符限制。。。额,感觉没爱了,好了,一搜索就能够发现:
在这里插入图片描述

在文件conf.1.js下面,我们顺便将正则改为自己喜欢的,例如,改成这样:

    // jquery.validate 自定义校验
    jQuery.validator.addMethod("myValid01", function(value, element) {
        var length = value.length;
        var valid = /^[a-z][a-zA-Z0-9._]*$/;
        return this.optional(element) || valid.test(value);
    }, "限制以小写字母开头,由小写字母、大写字母、数字和.以及_组成");

然后打包重启再试试:
在这里插入图片描述

好了,前端验证已经阻止不了我们了。
那么改了前端之后是不是就安枕无忧呢?非也,当时在读取配置的时候竟然发现没办法读取改了逻辑而输入的属性,看下面第二点。

服务端无法获取部分属性

在这里插入图片描述

在这些属性里面,大写字母还有有下划线的属性是没办法获取到值的。这个恰好是之前修改了前端逻辑直接能够输入到后台的几个属性。
下面来直接调试追踪一下哪个地方出问题了。
1、
在这里插入图片描述
2、
在这里插入图片描述

3、
在这里插入图片描述
4、
在这里插入图片描述

看到这里要提醒一下。。。find方法最后是通过url远程调用配置网站的/conf/find方法的。。结果就是,要跳到xxl-conf-admin下面的/conf/find来看看。

接着来看找到conf/find对应的spring boot控制器:
5、
在这里插入图片描述
在这里插入图片描述

是这个没差了,看看find里面做了什么:
在这里插入图片描述

注入了一个xxlConfNodeService。。。好了,看看这个定义和方法所在:
在这里插入图片描述

好了,检索一下哪个类继承实现了IXxlConfNodeService:
在这里插入图片描述

好,凭肉眼也能找到实现类了,
在这里插入图片描述

找到方法find:
在这里插入图片描述

到重头戏了。重点注意一下圈出来的代码。里面的意思是,遍历需要查找值的keys,然后验证一下key是不是有效—null,空字符串都是无效,当然还有,不满足正则表达式:abc_number_line_point_pattern的也是无效的,无效的就不处理。假如有效,那么就获取值。。所以现在的关键是,在判断key是否有效的时候正则表达式是什么,是不是把刚才的needAuth都忽略了。接着看
在这里插入图片描述

好了,答案已经出来了,正则表达式跟前端验证是一致的,我们改了前端没改后端,改为:
在这里插入图片描述

重启服务再测试:
在这里插入图片描述

结语

改完这两个算是用起来比较顺手了。

猜你喜欢

转载自blog.csdn.net/cdnight/article/details/86662208