自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Spring Boot 启动过程

Spring Boot 启动过程1. 创建Spring应用2. Spring 应用启动过程2.1 启动应用运行监听器2.2 准备环境2.3 打印banner2.4 创建上下文2.5 准备上下文3. @SpringBootApplication3.1 AutoConfigurationImportSelector4. 刷新上下文之Tomcat过程5. Spring boot 启动过程图解Spring 启动过程,主要分为两部分,第一部分为创建一个SpringApplication,第二部分为应用的的run过程

2021-03-05 23:07:50 219

原创 9. Spring 源码解析之代理对象调用过程

代理对象调用过程代理对象的调用是通过反射的方式调用的(另外一种这里暂且不论),JdkDynamicAopProxy#invoke ,方法中先处理了是否要暴露代理对象的处理,如下:if (this.advised.exposeProxy) { // Make invocation available if necessary. oldProxy = AopContext.setCurrentProxy(proxy); setProxyContext = true;}static Object

2021-03-04 23:18:29 406 1

原创 8. Spring 源码解析之AOP代理对象创建过程

8. Spring 源码解析之AOP代理对象创建过程8.1 校验是否是被增强的bean8.1.1 获取通知和增强器8.1.2 创建代理对象8.2 提前暴露的代理对象8.3 代理对象创建过程图解创建代理对象过程有两个入口,AbstractAutoProxyCreator#getEarlyBeanReference 和 AbstractAutoProxyCreator#postProcessAfterInitialization ,两个调用的时机不通。通常情况下,是通过AbstractAutoProxyCr

2021-03-04 21:57:24 711 1

原创 7.Spring 源码解析之AOP获取增强器过程

7.Spring 源码解析之AOP解析切面过程1. Spring 注解之 @EnableAspectJAutoProxy2. Spring 切面解析过程2.1 查找候选的Spring Advisor2.2 查找候选的AspectJ Advisor1. Spring 注解之 @EnableAspectJAutoProxySpring 开启自动代理是通过 @EnableAspectJAutoProxy 来实现的,看看这个注解都有哪些功能,代码如下:@Target(ElementType.TYPE)@Re

2021-03-04 18:02:04 242 1

原创 6. Spring 源码解析之 IOC 图解

6 IOC过程图解bean定义解析按照扫描过程大致分为两个阶段,如下图所示6.1 IOC容器初始化初始化流程图图示:@ImportResource(“classpath:spring/applicationContext.xml”) IOC初始化,接着this.reader.loadBeanDefinitions(configClasses);进行分析6.2 Bean 生命周期...

2021-03-03 18:23:41 243 1

原创 5. Spring IOC 常见注解

