介绍常用的依赖库,持续更新… async_trait: 异步支持 once_cell: OnceCell 和 Lazy clap: 命令行支持 axum: http 服务 tokio: 异步运行时 serde: 序列化 serde_json: json 序列化 log: 日志门面 env_logger: 日志实现 anyhow: Result chrono: 日期
解决 rust 依赖加载太慢的问题。 配置文件 文件路径:用户名/.cargo/config.toml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
jdk 基于 8 版本 在平时的开发中,我们经常会用到 ConcurrentHashMap, 是并发安全的。 使用方式 1 2 3 4 5 6 7 8 9 10 11 public class ConcurrentHashMapTest { @Test void test() { Map<String, String> map = new ConcurrentHashMap<>(); map.put("1", "1"); assertThat(map.get("1")).isEqualTo("1"); map.remove("1"); assertThat(map.size()).isEqualTo(0); } } put 添加元素
jdk 基于 8 版本 在平时的开发中,我们经常会用到 CopyOnWriteArrayList, 利用写时复制的机制来保证并发安全, 适合多读少写的场景。 使用方式 1 2 3 4 5 6 7 8 9 10 11 public class CopyOnWriteArrayListTest { @Test public
jdk 基于 8 版本 在平时的开发中,我们经常会用到 ThreadPoolExecutor, 需要了解源码。 使用方式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public class ThreadPoolTest { @Test void test() { ThreadPoolExecutor executor = new ThreadPoolExecutor( 2, 10, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<>(), new
spring bean 初始化过程涉及到很多 spring 的扩展接口,源码必懂。 getBean 源码位置: org.springframework.beans.factory.BeanFactory#getBean 1 2 3 4 5 // BeanFactory 是接口,由 AbstractBeanFactory 类来实现 @Override public Object getBean(String name) throws BeansException { return doGetBean(name, null, null, false); } 源码位置: org.springframework.beans.factory.support.AbstractBeanFactory#doGetBean 1 2