仿小红书交流社区(微服务架构)

framework - 平台基础设施starter - jackson为了支持 Java 8 中新的日期 API ,我们需要自定义 Jackson 配置 12345678910111213141516171819202122232425262728293031323334353637383940@AutoConfigurationpublic class JacksonAutoConfi...

项目开发 / 微服务

Spring 源码阅读(循环依赖、Bean 生命周期、AOP、IOC) - 5.2.15.RELEASE

循环依赖执行原理三级缓存: 第一级缓存:singletonObjects,用于保存实例化、注入、初始化完成的 bean 实例例; 第二级缓存:earlySingletonObjects,用于保存实例化完成的 bean 实例例; 第三级缓存:singletonFactories,⽤于保存 bean 创建⼯工⼚,以便后面有机会创建代理对象 执行流程: 在第一层中,先去获取 A 的 Be...

后端开发 / Spring源码

小型支付系统(MVC、DDD)

开发运维natapp - 内网穿透NATAPP 123456789# https://natapp.cn/ - 支持免费使用,但付费会更稳定一些 # 将本文件放置于natapp同级目录 程序将读取 [default] 段 # 在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置 # 命令行参数 -config= 可以指定任意config.ini文件...

项目开发 / 架构设计

ThreadPoolExecutor源码阅读以及手写简单线程池 —— JDK17

ThreadPoolExecutor 固定大小的线程池 Executors.newFixedThreadPool(int nThreads);,适合用于任务数量确定,且对线程数有明确要求的场景。例如,IO 密集型任务、数据库连接池等。 缓存线程池 Executors.newCachedThreadPool();,适用于短时间内任务量波动较大的场景。例如,短时间内有大量的文件处理任务或网络请...

后端开发 / Java源码

MyDB - 手写数据库

MyDBTM - 事务管理tm 模块通过维护一个 xid 文件来进行事务管理 123456789101112131415// XID文件头长度static final int LEN_XID_HEADER_LENGTH = 8;// 每个事务的占用长度private static final int XID_FIELD_SIZE = 1;// 事务的三种状态// 活跃private stat...

项目开发 / 数据库

SQL学习总结

https://www.bilibili.com/video/BV1UE41147KC 第二章1from -> where -> order by .. (desc) -> limit SELECT12345678select * from customers where customer_id = 1 order by first_name;select f...

数据库 / SQL

HashMap学习总结——JDK17

HashMap构造方法HashMap(int initialCapacity, float loadFactor)loadFactor 加载因子 loadFactor 是加载因子,默认是0.75,当 实际节点数 / 总容量 超过 loadFactor 会触发扩容机制 initialCapacity 初始容量HashMap内部的 Node<K, V> 数组的大小总为2的...

后端开发 / Java源码

基于Java与Netty的RPC框架

1.1 - 基本的rpc调用 1.2 - 引入netty框架 Client客户端有服务端的功能接口,因此通过此接口创建代理对象,此对象内部会有netty的客户端,当用户调用代理对象的方法时,netty的客户端会向服务端发送请求并返回数据 Server在服务端启动后,会把自身放入一个map中,在收到请求后且是RpcRequest时,会触发NettyRPCServerHandler处理器,根据R...

项目开发 / 分布式

Java-动态代理学习总结

https://www.bilibili.com/video/BV1ue411N7GX 什么是代理 自己的理解:类似与Spring中的AOP,是对原有代码的增强,也是对原有代码的封装 官话:在Java中,代理(Proxy)是一种设计模式,用于控制对某个对象的访问。代理模式通过创建一个代理对象,来替代原始对象,以实现对原始对象的访问控制。代理对象和原始对象实现相同的接口,客户端对象可以透明...

后端开发 / Java基础

SpringCloud学习总结

仓库地址视频地址 分布式:一个大应用分拆成多个小应用分布部署在各个机器上 微服务(Spring Boot)(自治):独立部署,数据隔离,单点故障 注册中心(Spring Cloud Alibaba Nacos):服务发现,服务注册,配置中心 远程调用(Spring Cloud Open Feign) 服务熔断(Spring Cloud Alibaba Sentinel):快速失败,服务...

后端开发 / 微服务
123