发布了文章2023-08-02
一. 基础工作准备反向代理[链接]启动./ReverseProxy_linux_amd64下载 jrebel[链接]下载 jrebel-2022.3.1-nosetup.zip, 不要用太新的, 新版本激活方法还没出来, 激活不了解压unzip jrebel-2022.3.1-nosetup.zip解压后生成一个 jrebel 目录用 uuidgen 生成一个 UUID, ...
回答了问题2022-11-13
这是典型的装饰器, 组合模式, 通过宏, 对你的代码块添加额外的功能, 简化代码.你可以了解一下 cargo expand, 可以看到宏展开后的实际代码.
回答了问题2022-11-12
它是一个泛型枚举, 要么是 Ok, 要么是 Err, 对应到 C 中的返回结果就是 0, 和非 0, 从程序返回语义角度, 表示正确结果和错误结果, 错误结果就应该要处理.
发布了文章2022-10-27
项目产生的 target 目录非常占用磁盘空间, cargo clean 清理后, 又需要重新编译, 非常耗费时间, 为此, 使用 sccache 来加速编译过程.
赞了文章2022-10-27
CloudWeGo Study Group 是由 CloudWeGo 社区发起的学习小组,开展以 30 天为一期的源码解读和学习活动,帮助新成员融入社区圈子,和社区 Committer 互动交流,并学习上手 CloudWeGo 几大框架项目。CSG 活动第三期主要以学习 Rust 语言为背景,对 Volo 和 Monoio 源码...
回答了问题2022-10-17
Rust 的内存安全措施确实值得把一些基础项目迁移到 Rust, 避免 C/C++大部分内存问题
回答了问题2022-10-17
有时候你调用第三方库, 或者 Rust 内置库, *k和k都是可以的, 有的时候已经为你实现了 Deref 自动解引用了. 参考: 通过 Deref trait 将智能指针当作常规引用处理
回答了问题2022-10-17
要深究可以了解一下 Drop trait
回答了问题2022-10-17
为了满足在运行时对某个对象修改的需要, 这时候就需要放在堆上. 同时在栈中存放这个数据的引用.引用实际上就是指针, 而指针的长度是固定的, 通常为一个字(word)的大小, 在 Rust 为一个 usize 大小, usize 在 32 位系统是 4 字节, 在 64 位系统是 8 字节. 因此满足了...
回答了问题2022-10-17
为了通用性, 有了一般函数为何还需要高阶函数, 有了高阶函数为什么还需要泛型. 想一想应该容易理解了, 就是为了减少模板代码应该是其中一个因素
回答了问题2022-10-17
理解闭包, 可以复习一下高阶函数, 高阶函数的特点:参数可以是另一个函数返回值可以是另一个函数闭包: 也称为 匿名函数, Lambda表达式例子: {代码...} Clippy 类型提示
回答了问题2022-10-17
可见度不同pub(crate) 在当前crate中可见, 外部 crate 不可见pub 在外部 crate 可见pub 比 pub(crate) 可见度高, 可能有冲突
赞了文章2022-03-29
QuickType 是一款可以根据 json 文本生成指定语言(如 Type Script,C++,,Java,C#,Go 等)类型声明代码的工具。
赞了文章2019-06-27
前提 我们有一个学生类: {代码...} 为什么@Builder没有使用到默认值? 使用@Builder之后会生成一个静态内部类StudentBuilder,编译之后我们可以看到一共存在2个class文件。 将Student.class与StudentBuilder.class反编译之后的diamante如下 {代码...} 在StudentBuil...
发布了文章2018-12-24
通配符域名不同于一般的单域名证书. 为了解决之前一篇短文中通配域名通过DNS方式验证的证书自动更新问题. 需要使用到第三方域名提供商的API, 用于自动添加域名的TXT记录, 实现自动验证并完成证书更新过程.
发布了文章2018-11-22
这样是不行的, PayProperties 是一个静态成员, Spring 容器在初始化过程中如果看到这是一个静态的成员, 它会直接跳过这个成员字段, 处理下一个字段.
发布了文章2018-11-19
这是一个历史遗留系统, 旧的系统是C++开发的, 插入数据的时候, 没有统一MYSQL各个层次(服务器, 数据库, 表, 列)的编码, 这个情况基本上是MYSQL的默认安装导致的, 实际的数据编码为LATIN1, 而采用Java 开发的新的系统需要和这个遗留系统公用数据库, 采用的是UTF8编码,...
发布了文章2018-09-25
Spring security 定义了一个过滤器链, 当认证请求到达这个链时, 该请求将会穿过这个链条用于认证和授权. 这个链上的可以定义1..N个过滤器, 过滤器的用途是获取请求中的认证信息, 根据认证方式进行路由, 把认证信息传递给对应的认证处理程序进行处理. 下面的示例图显...
回答了问题2018-09-16
When you demonize the Redis process, the final Docker exec process (the one that started Redis) has nothing left to do, so that process exits, and the container ends itself.If you want to keep the container up, you can either not demonize it, or y...
发布了文章2018-07-27
Spring中, Java方法的事务传播类型通过 @Transactional 注解进行指明, 并通过该注解的 propagation 属性指明事务传播的具体类型.@Transactional 注解的使用非常灵活, 可以注解在服务接口上, 也可以注解在服务类的方法上, 还可以注解在Spring Repository的接口方法上.