03 2023 档案

摘要:七Dubbo各模块的层次核心接口及组件类--6Proxy--RPC模块 7.6 Proxy(RPC模块) 服务代理层:实现服务接口的透明代理,生成服务的客户端stub和服务器端skeleton。 | 模块 | Dubbo层 | 各层核心接口 | | : : | : : | : : | | | Ser 阅读全文
posted @ 2023-03-13 14:56 LeasonXue 阅读(74) 评论(0) 推荐(0) 编辑
摘要:七Dubbo各模块的层次核心接口及组件类--5Registry 7.5 Registry(Registry模块) registry层,封装服务地址URL的注册与发现,以服务URL为中心,扩展接口为RegistryFactory,Registry,RegistryService。 | 模块 | Dub 阅读全文
posted @ 2023-03-13 14:55 LeasonXue 阅读(41) 评论(0) 推荐(0) 编辑
摘要:七Dubbo各模块的层次核心接口及组件类--4Cluster层-4.2LoadBalance(待完善) 7.4.4 LoadBalance 7.4.4.1 RandomLoadBalance 基于权重随机算法的 RandomLoadBalance 7.4.4.2 RoundRobinLoadBala 阅读全文
posted @ 2023-03-13 14:55 LeasonXue 阅读(36) 评论(0) 推荐(0) 编辑
摘要:七Dubbo各模块的层次核心接口及组件类--4Cluster层--Cluster-Directory-Router 7.4 Cluster(Cluster模块) 路由层:封装多个提供者的路由及负载均衡,并桥接注册中心,以invoker为中心。 | 模块 | Dubbo层 | 各层核心接口 | | : 阅读全文
posted @ 2023-03-13 14:54 LeasonXue 阅读(32) 评论(0) 推荐(0) 编辑
摘要:七Dubbo各模块的层次核心接口及组件类--3Protocol-RPC模块 7.3 Protocol(RPC模块) 远程调用层:封装rpc调用,以invocation和result为中心,扩展接口为protocol、invoker和exporter。 | 模块 | Dubbo层 | 各层核心接口 | 阅读全文
posted @ 2023-03-13 14:54 LeasonXue 阅读(154) 评论(0) 推荐(0) 编辑
摘要:七Dubbo各模块的层次核心接口及组件类--2Exchange--Remoting模块 7.2 Exchange(remoting模块) 信息交换层:封装请求/响应模式,同步转异步,以request、response为中心,Exchanger 、ExchangeChannel ExchangeCli 阅读全文
posted @ 2023-03-13 14:53 LeasonXue 阅读(63) 评论(0) 推荐(0) 编辑
摘要:七Dubbo各模块的层次核心接口及组件类--1Transport--Remoting模块 | 模块 | Dubbo层 | 各层核心接口 | | : : | : : | : : | | | Service | ServiceBean ReferanceBean | | dubbo-config | C 阅读全文
posted @ 2023-03-13 14:52 LeasonXue 阅读(85) 评论(0) 推荐(0) 编辑
摘要:六Dubbo核心技术归纳--3Dubbo中Invoker的作用及转换 6.3 dubbo的核心模型Invoker Dubbo中invoker是provider和consumer实现RPC调用的关键,invoker的构建过程,是Dubbo服务的init初始化过程;invoker.invoke的调用是D 阅读全文
posted @ 2023-03-13 14:52 LeasonXue 阅读(1192) 评论(0) 推荐(0) 编辑
摘要:五Dubbo服务引用源码分析--4网络处理-4.3consumer端接收响应 5.3.4 consumer端接收响应 然后,consumer端返回到DubboInvoker.doInvoke过程中 DubboInvoker @Override protected Result doInvoke(fi 阅读全文
posted @ 2023-03-13 14:52 LeasonXue 阅读(59) 评论(0) 推荐(0) 编辑
摘要:五Dubbo服务引用源码分析--4网络处理-4.2provider端处理请求 5.3.3 provider端处理请求(请求消息处理) 在前述章节中,知道在NettyServer初始化过程中,向dubbo的底层netty通信框架的pipeline上添加了编解码handler、NettyHandler的 阅读全文
posted @ 2023-03-13 14:51 LeasonXue 阅读(129) 评论(0) 推荐(0) 编辑
摘要:五Dubbo服务引用源码分析--4网络处理-4.1consumer端发送请求 5.3 服务请求网络处理(connect、received) 本章节中,主要分析的consumer< >provider两端底层通信过程中,关于provider端对于connect连接消息处理、consumer端发送请求、 阅读全文
posted @ 2023-03-13 14:50 LeasonXue 阅读(33) 评论(0) 推荐(0) 编辑
摘要:五Dubbo服务引用源码分析--3服务引用-下 紧接上文,对服务引用源码分析: TAG 1.1.2 FailOverClusterInvoker.doInvoke()--cluster中调用服务 返回AbstractClusterInvoker.invoke() 上面挑选出了可以正常执行的invok 阅读全文
posted @ 2023-03-13 14:50 LeasonXue 阅读(30) 评论(0) 推荐(0) 编辑
摘要:五Dubbo服务引用源码分析--3服务引用-上 5.2 服务引用 在服务引用的部分,同样首先把握整体架构,有个大致流程和方向的把握。在Dubbo官方使用者手册中,对集群容错的架构设计,可以通过其对服务引用的框架结构进行参考: https://dubbo.gitbooks.io/dubbo-user- 阅读全文
posted @ 2023-03-13 14:50 LeasonXue 阅读(37) 评论(0) 推荐(0) 编辑
摘要:五Dubbo服务引用源码分析--2创建远程调用的代理-2.5开启consumer端NettyClient /**…………NettyClient--开启consumer端………… */ 此时url=dubbo://192.168.0.100:20880/com.alibaba.dubbo.demo.D 阅读全文
posted @ 2023-03-13 14:47 LeasonXue 阅读(29) 评论(0) 推荐(0) 编辑
摘要:五Dubbo服务引用源码分析--2创建远程调用的代理-2.4DubboProtocol.refer 继续上篇文章内容,向下分析DubboProtocol.refer的源码: /**…………DubboProtocol.refer………………*/ INV InvokerDelegate(protocol 阅读全文
posted @ 2023-03-13 14:47 LeasonXue 阅读(32) 评论(0) 推荐(0) 编辑
摘要:五Dubbo服务引用源码分析--2创建远程调用的代理-2.3zookeeperRegistry.subscribe订阅 /**…………………订阅-通知…………………… */ //REFER2.2.3.1 zookeeperRegistry.subscribe-订阅SUB listener参数是reg 阅读全文
posted @ 2023-03-13 14:46 LeasonXue 阅读(116) 评论(0) 推荐(0) 编辑
摘要:五Dubbo服务引用源码分析--2创建远程调用的代理-2.2RegistryProtocol.refer /**…………RegistryProtocol.refer………………*/ REFER1 qos/filter/listener.refer QosProtocolWrapper @Overri 阅读全文
posted @ 2023-03-13 14:46 LeasonXue 阅读(85) 评论(0) 推荐(0) 编辑
摘要:五Dubbo服务引用源码分析--2创建远程调用的代理-2.1ReferenceBean.getObject 5.1 创建远程调用的代理--getBean(DemoService.class)->getObject 在5.0消费端启动部分,已经分析了代理对象创建的时机: getBean(DemoSer 阅读全文
posted @ 2023-03-13 14:45 LeasonXue 阅读(35) 评论(0) 推荐(0) 编辑
摘要:五Dubbo服务引用源码分析--1消费端启动 在消费端consumer引用服务进行分析时,首先看Dubbo的开发者手册,把握分析的切入点,并全局把握大致的流程。 1 服务消费的过程中,首先是引用配置的初始化--即ReferenceConfig初始化,需要加载consumer.xml配置信息,将ref 阅读全文
posted @ 2023-03-13 14:45 LeasonXue 阅读(141) 评论(0) 推荐(0) 编辑
摘要:四Dubbo中Zookeeper注册中心 4.1 zk连接 4.2 zk创建节点 4.3 zk订阅 4.4 ZKClient使用 4.5 注册和订阅、通知解析--todo?? 阅读全文
posted @ 2023-03-13 14:44 LeasonXue 阅读(17) 评论(0) 推荐(0) 编辑
摘要:三Dubbo服务暴露源码分析--3远程暴露-下 //PTC2.2.2 DubboProtocol.serverMap.put(key, createServer(url)) DubboProtocol private final Map<String, ExchangeServer> serverM 阅读全文
posted @ 2023-03-13 14:43 LeasonXue 阅读(66) 评论(0) 推荐(0) 编辑
摘要:三Dubbo服务暴露源码分析--3远程暴露-中 紧接上文,分析PTC2.2.1.1 Exchangers.bind(url, requestHandler)-BIND的绑定操作: BIND1 ExchangeHandlerAdapter--处理client请求invoker.invoke(invoc 阅读全文
posted @ 2023-03-13 14:42 LeasonXue 阅读(72) 评论(0) 推荐(0) 编辑
摘要:三Dubbo服务暴露源码分析--3远程暴露-上 3.2 远程暴露 在Dubbo开发者手册中,给出了服务调用的流程图如上。其中,圈住部分为provider端的远程服务暴露部分的主流程。后续的分析,可以对照流程图,把握执行方向。 ServiceConfig private void doExportUr 阅读全文
posted @ 2023-03-13 14:41 LeasonXue 阅读(47) 评论(0) 推荐(0) 编辑
摘要:三Dubbo服务暴露源码分析--2本地暴露 3.1 本地暴露(exportLocal) ServiceConfig private void exportLocal(URL url) { //url中protocol如果不为injvm,重新设置URL为injvm://的协议头 if (!Consta 阅读全文
posted @ 2023-03-13 14:41 LeasonXue 阅读(89) 评论(0) 推荐(0) 编辑
摘要:三Dubbo服务暴露源码分析--1服务端启动 分析provider端暴露原理,首先从官方文档找到总体的逻辑,在把握全局逻辑后,找到源码研究切入点,并顺藤摸瓜,后面的细节也就呼之欲出。 上述过程可知,provider端服务暴露的起点,是serviceConfig类。 服务暴露逻辑: 1 service 阅读全文
posted @ 2023-03-13 14:40 LeasonXue 阅读(110) 评论(0) 推荐(0) 编辑
摘要:二Dubbo设计基础--6设计模式 2.6 设计模式 2.3.1 责任链模式 在[wrapper机制](#2.2 Wrapper机制)中使用到该模式。 1 责任链原型 (1)抽象出接口AbstractHandler 有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递, 阅读全文
posted @ 2023-03-13 14:38 LeasonXue 阅读(90) 评论(0) 推荐(0) 编辑
摘要:二Dubbo设计基础--5Dubbo与Spring的融合 2.5.1 标签解析原理 spring使用过程会遇到各种标签元素进行解析,该功能与spring核心组件有关。而核心组件中springAOP、springBean、springContext都包含spring.handlers文件,文件内容表明 阅读全文
posted @ 2023-03-13 14:37 LeasonXue 阅读(88) 评论(0) 推荐(0) 编辑
摘要:二Dubbo设计基础--4Dubbo-URL 2.4.1 Dubbo中的URL 一个标准的 URL 格式至多可以包含如下的几个部分 protocol://username:password@host:port/path?key=value&key=value 在 dubbo 中,也使用了类似的 UR 阅读全文
posted @ 2023-03-13 14:36 LeasonXue 阅读(116) 评论(0) 推荐(0) 编辑
摘要:二Dubbo设计基础--3Mock机制和Stub机制 2.3.1 Mock机制 (https://maimai.cn/article/detail?fid=1414002536&efid=1ClnCEtvvjXp5j1knp2Trw) Cluster是一个通用代理类,会根据URL中的cluster参 阅读全文
posted @ 2023-03-13 14:35 LeasonXue 阅读(292) 评论(0) 推荐(0) 编辑
摘要:二Dubbo设计基础--2Wrapper 2.2 Dubbo中Wrapper 注意,区别Dubbo中Wrapper.getWrapper和wrapper机制。前者用在provider端构造invoker时,javassist字节码方式,构建字节码——>>class对象——>>反射创建实例,构造目标服 阅读全文
posted @ 2023-03-13 14:35 LeasonXue 阅读(60) 评论(0) 推荐(0) 编辑
摘要:二Dubbo设计基础--1扩展点加载 2.1 扩展点加载 2.1.1 java的SPI SPI是Service Provider Interfaces的简称。根据Java的SPI规范,我们可以定义一个服务接口,具体的实现由对应的实现者去提供,即Service Provider(服务提供者)。然后在使 阅读全文
posted @ 2023-03-13 14:34 LeasonXue 阅读(54) 评论(0) 推荐(0) 编辑
摘要:一Dubbo架构设计 1.1结构设计 官网用户手册的介绍如下: https://dubbo.gitbooks.io/dubbo-user-book/content/demos/fault-tolerent-strategy.html 上述过程是服务调用call过程,consumer端invoker. 阅读全文
posted @ 2023-03-13 14:33 LeasonXue 阅读(75) 评论(0) 推荐(0) 编辑
摘要:五Netty源码分析--4Bootstrap.connect client端与server端bootstrap配置和启动流程大致相同,server端需要bind端口并监听,来对外提供连接服务;而client端,执行b.connect连接server端。 4.1 Bootstrap.connect() 阅读全文
posted @ 2023-03-10 17:27 LeasonXue 阅读(291) 评论(0) 推荐(0) 编辑
摘要:五Netty源码分析--3Bootstrap.bind--下 TAG1.3.1.1.3 register0 AbstractChannel private void register0(ChannelPromise promise) { try { // 检查channel是否是open状态(因为在 阅读全文
posted @ 2023-03-10 17:27 LeasonXue 阅读(31) 评论(0) 推荐(0) 编辑
摘要:五Netty源码分析--3Bootstrap.bind--中 TAG1.2.2 ServerBootstrapAcceptor(连接处理器--server接受client端连接--子channel创建) 该处过程是为serversocketchannel.pipeline添加一个初始化的handle 阅读全文
posted @ 2023-03-10 17:26 LeasonXue 阅读(61) 评论(0) 推荐(0) 编辑
摘要:五Netty源码分析--3Bootstrap.bind--上 第三节 ServerBootstrap.bind()源码解析 3.1 ServerBootstrap配置方法 首先从ServerBootstrap的配置方法跟入,看如何实现 TAG0.1 parent属性设置 group传入,分别设置pa 阅读全文
posted @ 2023-03-10 17:26 LeasonXue 阅读(112) 评论(0) 推荐(0) 编辑
摘要:五Netty源码分析--2ServerBootstrap分析 第二节 ServerBootstrap分析 使用NIO原生类库开发异步服务器时,需要使用多路复用器selector、serverSocketChannel、SocketChannel、selectionKey等,相比于传统BIO开发,NI 阅读全文
posted @ 2023-03-10 17:25 LeasonXue 阅读(30) 评论(0) 推荐(0) 编辑
摘要:五Netty源码分析--1NioEventLoopGroup初始化分析 以NettyRPC项目为例,源码分析: public void run() { //netty的reactor线程组 EventLoopGroup bossGroup = new NioEventLoopGroup(); Eve 阅读全文
posted @ 2023-03-10 17:25 LeasonXue 阅读(33) 评论(0) 推荐(0) 编辑
摘要:四Netty组件类--7EventLoop和EventLoopGroup 18.2 NioEventLoopGroup 体系结构图如下: NioEventLoopGroup也是Executor,且是线程池的Executor,它的execute()方法在父类AbstractEventExecutorG 阅读全文
posted @ 2023-03-10 17:24 LeasonXue 阅读(110) 评论(0) 推荐(0) 编辑
摘要:四Netty组件类--6Netty的线程模型 18.1 Netty的线程模型 18.1.0 Netty中IO线程的工作流程 IO线程处理的关键点: 每一IO线程在执行上述操作时是串行执行的,即注册在一个 Selector(事件选择器)中的所有通道,**同一时间只有一个通道的事件被处理。**这也是为什 阅读全文
posted @ 2023-03-10 17:24 LeasonXue 阅读(80) 评论(0) 推荐(0) 编辑
摘要:四Netty组件类--5ChannelHandlerContext 17.5 ChannelHandlerContext 17.5.1 ChannelHandlerMask 对事件的inbound和outbound定义 final class ChannelHandlerMask { private 阅读全文
posted @ 2023-03-10 17:23 LeasonXue 阅读(132) 评论(0) 推荐(0) 编辑
摘要:四Netty组件类--4ChannelHandler 17.3 ChannelHandler功能说明 17.3.1 ChannelHandler接口功能 1 channelHandler: channelHandler实际为inbound和outbound的拦截器(拦截过滤器原理) handlerA 阅读全文
posted @ 2023-03-10 17:23 LeasonXue 阅读(184) 评论(0) 推荐(0) 编辑
摘要:四Netty组件类--3ChannelPipeline 17.1 ChannelPipeline功能说明 channePipeline是容器,可以动态编排职责链(职责链中node节点是ChannelHandler包装成的ChannelContextHandler),职责链可以有选择的监听、处理自己关 阅读全文
posted @ 2023-03-10 17:22 LeasonXue 阅读(40) 评论(0) 推荐(0) 编辑
摘要:四Netty组件类--2Selector多路选择器 16.4 Selector源码与机制 选择器selector是NIO的关键,是实现多路复用的核心类。Nio是由事件驱动的,selectableChannel.register方法,将当前channel注册到指定selector上,通过询问操作系统, 阅读全文
posted @ 2023-03-10 17:22 LeasonXue 阅读(109) 评论(0) 推荐(0) 编辑
摘要:四Netty组件类--1Channel通道 16.1 Channel功能说明 Netty中channel是socket连接的抽象,为用户提供关于底层socket状态(连接还是断开),以及对socket的读写等操作。 父子channel: channel有父子channel的概念。server端负责链 阅读全文
posted @ 2023-03-10 17:21 LeasonXue 阅读(143) 评论(0) 推荐(0) 编辑
摘要:三Netty--Netty入门应用 Netty的开发过程,需要注意对比和NIO开发流程的对应关系。 仍旧以TimeServer为例,简单介绍Netty开发流程。 3.2 Server端开发 3.2.1 TimeServer代码 public class TimeServer { //server端b 阅读全文
posted @ 2023-03-10 17:21 LeasonXue 阅读(22) 评论(0) 推荐(0) 编辑
摘要:二Netty--NIO入门 第二章 NIO入门 网络编程基本模型: ​ server和client模型,两个进程相互通信。server端提供位置(ip+port),client端通过connect向服务端监听的地址(ip+port)发起连接请求。通过三次握手,建立连接,然后通过socket进行通信。 阅读全文
posted @ 2023-03-10 17:20 LeasonXue 阅读(34) 评论(0) 推荐(0) 编辑
摘要:一Netty框架--Java的I/O演进 第一章 Java的I/O演进之路 1.1 I/O基础入门 Java1.4早期版本,对io支持不完善,存在如下问题: **buffer:**没有数据缓冲区,io性能存在问题 **channel:**没有channel概念,只有输入InputStream和输出流 阅读全文
posted @ 2023-03-10 17:19 LeasonXue 阅读(22) 评论(0) 推荐(0) 编辑
摘要:六Spring事务源码分析--9事务方法执行流程 6.5.3 事务方法执行流程 在AOP章节的调用逻辑中,执行业务方法methodA,会被JdkDynamicAopProxy.invoke拦截执行,然后获取拦截器链,执行链式调用invocation.proceed。 当执行到事务拦截器Transac 阅读全文
posted @ 2023-03-10 17:18 LeasonXue 阅读(139) 评论(0) 推荐(0) 编辑
摘要:六Spring事务源码分析--8创建事务代理 6.5.2 创建事务代理 在spring初始化过程中,会进行相关的初始化配置,包括构建拦截器链。 spring事务时基于AOP的around增强实现,因此初始化过程,同AOP有大致相同的流程。 Spring事务初始化流程: TAG0.1 Abstract 阅读全文
posted @ 2023-03-10 17:18 LeasonXue 阅读(145) 评论(0) 推荐(0) 编辑
摘要:六Spring事务源码分析--7事务配置 spring事务有声明式和非声明式事务,这里以声明式注解事务为例,分析源码实现。 6.5.1 事务配置 用@EnableTransactionManagement开启和配置事务。 @Target(ElementType.TYPE) @Retention(Re 阅读全文
posted @ 2023-03-10 17:18 LeasonXue 阅读(47) 评论(0) 推荐(0) 编辑
摘要:六Spring事务--6Spring事务原理概览 6.4 spring事务原理概览 6.4.1 spring事务机制 spring事务的实现是基于数据库事务和AOP实现的;spring事务的隔离级别由数据库实现;spring事务的传播行为由spring实现,传播行为,定义了事务与子事务获取连接、事务 阅读全文
posted @ 2023-03-10 17:18 LeasonXue 阅读(37) 评论(0) 推荐(0) 编辑
摘要:六Spring事务--5声明式事务的核心类 6.3 实现声明式事务注解的核心类 事务的配置核心类,主要是实现@EnableTransactionManagement(@EnableXXXXXX等功能)核心的类。这些类用来注册相关的bean。 6.3.1 @EnableTransactionManag 阅读全文
posted @ 2023-03-10 17:17 LeasonXue 阅读(66) 评论(0) 推荐(0) 编辑
摘要:六Spring事务--4事务同步管理器 6.2.4 事务同步管理器 6.2.4.1 TransactionSynchronizationManager--(conn) 事务同步管理器,管理每个线程的资源(对于事务,DataSource创建的连接对象connection等称作事务的资源)和事务同步(T 阅读全文
posted @ 2023-03-10 17:17 LeasonXue 阅读(948) 评论(0) 推荐(0) 编辑
摘要:六Spring事务--3事务组件类 6.2.3 事务组件类 6.2.3.1 AbstractBeanFactoryPointcutAdvisor--(advisor) AbstractBeanFactoryPointcutAdvisor作为spring事务中的advisor类,主要包裹了advice 阅读全文
posted @ 2023-03-10 17:17 LeasonXue 阅读(248) 评论(0) 推荐(0) 编辑
摘要:六Spring事务--2事务抽象类 6.2 Spring事务重要组件类 6.2.1 事务抽象类 事务抽象类之间的构建关系,最终需要获得transactionInfo对象,该对象位于TransactionInterceptor的父类TransactionAspectSupport的内部类中,其包装了事 阅读全文
posted @ 2023-03-10 17:17 LeasonXue 阅读(268) 评论(0) 推荐(0) 编辑
摘要:六Spring事务--1事务的概念及使用 6.1 相关概念 spring事务涉及的知识点: (1)ACID Spring 支持编程式和声明式事务管理,在不需要应用程序服务器的情况下实现 (2)局部事务、全局事务 局部事务是特定于一个单一的事务资源,如一个 JDBC 连接,而全局事务可以跨多个事务资源 阅读全文
posted @ 2023-03-10 17:17 LeasonXue 阅读(216) 评论(0) 推荐(0) 编辑
摘要:五Spring-AOP--6AOP调用逻辑源码分析 5.6.2 AOP调用逻辑 当被代理类的被AOP增强的方法执行时,会调用invoke。 以JdkDynamicAopProxy为例分析,其本身是InvocationHandler,方法调用的处理器,因此代理方法调用时,会调用invoke方法,实现拦 阅读全文
posted @ 2023-03-10 17:16 LeasonXue 阅读(82) 评论(0) 推荐(0) 编辑
摘要:五Spring-AOP--5AOP初始化源码分析 5.6 AOP源码分析 5.6.1 AOP初始化 AOP入口位置,在初始化方法中: TAG0.1 AbstractAutowireCapableBeanFactory.initializeBean() protected Object initial 阅读全文
posted @ 2023-03-10 17:16 LeasonXue 阅读(56) 评论(0) 推荐(0) 编辑
摘要:五Spring-AOP--4AOP拦截器链构建 5.5.5.1 AdvisorChainFactory 通过该类获取作用在beanclass和method上的拦截器链chain。 public interface AdvisorChainFactory { //确定给定的advisorChain的c 阅读全文
posted @ 2023-03-10 17:16 LeasonXue 阅读(134) 评论(0) 推荐(0) 编辑
摘要:五Spring-AOP--3AOP动态代理涉及的类 5.5 Spring AOP动态代理涉及的类 5.5.1 ProxyConfig 用于创建代理的配置的父类,以确保所有代理创建者具有一致的属性 public class ProxyConfig implements Serializable { / 阅读全文
posted @ 2023-03-10 17:15 LeasonXue 阅读(285) 评论(0) 推荐(0) 编辑
摘要:五Spring-AOP--2AOP重要组件类 5.4 AOP重要组件类 5.4.1 Advisor(切面) 把pointcut和advice连接起来(可由Spring去完成,我们都交给容器管理就行,当然,你也可以手动完成)Spring的Advisor是Pointcut和Advice的配置器,它是将A 阅读全文
posted @ 2023-03-10 17:15 LeasonXue 阅读(125) 评论(0) 推荐(0) 编辑
摘要:五Spring-AOP--1基础概念 AOP:面向方面编程。面向方面的编程需要把程序逻辑分解成不同的部分称为所谓的关注点。跨一个应用程序的多个点的功能被称为**横切关注点(把公共逻辑抽离),这些横切关注点在概念上独立于应用程序的业务逻辑。有各种各样的常见的很好的方面的例子,如日志记录、审计、声明式事 阅读全文
posted @ 2023-03-10 17:10 LeasonXue 阅读(43) 评论(0) 推荐(0) 编辑
摘要:四Spring框架-循环依赖及缓存的解决 4.1 spring解决循环依赖以及缓存问题 spring创建和实例化bean的过程的环节是比较多并且包装比较深的,那么如果每次getBean时都需要走这么多环节的话,那么不但会产生很多内存对象和计算逻辑,而且更重要的是无法解决对象在一些场景中的依赖问题,尤 阅读全文
posted @ 2023-03-10 17:08 LeasonXue 阅读(116) 评论(0) 推荐(0) 编辑
摘要:三Spring-ioc容器--4依赖注入及初始化源码分析 属性赋值(依赖注入) DCB4.2 autowireByName/Type 这里是xml配置里的自动装配autowiring。配置bean后,对类内属性byType或者byName等。 /** xml配置的bean的autowiring自动装 阅读全文
posted @ 2023-03-10 17:08 LeasonXue 阅读(105) 评论(0) 推荐(0) 编辑
摘要:三Spring-ioc容器--3Bean实例化源码分析 3.3.2 Bean实例化过程 在整个bean实例化的过程中,spring主要干了以下几件大事: 1.bean的实例化过程算法;2.IOC依赖注入;3.注解支撑;4.系列BeanPostProcessors的接口执行;5.AOP动态代理构建; 阅读全文
posted @ 2023-03-10 17:08 LeasonXue 阅读(61) 评论(0) 推荐(0) 编辑
摘要:三Spring-ioc容器--2解析、扫描、注册源码分析 3.3.1.2.1 默认bean解析 DefaultBeanDefinitionDocumentReader.parseDefaultElement(Element ele, BeanDefinitionParserDelegate dele 阅读全文
posted @ 2023-03-10 17:07 LeasonXue 阅读(58) 评论(0) 推荐(0) 编辑
摘要:三Spring-ioc容器--1容器加载源码分析 三Spring-ioc容器--1容器加载源码分析 3.1 web与非web项目ioc容器创建 3.1.1 spring容器的概念梳理 容器:是spring框架实现功能的核心,负责对象的创建和管理,负责对象的整个生命周期的管理——创建、装配、销毁。 I 阅读全文
posted @ 2023-03-10 17:07 LeasonXue 阅读(90) 评论(0) 推荐(0) 编辑
摘要:二Spring框架--3容器类和aware接口 2.1 BeanFactory与FactoryBean (1)beanfactory 是接口,提供了IOC容器最基本的形式,给具体IOC容器的实现提供了规范。是一个工厂类,负责生产、管理bean依赖的工厂类(实例化、定位、配置应用程序中的对象及建立对象 阅读全文
posted @ 2023-03-10 17:06 LeasonXue 阅读(188) 评论(0) 推荐(0) 编辑
摘要:二Spring框架--2spring.handlers解析标签的原理 2.17 NamespaceHandlerResolver public interface NamespaceHandlerResolver { /** * Resolve the namespace URI and retur 阅读全文
posted @ 2023-03-10 17:06 LeasonXue 阅读(726) 评论(0) 推荐(0) 编辑
摘要:二Spring框架--1重要组件类 二 spring组件类 2.0 spring体系结构 spring是模块化的,提供了20个模块,根据程序要求使用,允许选择适用的模块引入项目。 2.0.1 核心容器-core container 1)spring-core:提供了框架的基本组成部分,包括IOC和依 阅读全文
posted @ 2023-03-09 17:09 LeasonXue 阅读(75) 评论(0) 推荐(0) 编辑
摘要:一Spring框架基础--3动态代理 1.4 代理模式 1.4.1 Java代码执行流程 1.4.1.1 class文件 Java编译器编译好Java文件后,产生.class文件在磁盘,该文件是二进制文件,内容只有jvm虚拟机能够识别的机器码。jvm虚拟机读取字节码.class文件,取出二进制数据, 阅读全文
posted @ 2023-03-09 14:26 LeasonXue 阅读(112) 评论(0) 推荐(0) 编辑
摘要:一Spring框架基础--2设计模式 1.3 spring用到的设计模式 1.3.1 责任链模式 有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。但是发出者并不清楚到底最终那个对象会处理该请求,所以,责任链模式可以实现,在隐瞒客户端的情 阅读全文
posted @ 2023-03-09 14:25 LeasonXue 阅读(52) 评论(0) 推荐(0) 编辑
摘要:一Spring框架基础--1对象类型 1.1 spring内对象类型 POJO(plain ordinary java object简单java对象)的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。 POJO对象有无参构造函数,每个字段都有getter和s 阅读全文
posted @ 2023-03-09 14:17 LeasonXue 阅读(62) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示