240 发简信
IP属地:广东
  • 通俗易懂 点个赞

    DCL单例模式为什么要两次判空

    解析第一个注意点:使用私有的构造函数,确保正常情况下该类不能被外部初始化(非正常情况比如通过反射初始化,一般使用反射之后单例模式也就失去效果了)。第二个注意点:getInst...

  • DCL单例模式为什么要两次判空

    解析第一个注意点:使用私有的构造函数,确保正常情况下该类不能被外部初始化(非正常情况比如通过反射初始化,一般使用反射之后单例模式也就失去效果了)。第二个注意点:getInst...

  • 这种用的多吗,会不会侵入性太强了

    Swagger介绍及使用

    导语: 相信无论是前端还是后端开发,都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新。其...

  • 代替Kafka的消息队列:Apache Pulsar设计简介

    导读:在传统消息系统中,存在一些问题。一方面,消息的存储和服务一般是紧耦合的,节点的扩容和运维不便,特别是在需要多备份来保证高可用性的场景。另一方面,消息的消费模式被固定,在...

  • 谢楼主提供的思路,不过我遇到几个问题补充一下:
    之前2.x版本试过,刚最新版本2.1.7又试了
    1,connect-properties是connection-properties
    2,解密钥匙只能是公钥
    3,我是几个版本都测了不会自动解密,所以配置的druid-starter的请在druid的下一级配置passwordCallbackClassName指定解密回调,里面其实就是获取公钥获取密码解密。和工具类一样。

    @Slf4j
    public class DbPasswordCallback extends DruidPasswordCallback {

    @Override
    public void setProperties(Properties properties) {
    super.setProperties(properties);
    String password = (String) properties.get("config.decrypt.password");
    String publickey = (String) properties.get("config.decrypt.key");
    try {
    String dbpassword = ConfigTools.decrypt(publickey, password);
    setPassword(dbpassword.toCharArray());
    } catch (Exception e) {
    log.error("Druid ConfigTools.decrypt", e);
    }
    }
    }

    另外附上一种比较简便的加密但是可能面临闭源危险
    jasypt https://blog.csdn.net/liujun19921020/article/details/90033207

    SpringBoot2.x 整合druid,并将数据库密码加密

    一、整合druid 步骤一在pom.xml中添加<dependency>依赖: 步骤二在applicaion.yml中添加如下配置: 如此两步就完成了,不需要自己写配置类了。...

  • 消费方直接依赖生产者,那就不叫RPC了,读者可自行抽出公共API接口层

    蚂蚁 RPC 框架 SOFA-RPC 初体验

    前言 最近蚂蚁金服开源了分布式框架 SOFA,楼主写了一个 demo,体验了一下 SOFA 的功能,SOFA 完全兼容 SpringBoot(当然 Dubbo 也是可以兼容的...