Java框架
文章平均质量分 83
Spring体系、Dubbo、ORM、ZK、Netty等等原理或源码分析。
街灯下的小草
这个作者很懒,什么都没留下…
展开
-
【Spring源码】IOC容器实现-AnnotationConfigApplicationContext(注解方式)初始化
前言Github:https://github.com/yihonglei/thinking-in-springIOC容器XML方式实现源码:IOC容器结构体系BeanDefinition的Resource定位BeanDefinition的载入和解析BeanDefinition的注册Bean对象的创建Bean依赖注入一 IOC容器注解方式实现概述Spring注解方式减少了大量XML配置工作和代码复杂性,降低开发和维护成本。常用的Spring注解@Component原创 2020-07-04 22:25:45 · 1603 阅读 · 0 评论 -
【Spring基础】事务管理
前言Github:https://github.com/yihonglei/thinking-in-spring一 事务特性了解Spring事务前,有必要先了解下事务的ACID特性。1、原子性(atomacity)整个事务中的所有操作,要么全部成功,要么全部失败,任意一个失败都会导致整个事务回滚,不会出现部分执行成功部分执行失败的情况。2、一致性(consistency...原创 2019-01-18 18:21:12 · 613 阅读 · 1 评论 -
【Spring源码】AOP实现(2)--拦截器调用的实现
前言Github:https://github.com/yihonglei/thinking-in-spring上文分析了AopProxy代理对象的创建过程,相当于为AOP运行做好了准备条件,这篇文章分析AOP如何运行的,也就是如何通过拦截器调用运行AOP的。创建AopProxy代理对象一设计原理 在Spring AOP通过JDK或CGLIB的方式生成代理对象的时候...原创 2018-07-16 23:16:05 · 1301 阅读 · 0 评论 -
【Spring源码】AOP实现(1)--创建AopProxy代理对象
前言Github:https://github.com/yihonglei/thinking-in-spring关于AOP概念和AOP的实战:Spring使用注解 AOP实战Spring使用XML AOP实战本篇是以ProxyFactoryBean的配置来讲的,这个是最能体现AOP思想的一个配置方式,也是我们学习AOP一个入口。一 设计原理 在Spring的AOP...原创 2018-07-16 14:54:13 · 1892 阅读 · 0 评论 -
【Spring源码】IOC容器实现(6)--Bean依赖注入
前言Github:https://github.com/yihonglei/thinking-in-spring在前面文章中分析了容器初始化过程,建立一个可以使用的容器以及Bean对象的创建过程。1)BeanDefinition的Resource定位2)BeanDefinition的载入和解析3)BeanDefinition的注册4)Bean对象的创建从上文“Bean对...原创 2018-07-14 00:12:58 · 1197 阅读 · 1 评论 -
【Spring源码】IOC容器实现(5)--Bean对象的创建
前言Github:https://github.com/yihonglei/thinking-in-spring在前面文章中分析了容器初始化过程,已经建立了一个可以使用的容器。1)BeanDefinition的Resource定位2)BeanDefinition的载入和解析3)BeanDefinition的注册 容器初始化的工作主要是在IOC容器中建立了BeanDef...原创 2018-07-13 22:49:39 · 750 阅读 · 2 评论 -
【Spring源码】IOC容器实现(4)--BeanDefinition的注册
前言Github:https://github.com/yihonglei/thinking-in-spring在上一篇文章中,分析了BeanDefinition在IOC容器中载入和解析的过程。BeanDefinition载入和解析在这些动作完成之后,用户定义的BeanDefinition信息已经在IOC容器内建立了自己的数据结构以及相应的数据表示,但此时这些数据不能供IOC容...原创 2018-07-13 18:35:41 · 835 阅读 · 0 评论 -
【Spring源码】IOC容器实现(3)--BeanDefinition的载入和解析
前言Github:https://github.com/yihonglei/thinking-in-springBeanDefinition的载入和解析上文分析了BeanDefiniton的Resource定位过程:Spring源码--IOC容器实现(2)--BeanDefinition的Resource定位这篇文章分析下BeanDefinition信息的载入过程。载入过程...原创 2018-07-13 14:37:16 · 817 阅读 · 0 评论 -
【Spring源码】IOC容器实现(2)--BeanDefinition的Resource定位
前言Github:https://github.com/yihonglei/thinking-in-spring一 IOC容器初始化过程概述IOC容器初始化是由上文提到的refresh()方法来启动的,这个方法标志着IOC容器正式启动。IOC容器初始化过程分为三个过程:1)BeanDefinition的Resource定位过程。这个Resource定位是指B...原创 2018-07-13 01:13:56 · 1139 阅读 · 0 评论 -
【Spring源码】BeanFactory和FactoryBean区别
一BeanFactory和FactoryBean概念BeanFactory和FactoryBean在Spring中是两个使用频率很高的类,它们在拼写上非常相似,需要注意的是,两者除了名字看上去像一点外,从实质上来说是一个没有多大关系的东西。BeanFactory是一个IOC容器或Bean对象工厂;FactoryBean是一个Bean;在Spring中有两种Bean,一...原创 2018-07-10 21:18:57 · 1233 阅读 · 0 评论 -
【Spring源码】IOC容器实现(1)--IOC容器结构体系
前言Github:https://github.com/yihonglei/thinking-in-spring一什么是IOC/DI 依赖反转表示的是依赖对象的获得被反转了,也叫做依赖注入(DI)。如果合作对象的引用或依赖关系的管理由具体对象来完成,会导致代码的高耦合和可测试性降低,对于复杂的面向对象设计非常不利。可以把传统对象依赖注入交由IOC容器来完成,这种...原创 2018-07-12 17:05:22 · 966 阅读 · 0 评论 -
【Spring基础】配置数据源
前言Github:https://github.com/yihonglei/thinking-in-spring一Spring数据源简介Spring提供了在Spring上下文中配置数据源bean的多种方式,包括:1、通过JDBC驱动程序定义的数据源。在Spring中,通过JDBC驱动定义数据源是最简单的配置方式。Spring提供了三个这样的数据源类(均位于org.spri...原创 2018-07-05 23:12:36 · 2050 阅读 · 0 评论 -
【Spring基础】CGLIB动态代理实现原理
前言Github:https://github.com/yihonglei/thinking-in-spring一 CGLIB介绍CGLIB(Code Generation Library)是一个开源项目!是一个强大的,高性能,高质量的Code生成类库,它可以在运行期扩展Java类与实现Java接口。Hibernate用它来实现PO(Persistent Object 持久化对象)...原创 2018-06-09 18:11:19 · 81414 阅读 · 19 评论 -
【Spring基础】JDK动态代理实现原理(jdk8)
前言Github:https://github.com/yihonglei/thinking-in-spring一 JDK动态代理在了解JDK动态代理前,有需要可以了解下代理模式。参考:https://blog.csdn.net/yhl_jxy/article/details/52679882;天天的都听到人们说JDK动态代理,听上去感觉好屌的样子,为什么要叫JDK动态代理?...原创 2018-06-05 21:32:47 · 25994 阅读 · 12 评论 -
【Spring基础】AOP使用XML实战
前言Github:https://github.com/yihonglei/thinking-in-springAOP是什么,有哪些概念?参考:Spring使用注解AOP实战Spring使用注解AOP实战1、 XML中aop配置元素分析在进行XML配置aop之前,需要了解spring的aop命名空间中,提供了多少个元素用来在XML中声明切面。这些配置在以下xm...原创 2017-12-17 10:58:19 · 1116 阅读 · 0 评论 -
【Spring基础】AOP使用注解实战
前言Github:https://github.com/yihonglei/thinking-in-spring一AOP的概念 AOP(Aspect Oriented Programming),即为面向切面编程。在软件开发中,散布于应用中多处的功能被称为横切关注点(cross-cutting concern),通常来说,这些横切关注点从概念上是与应用的业务逻辑分离的。比...原创 2017-12-15 18:03:44 · 13521 阅读 · 5 评论 -
【Spring基础】IOC使用构造器依赖注入
前言Github:https://github.com/yihonglei/thinking-in-spring一构造器注入bean1、创建HelloService接口package com.jpeony.spring.common;public interface HelloService { void sayHello(String name);}2、He...原创 2017-12-13 16:42:42 · 2302 阅读 · 1 评论 -
【Spring基础】IOC使用Setter依赖注入
前言Github:https://github.com/yihonglei/thinking-in-spring如果Spring使用XML配置形式,最常用有两种依赖注入方式:setter注入和构造器注入。这里主要讨论基于setter方法的依赖注入。一 Setter注入Bean1、创建一个HelloService接口package com.jpeony.spring.com...原创 2017-12-13 16:17:56 · 18609 阅读 · 10 评论 -
【Spring基础】IOC自动装配bean
前言Github:https://github.com/yihonglei/thinking-in-spring一 Spring配置可选方案Spring提供了三种主要的装配机制:1)在XML中进行显示配置。2)在Java中进行显示配置。3)隐式的bean发现机制和自动装配。这三种方式怎么选择,其实没有严格的要求,他们是可以搭配使用的,大部分取决于个人喜好和项目实际情况。...原创 2017-12-12 15:08:25 · 1821 阅读 · 0 评论 -
【SpringMVC源码】执行源码分析
前言Github:https://github.com/yihonglei/thinking-in-springmvc一 SpringMVC概述Spring MVC封装servlet的MVC Web开发框架,减轻直接操作Servlet的繁琐,提高开发效率。二 Spring MVC执行流程源码1、时序图先上一个简易版本的。DispatcherServlet负责请求的转发 ------> HandlerMapping基于url查找Handler------> ..原创 2020-06-17 19:58:56 · 447 阅读 · 0 评论 -
【SpringMVC源码】启动源码分析
前言Github:https://github.com/yihonglei/thinking-in-springmvc一 SpringMVC概述Spring MVC封装servlet的MVC Web开发框架,减轻直接操作Servlet的繁琐,提高开发效率。二 SpringMVC启动流程源码1、启动时序图这里假设使用的web容器是Tomcat,初始化Spring MVC的大致过程如下。初始化Servlet实例(Tomcat)------> DispacherServlet(.原创 2020-06-17 10:17:21 · 445 阅读 · 0 评论 -
【SpringCloud基础】Config配置中心
前言Github:https://github.com/yihonglei/thinking-in-springcloudconfig服务端:config-serverconfig客户端:config-clientconfig配置中心:https://github.com/yihonglei/lanhuigu-cloud-config(文件路径)https://github...原创 2019-07-16 19:28:14 · 553 阅读 · 0 评论 -
【SpringCloud基础】zuul网关
前言Github:https://github.com/yihonglei/thinking-in-springcloudEureka注册中心:eureka-server服务提供者(订单服务):eureka-provider-orderzuul网关工程:eureka-gateway-zuul一 eureka-gateway-zuulZuul可以通过加载动态过滤机制,从而实现...原创 2019-07-15 15:42:07 · 671 阅读 · 0 评论 -
【SpringCloud基础】Hystrix配置Dashboard,Turbine集群监控
前言Github:https://github.com/yihonglei/thinking-in-springcloudEureka注册中心:eureka-server服务提供者(订单服务):eureka-provider-orderFeign-api(服务接口抽象):eureka-feign-apiFeign客户端消费(含hystrix和dashboard):eureka-...原创 2019-07-12 17:08:34 · 702 阅读 · 0 评论 -
【SpringCloud基础】Hystrix配置Dashboard
前言Github:https://github.com/yihonglei/thinking-in-springcloudEureka注册中心:eureka-server服务提供者(订单服务):eureka-provider-orderFeign-api(服务接口抽象):eureka-feign-apiFeign客户端消费(含hystrix和dashboard):eureka-...原创 2019-07-10 13:48:46 · 567 阅读 · 0 评论 -
【SpringCloud基础】Feign开启对Hystrix支持
前言Github:https://github.com/yihonglei/thinking-in-springcloudEureka注册中心:eureka-server服务提供者(订单服务):eureka-provider-orderFeign-api(服务接口抽象):eureka-feign-apiFeign客户端消费:eureka-consumer-feign-hystr...原创 2019-07-07 17:54:50 · 2957 阅读 · 0 评论 -
【SpringCloud基础】Feign负载均衡
前言Github:https://github.com/yihonglei/thinking-in-springcloudEureka注册中心:eureka-server服务提供者(订单服务):eureka-provider-orderFeign-api(服务接口抽象):eureka-feign-apiFeign客户端消费:eureka-consumer-feign一 Fe...原创 2019-07-01 15:21:46 · 568 阅读 · 0 评论 -
【SpringCloud基础】-Eureka注册中心安全认证
前言Github:https://github.com/yihonglei/thinking-in-springcloudEureka安全认证注册中心:eureka-server-security客户端通过安全认证方式进行服务注册:eureka-provider-order一 eureka安全认证eureka安全中心可以增加用户名和密码进行安全验证访问。通过spring-b...原创 2019-06-23 15:59:25 · 2573 阅读 · 0 评论 -
【SpringCloud基础】Hystrix熔断器
前言Github:https://github.com/yihonglei/thinking-in-springcloudEureka注册中心:eureka-server服务提供者(订单服务):eureka-provider-order服务容错(用户服务):eureka-consumer-hystrix一 熔断在微服务架构中,系统被拆分成多个服务单元,各个单元应用间通过服务...原创 2017-11-25 14:49:40 · 837 阅读 · 0 评论 -
【SpringCloud基础】RestTemplate详解
前言Github:https://github.com/yihonglei/thinking-in-springcloud概述RestTemplate四种请求方式:get,post,put,delete。日常开发最常用的主要是get,post。一 get方式对于get主要有两个实现,getForEntity和getForObject。1、getForEntity...原创 2017-10-29 09:22:49 · 1837 阅读 · 0 评论 -
【SpringCloud基础】Eureka实现原理
前言Github:https://github.com/yihonglei/thinking-in-springcloud一Eureka基础架构Eureka服务治理基础架构包括三个核心要素。1、服务注册中心Eureka分为客户端和服务端,Eureka服务端提供服务注册与发现的功能。2、服务提供者提供服务的应用,Spring Boot应用或者遵循Eureka通信机制的应...原创 2017-10-23 20:31:47 · 9763 阅读 · 0 评论 -
【SpringCloud基础】Ribbon负载均衡
前言Github:https://github.com/yihonglei/thinking-in-springcloudEureka注册中心:eureka-server服务提供者(订单服务):eureka-provider-orderribbon消费(用户服务):eureka-consumer-ribbon一Ribbon概要Ribbon是一个基于HTTP和TCP的客户端...原创 2017-10-23 11:54:36 · 2216 阅读 · 0 评论 -
【SpringCloud基础】Eureka高可用注册中心
前言Github:https://github.com/yihonglei/thinking-in-springcloudEureka高可用注册中心:eureka-server-available服务注册到高可用注册中心:eureka-register-available在微服务分布式架构中,生产环境必须对各个组件进行高可用部署,对于服务中心也一样。EurekaServ...原创 2017-10-14 21:26:37 · 1651 阅读 · 0 评论 -
【SpringCloud基础】快速入门
前言Github:https://github.com/yihonglei/thinking-in-springcloudEureka注册中心:eureka-server服务提供者(订单服务):eureka-provider-order服务消费者(用户服务):eureka-consumer-user一服务治理 在传统项目中,我们可以通过配置完成服务间的调用。比如,A...原创 2017-10-14 16:21:48 · 2859 阅读 · 5 评论