5. Spring 源码解析之 bean 扫描过程1. Spring IOC 常见注解1. Spring IOC 常见注解@Configuration@Import(value = {H.class, K.class, TestImportSelector.class, TestBeanDefinitionRegister.class})@ComponentScan(basePackages = {"com.gmr.test"})@PropertySource(value = {"classpat

2021-03-03 10:24:47 121 1

原创 2. Netty 源码解析之ChannelPipeline

2. Netty 源码解析之ChannelPipeline1. ChannelInitializer 作用2. 自定义 ChannelHandler 的添加过程3. handler命名4. Pipeline 事件传输机制5. Outbound 的操作6. Inbound 事件通过对 BootStrap 分析得到,在channel初始化时,会创造一个channelPipeline,代码如下:protected AbstractChannel(Channel parent) { this.paren

2021-03-03 09:03:41 219

原创 1. Netty 源码分析之启动BootStrap

1. Netty之启动BootStrap1.1 group 的初始化1.2 channel 的初始化1.2.1 ChannelFactory 和 Channel 类型的确定1.2.2 Channel 的实例化1.2.3 unsafe 字段的初始化1.2.4 pipeline 的初始化1.2.5 channel 注册1.2.6 handler 的添加过程1.2.7 connect 分析2.1 服务端 Bootstrp2.1.1 bossGroup 与 workerGroup2.1.2 NioServerSoc

2021-03-02 20:32:03 170

原创 1. 分布式协调服务-zookeeper安装与部署

分布式协调服务-zookeeper分布式环境的特点:分布性、并发性(基于进程的)、无序性(进程之间消息通信)分布式环境面临的问题:网络通信(网络本身是不可靠的)、网络分区(脑裂,网络延时导致部分节点能够正常通信)、三态(成功、失败、超时)、分布式事务(ACID:原子性、一致性、隔离性、持久性)中心化和去中心化:冷备、热备分布式架构里面,很多的架构思想采用:当集群发生故障的时候,集群中的人群会自动“选举”出一个新的领导。最经典的是:zookeeper/etcd1. CAP/BASE 理论CAP理论

2021-03-02 20:22:00 205

原创 4. Spring bean 标签详解

Spring bean 标签详解1. 标签约束<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans

2021-03-02 20:15:11 546

原创 3. Spring Aop 标签详解

Spring Aop 标签详解<aop:config> <aop:aspect id="beforeAdviceBindingTests" ref="testAspect"> <aop:before method="oneIntArg" pointcut="execution(* setAge(int)) and args(age)"/> <aop:before method="on

2021-03-02 20:12:05 481 1

原创 2. Spring源码解析之IOC(下篇)

2. Spring源码解析之IOC(下篇)2.3 IOC 容器的依赖注入2.3.1 依赖注入发生时间2.3.2 getBean 依赖注入2.3.2.1 参数为name2.3.2.2 参数为requiredType2.4 IOC 容器的高级特性2.4.1 lazy-init 属性实现预实例化2.4.1.1 refresh 函数载入 Bean 定义2.4.1.2 finishBeanFactoryInitialization 处理预实例化2.4.1.3 DefaultListableBeanFactory 对

2021-03-02 15:05:50 138

原创 1. Spring源码解析之IOC(上篇)

1. Spring 源码解析之IOC1. Spring 概述1.1 架构设计1.2 各个模块依赖关系2. 依赖注入和控制反转解析2.1 Spring IOC 体系结构2.1.1 BeanFactory2.1.2 BeanDefinition2.1.3 XmlBeanDefinitionReader2.2 IOC 容器初始化2.2.1 XmlBeanFactory2.2.2 ApplicationContext2.2.2.1 设置资源加载器和资源定位2.2.2.2 refresh 函数载入 Bean 定义2.

2021-03-02 14:46:36 197

原创 Dubbo 实战经验总结

Dubbo 实战经验总结1. Dubbo Stub 本地根存2. Dubbo Mock原理3. Dubbo GenericService作用1. Dubbo Stub 本地根存dubbo的本地存根的原理是 :远程服务后,客户端通常只剩下接口,而实现全在服务器端,但提供方有些时候想在客户端也执行部分逻辑,那么就在服务消费者这一端提供了一个Stub类,然后当消费者调用provider方提供的dubbo服务时,客户端生成 Proxy 实例,这个Proxy实例就是我们正常调用dubbo远程服务要生成的代理实例,

2021-03-02 14:17:32 308

原创 4. Dubbo源码解析之服务调用过程

4. Dubbo源码解析之服务调用过程4.1 消费者发送请求4.1.1 Invoker 准备工作(降级,列举,负载均衡策略,异步幂等)4.1.2 负载均衡选择提供者4.1.3 DubboInvoker4.1.4 客户端发送请求4.2 提供者处理请求4.2.1 线程池相关4.2.2 获取invoker4.2.3 过滤器调用链4.2.4 获取结果4.2.5 发送结果到消费者4.3 消费者解析结果4.3.1 结果接收和处理4.3.2 传递结果到用户线程4.3.2.1 DefultFuture.get()4.3.2

2021-03-02 14:04:48 207

原创 3. Dubbo源码解析之服务引用过程

3. Dubbo源码解析之服务引用过程3.1 Dubbo自定义xml解析器3.2 ReferenceBean 装配与调用题外话:FactoryBean和FactoryBean生成的Bean的辨析3.3 服务引用过程3.3.1 处理配置3.3.2 引用服务3.3.2.1 创建Invoker3.3.2.2 创建代理服务引用过程主要包括。。。。3.1 Dubbo自定义xml解析器服务暴露过程中已经讲过,此处略过。3.2 ReferenceBean 装配与调用完成了对xml标签的解析后,Spring会通过

2021-03-02 13:54:14 252

原创 2. Dubbo源码解析之服务暴露过程

2. Dubbo源码解析之服务暴露过程2.1 Dubbo自定义xml解析器2.1.1 DubboNamespaceHandler 添加过程2.1.2 DubboBeanDefinitionParser 添加过程2.1.3 DubboBeanDefinitionParser 解析过程2.2 装配 ServiceBean2.2.1 初始化静态成员2.2.2 构造函数初始化2.2.3 ApplicationContext 与 afterPropertiesSet 初始化2.2.4 Spring上下文刷新时事件监听

2021-03-02 13:34:52 250

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除