Java
232 篇笔记
- 2.49 原理分析historical
缓存管理和缓存类是怎么生成的 1. spring-boot-starter预先导入的自动配置类 - @CacheAutoConfiguration cache自动配置的类在于CacheAutoConfiguration,他导入了一个CacheConfigurationImportSelector 我
- 2.50 组件介绍historical
1. 是什么 一个异步事件驱动的网络框架,提供的api比Java原生的BIO、NIO的api好用的多,并且Netty能随意的切换NIO或者BIO的实现方式 2. 组件 2.1. Bootstrap 用于启动Netty。包含创建线程,创建socket等工作 2.2. EventLoop 是一个死循环,
- 2.51 堆外内存historical
1. 什么是堆外内存 就是内存不是分配在Java堆上的,而是在操作系统内存上的 2. NIO堆外内存 JDK NIO ByteBuffer.allocate方法分配的内存是在Java堆上面的,当数据需要传输的时候需要把堆上的这块内存数据原封不动的copy到操作系统内存中 而Java NIO Byte
- 2.52 BeanFactoryhistorical
1. BeanFactory和ApplicationContext BeanFacotry是实例化、配置、管理Bean的容器 ApplicationContext接口继承了BeanFactory接口,所以提供了BeanFactory的所有功能。他同时还继承了其他接口,如下图: 提供了额外的功能,如更
- 2.54 循环依赖historical
1. 循环依赖是什么 假设有两个Bean,Bean1和Bean2,如果Bean1依赖Bean2,Bean2依赖Bean1。 那么Spring创建Bean1的时候需要先创建Bean2,创建Bean2又需要先创建Bean1,这就叫做循环依赖 2. 循环依赖会导致什么问题 2.1. 构造器注入会抛出异常
- 2.55 Spring中如何让A和B两个bean按顺序加载historical
1. 使用@DependsOn注解 - TestController - TestService - 启动的时候输出 2. 参考 - Spring 中如何控制2个bean中的初始化顺序? \- 知乎 - @DependsOn或depends\-on配置的使用 \- 掘金
- 2.56 1.创建NioEventLoopGrouphistorical
1. NioEventLoopGroup类体系 如图,NioEventLoopGroup就是一个线程池,因此我们可以把任务封装成Runnable提交给NioEventLoopGroup执行 由继承的MultithreadXXX的名字可以看出,这玩意是一个多线程的池子,每个线程是什么呢--其实是Nio
- 2.57 2.Bootstrap的创建historical
1. 要分析的代码 2. 创建ServerBootstrap 创建ServerBootstrap没什么好说的,就是调用构造方法 3. 设置ServerBootstrap的属性 接下来就是设置他的属性,包括channel、handler、childHandler、option等 其中最重要channe
- 2.58 3.绑定端口historical
1. 要分析的代码 2. 服务端绑定端口 我们继续看绑定监听端口的逻辑 - bind 沿着bind往下追,最后到达doBind--关键方法 分为两步,一个是实例化、初始化并注册channel,另一个是真正绑定监听端口 2.1. 实例化、初始化并注册channel 1.实例化channel.md 2.