
框架专题
文章平均质量分 96
分析spring、mybatis等各大框架
Life journey
技术没有边界
展开
-
dubbo中的SPI机制的使用和源码分析
dubbo中的SPI机制的使用和源码分析SPISPI机制概述JDK中的SPI机制dubbo SPIdubbo spi架构图dubbo aopdubbo的依赖注入dubbo中@SPIDubbo SPI源码分析ExtensionLoadergetExtensionLoader(Class class)getExtension(String name)Dubbo中的IOCcreateAdaptiveExtensionClassSPI为什么要分析 dubbo的SPI机制,我只能说dubbo的SPI机制是dubb原创 2021-02-27 22:46:22 · 473 阅读 · 0 评论 -
dubbo与spring整合之@Service、@Reference注解处理过程
dubbo与spring整合之@Service、@Reference注解处理过程dubbo整合spring的必要性整体的架构流程@EnableDubboDubboConfigConfigurationRegistrarDubboComponentScanRegistrarReferenceAnnotationBeanPostProcessordubbo整合spring的必要性dubbo是一款高性能的服务框架,但是如果是单独使用的话,会比较麻烦,而且很多注册中心的代码都需要自己写,因为还需要一套自己的IO原创 2021-02-27 22:21:13 · 6723 阅读 · 0 评论 -
Netty架构探索之NIO架构演变
Netty架构探索之NIO架构演变Netty初探Netty的使用场景Netty通讯示例NIO架构演变传统的BIO模型基本的 Reactor模型多线程的Reactor模型主从Reactor模型Netty的线程模型Netty模块组件ByteBuf详解Netty实战聊天室系统Netty初探NIO 的类库和 API 繁杂, 使用麻烦: 需要熟练掌握Selector、 ServerSocketChannel、 SocketChannel、 ByteBuffer等。 开发工作量和难度都非常大: 例如客户端面临断线重原创 2021-01-26 16:36:51 · 309 阅读 · 0 评论 -
zookeeper简单应用&分布式锁实现
zookeeper简单应用&分布式锁实现Zookeeper的作用原理特点下载安装安装启动应用节点类型基本的CRUD权限管理ACL配置文件详解zookeeper的客户端原生客户端的使用Curatorzk简单的分布式锁实现Zookeeper的作用ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。Zoo原创 2021-01-12 17:40:59 · 350 阅读 · 0 评论 -
3.[springMvc]spring mvc 父子容器
spring mvc 父子容器spring MVC的实现方式spring 父子容器父容器创建过程initWebApplicationContextcreateWebApplicationContextconfigureAndRefreshWebApplicationContext示例子容器创建过程HttpServletBean.initFrameworkServlet.initServletBeaninitWebApplicationContextcreateWebApplicationContextonR原创 2020-12-21 11:33:35 · 366 阅读 · 0 评论 -
2[springMvc]模拟Spring MVC实现web框架
模拟Spring MVC实现web框架TomcataddWeAppTomcat启动模拟SpringMvc编写web框架handermapping:AdapterDispatcherServletcontroller来测试:SPI机制Tomcat前一篇笔记中介绍了Servlet以及Tomcat,servlet是一个行业的标准,tomcat在sevlet的标准上实现了它的标准,在tomcat中就是一堆的容器,其中servlet容器就是context容器,我们看下tomcat的sever.xml配置文件就可以原创 2020-12-21 10:39:21 · 232 阅读 · 0 评论 -
1.[springMvc]Servlet的基础知识
Servlet的基础知识servlet是啥Servlet运行流程示例ServletGenericServletHttpServletServletContextFilterservlet映射器servlet是啥Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。J原创 2020-12-21 10:24:10 · 615 阅读 · 0 评论 -
3.[mybatis]的查询源码分析(执行流程、缓存、整合spring要点)
目录1.装饰器模式2.sqlSession的创建(open)2.1.newExecutor3.selectOne分析3.1.二级缓存3.2.一级缓存4.数据库查询核心分析(queryFromDatabase)4.1.SimpleExecutor.doQuery4.1.1.prepareStatement4.1.2.预处理查询数据库4.1.3.封装数据到对象5.mybatis涉及的设计模式6.mybatis整合spring6.1.SqlSessi..原创 2020-12-20 20:11:12 · 283 阅读 · 0 评论 -
1.[mybatis]架构的整体流程
目录1.ORM框架myBatis这个ORM框架在这些年中,逐渐的进入大家的视野,也是现在企业开发框架中用的比较多的一种ORM框架,其中hibernate也是一种ORM框架,但是个人觉得hibernate可能太重了,适合非常大的项目使用,而且是对hibernate设计理念以及原理都非常清楚的团队来使用;MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映原创 2020-12-20 18:59:25 · 410 阅读 · 2 评论 -
2.[mybatis]全局配置执行流程源码分析
mybatis全局配置执行流程源码分析轻量级的框架mybatis全局配置文件解析parseConfigurationsettings配置为解析别名解析别名使用方式一别名使用方式二插件解析环境配置的解析EnvironmentMapper配置解析bindMapperForNamespace轻量级的框架mybatismybatis在日常的开发中,使用的算是比较多的,它的底层也还是采用了JDBC的实现原理,但是总要的是它是一个ORM框架,就是对象关系数据映射框架,你可以简单理解就是你的sql语句写在配置文件中,原创 2020-12-20 19:42:27 · 177 阅读 · 0 评论 -
Spring 事务处理机制详解及源码分析
Spring 事务处理机制详解及源码分析事务做了那些事儿spring事务传播特性当前不存在新的事务当前存在一个新的事务(事务需要传播)举个例子源码分析事务同步管理器事务挂起注册事务回滚时的事件事务提交事件@EnableTransactionManagement事物核心拦截器invokeWithinTransactiongetTransactionAttribute异常回滚completeTransactionAfterThrowing事务提交事务做了那些事儿今天这里记录下spring的事务机制,大概分析原创 2020-11-21 21:41:00 · 590 阅读 · 0 评论 -
Spring Aop详解
Spring Aop详解什么AOPSpring AOPProxyFactory示例分析源码分析创建代理工厂createAopProxygetProxy()JDK动态代理的调用JdkDynamicAopProxy创建的代理对象执行过程spring的自动代理功能BeanNameAutoProxyCreatorDefaultAdvisorAutoProxyCreator@EnableAspectJAutoProxy注解和源码对应关系什么AOP在软件业,AOP为Aspect Oriented Programmi原创 2020-11-21 21:27:00 · 1025 阅读 · 1 评论 -
Spring循环依赖详解
Spring循环依赖详解什么是循环依赖spring是如何解决循环依赖循环源码分析getSingletion方法getSingletonspring开启代理对象的地方循环依赖的限制条件什么是循环依赖今天这边来聊下spring中的循环依赖,在spring的bean生命周期中,循环依赖处于bean的依赖注入模块,循环依赖相信就算没有研究过spring源码的也经常听说,那么什么是循环依赖呢?我们抛开spring这个框架来聊下什么是循环依赖,循环依赖可能在我们平时的开发过程中是属于比较常见的,但是如果只是简简单单原创 2020-11-21 21:13:10 · 2452 阅读 · 3 评论 -
Spring实例化之推断构造方法
Spring实例化之推断构造方法前言推断构造方法原理@AutoWired推导构造方法Xml中构造方法推导@ConstructorProperties推断构造方法源码解析实例化createBeanInstance(构造方法推断)Supplier用法@AutoWired后置处理器推断构造方法构造方法自动注autowireConstructor前言Spring中在生命周期中有一个非常重要的阶段就是推断构造方法,Bean的生命周期中,不管是单例的对象还是原型的对象都有实例化这个阶段,spring在扫描的阶段,也原创 2020-11-17 13:22:29 · 2158 阅读 · 0 评论 -
Spring 配置类解析过程详解
Spring 配置类解析过程详解配置类解析概要ConfigurationClassPostProcessor解析配置类过程invokeBeanDefinitionRegistryPostProcessorspostProcessBeanDefinitionRegistryprocessConfigBeanDefinitionscheckConfigurationClassCandidateConfigurationClassConfigurationClassParserparse解析processConf原创 2020-11-09 22:34:35 · 1502 阅读 · 0 评论 -
Spring BeanFactory后置处理器详解之配置类解析过程
Spring BeanFactory后置处理器详解之配置类解析过程BeanFactoryPostProcessor实现方式BeanFactory后置处理器源码分析invokeBeanFactoryPostProcessors分析BeanFactoryPostProcessorBeanFactoryPostProcessor是spring的一大核心,也是一个扩展点之一,spring的配置类扫描解析就是使用了BeanFactoryPostProcessor来实现的;spring中的两大扩展点之一就是Bean原创 2020-11-09 22:20:54 · 1090 阅读 · 0 评论 -
Spring启动过程详解
Spring启动过程详解前言spring容器启动过程AnnotationConfigApplicationContext有参数构造方法无参数构造AnnotatedBeanDefinitionReader构造配置类解析register(解析我们的配置类Appconfig)refresh启动准备prepareRefreshprepareBeanFactory(beanFactory)registerBeanPostProcessors(beanFactory)initMessageSourceinitAppli原创 2020-11-09 22:16:34 · 15221 阅读 · 15 评论 -
Spring依赖注入之@Resourcce详解&Bean的销毁
Spring依赖注入之@Resourcce详解&Bean的销毁@Resource和@AutoWired@Resource依赖注入过程源码分析@Resource、@PostConstruct、@PreDestroy寻找注入点applyMergedBeanDefinitionPostProcessorsCommonAnnotationBeanPostProcessor.postProcessMergedBeanDefinitionInitDestroyAnnotationBeanPostProcesso原创 2020-10-25 17:47:28 · 728 阅读 · 0 评论 -
Spring依赖注入之注入Bean获取详解
Spring依赖注入之注入Bean获取详解依赖注入获取Bean过程resolveDependency方法详解Optional类型的获取beanObjectFactory类型获取beandoResolveDependency(普通注入类型)QualifierAnnotationAutowireCandidateResolver.isAutowireCandidateGenericTypeAwareAutowireCandidateResolver.isAutowireCandidateaddCandidate原创 2020-10-25 17:33:13 · 2616 阅读 · 0 评论 -
Spring依赖注入@AutoWired
Spring依赖注入@AutoWiredSpring依赖注入的形式XML的方式xml自动注入源码autowireByNameautowireByType以@AutoWired的方式spring的注解依赖注入doCreateBean之注入点postProcessMergedBeanDefinition@AutoWired依赖注入AutowiredFieldElement.inejctAutowiredMethodElement.inject@Autowired例子演示Spring依赖注入的形式Spring原创 2020-10-25 17:18:36 · 1665 阅读 · 0 评论 -
Spring bean生命周期之doCreateBean方法详解
Spring bean声明周期之doCreateBean方法详解前言@ValuecreateBean方法详解实例化前方法调用实例化前初始化后doCreateBeanapplyMergedBeanDefinitionPostProcessors填充属性&实例化后(populateBean)@AutoWired的实现逻辑&属性填充后的后置处理器初始化BeaninitializeBean初始化前后置处理器初始化方法前言在上一篇笔记中我们介绍了bean的初始化声明周期,但是期间有个最核心的方法c原创 2020-10-25 12:03:28 · 3505 阅读 · 3 评论 -
Spring生命周期Bean初始化过程详解
Spring声明周期Bean初始化过程详解Spring 容器初始化Spring Bean初始化BeanFactory和FactoryBean源码分析Bean的实例化preInstantiateSingletonsgetMergedLocalBeanDefinitiongetBean方法getObjectForBeanInstance例子分析@DependsOnSpring 容器初始化在spring中,不管是以xml文件的方式配置的Bean还是以注解的方式进行配置,最后都会将单例Bean放入到Spring原创 2020-10-25 11:51:00 · 11012 阅读 · 0 评论 -
Spring源码中涉及到的基本概念详解
这里写目录标题Spring简单介绍Bean定义XML定义Bean三级目录Spring简单介绍可以说spring是目前J2EE架构中最成功的轻量级的J2EE架构,spring发展了很多年了,现在使用已经很广泛了,可以说基本上每一家企业都在使用,包括BAT公司,都在spring架构的基础上做了很多的扩展,这个专题主要记录下spring的一些相关笔记,前段时间看了下spring的容器初始化的过程,发现里面的封装实在是太复杂了,封装了上千个类,如果不理解概念,直接去看源码会直接晕掉,spring最核心的功能就是原创 2020-10-25 11:40:27 · 714 阅读 · 0 评论 -
利用Spring的@Import扩展点与spring进行无缝整合
利用Spring的@Import扩展与spring进行无缝整合前言BeanFactoryPostProcessor@Import实现POM文件定义数据层Resource(dao)层的扫描注解定义我的数据层Resource使用的注解ArteryResourceImportBeanDefinitionRegistrar实现自定义扫描类ClassPathArteryResourceScanner代理注册工厂ResourceRegistryResouce的代理工厂真正的代理类方法调用类AbstractBeanDef原创 2020-08-07 14:14:00 · 1921 阅读 · 5 评论