多模块spring注入处理
踏破铁鞋无觅处,得来全不费功夫。——施耐庵 今天在搭建多模块项目时发现一个问题,其中一个公共依赖里需要注入的bean,注入不到字模块spring容器里去 最后在resources/META-INF/spring下面新建了org.springframework.boot.autoconfigure.AutoConfiguration.imports 内容为 12com.xxx.GlobalExceptionHandlercom.xxx.GlobalRestResultHandler 手动指定要注入的bean搞定了 见:2.7版本spring.factories弃用 | 阿超
通过条件跳过单元测试
散步慌言蜚语的人往往隐瞒自己的身份,狡黠地假托世人名字,比如,“世人说” “国外有一种说法” 等等。——培根 分享一个小技巧,我们可以使用 1Assumptions.assumeTrue(isConnected(), "Redis is not available. Skipping the test."); 在单元测试中判断,不满足条件则跳过测试 例如此处就是判断redis是否已连接,为true则会继续往下执行,为false则会skip
win安装docker desktop报错
任何装模作样的言行都是会令人厌恶的。——佚名 今天在win安装完Docker Desktop后报错: 1Docker Desktop - WSL kernel version too low 提示WSL kernel版本太低 123Docker Desktop requires a newer WSL kernel version.Update the WSL kernel by running "wsl --update" or follow instructions athttps://docs.microsoft.com/windows/wsl/wsl2-kernel. 这里进一步提示执行wsl --update 执行后重启就解决了
react生命周期弃用
强本而节用,则天不能贫;养备而动时,则天不能病;修道而不贰,则天不能祸。——荀子 在运行apache-shenyu发现很多警告 大致说是生命周期弃用了,并且提供了一个指南链接 https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html 指南中大致提到了几点,以及相关的例子 https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#examples 例如请求数据渲染时使用componentDidMount代替componentWillMount之类的场景 我也针对新建了一个issue,去处理优化掉这些弃用的生命周期 https://github.com/apache/shenyu-dashboard/issues/341
cim
你属于你的祖国,正如你属于你的母亲。——黑尔 分享一个开源项目 https://github.com/crossoverJie/cim https://crossoverjie.top/categories/Netty/ 📲cim(cross IM) 适用于开发者的分布式即时通讯系统 算是比较老的开源项目了 客户端向 route 发起登录。 登录成功从 Zookeeper 中选择可用 IM-server 返回给客户端,并保存登录、路由信息到 Redis。 客户端向 IM-server 发起长连接,成功后保持心跳。 客户端下线时通过 route 清除状态信息。
docusaurus国际化坑
你不教训儿子,生活就一定会来教训他。——佚名 今天做apache-streampark文档国际化时踩到一个坑,其使用的框架docusaurus它支持多版本的管理,所以需要套一层current目录标识版本号 对应的pr: https://github.com/apache/incubator-streampark-website/pull/256 就是将i18n/zh-CN/docusaurus-plugin-content-docs-community/移动到 i18n/zh-CN/docusaurus-plugin-content-docs-community/current/ 加了一层current目录即可正确匹配上了 之前的效果: 现在:
sms4j对接阿里云短信
迷信、愚昧和虚伪腰缠万贯,但真理一直是一个乞丐。——马丁·路德 开通服务:新手指引_短信服务-阿里云帮助中心 首先安装: 12345<dependency> <groupId>org.dromara.sms4j</groupId> <artifactId>sms4j-spring-boot-starter</artifactId> <version>${sms4j.version}</version></dependency> 然后配置: 12345678910111213141516171819202122232425sms: # 标注从yml读取配置 config-type: yaml is-print: false blends: # 自定义的标识,也就是configId这里可以是任意值(最好不要是中文) aliyun: # 厂商标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分 supplie...
WeMQ
礼貌是聪明的事,无礼是愚蠢的事,若非因必要或任性的无礼以致树敌,犹如在自己的家里纵火一样。——叔本华 WeMQ: WeMQ是一款面向物联网设备运营商的开源物联网设备调试系统,提供完整的物联网设备调试方案,集成设备管理、MQTT服务器管理、客户管理等功能,自研Nmqs通信层组件,实现了连接信息的加密,保证了数据的安全性。
js1k
兼听则明,偏信则暗。——魏徽 昨天分享了 aem1k 今天是js1k https://js1k.com/ 其中有很多有趣的代码 https://js1k.com/2019-x/ 例如这个吃豆人: https://js1k.com/2019-x/demo/4122 代码: https://js1k.com/2019-x/details/4122 效果:
aem1k
坏习惯是在不知不觉中逐渐形成的,就像溪汇成河,河流入海一样。——奥维德 分享一个网站 https://aem1k.com/ 其中有非常多好玩的js代码,都只有1kb内大小 例如 12345678910111213141516eval(z='p="<"+"pre>"/* *#########* */;for(y in n="zw24l6k\4e3t4jnt4qj24xh2 x/* ################* */42kty24wrt413n243n\9h243pdxt41csb yz/**####################* */43iyb6k43pk7243nm\r24".split(4)){/* *################* */for(a in t=pars\eInt(n[y],36)+/* ################* */(e=x=r=[]))for\(r=!r,i=0;t[a/* *##...
