![](https://img-blog.csdnimg.cn/20191101101513184.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spring
nrsc
::>_<::曾梦想当一个科学家::>_<::
展开
-
【dubbo源码解析~番外篇】--- JDK和Spring的RMI使用姿势简介
本文对应源码地址:https://github.com/nieandsun/dubbo-study文章目录1 RMI简介2 JDK原生的RMI使用姿势1 RMI简介在不考虑dubbo的情况下,一个JVM里如何调用另一个JVM的方法? 我能想到 + 用到的姿势有: HttpClient RestTemplate WebService FeignClient ServerSocket/Socket最近又学到了一种姿势RMI — Remote Method Invocation(远.原创 2020-07-09 19:22:23 · 579 阅读 · 0 评论 -
【SPI】 --- java spi 机制简介
本文对应源码地址:https://github.com/nieandsun/dubbo-study文章目录1 spi需要解决的问题剖析2 java spi使用简介2.1 使用java spi需要遵循的约定2.2 示例1 spi需要解决的问题剖析首选看如下代码:@Testpublic void demo1() { JdbcService jdbcService = new JdbcServiceAImpl(); int i = jdbcService.insert("jame.原创 2020-06-26 18:03:52 · 608 阅读 · 0 评论 -
【springboot】--- springboot的starter原理探究 + 如何自定义自己的starter
本文对应的源码: https://github.com/nieandsun/NRSC-STUDY文章目录1 写作背景2 为什么会有starter机制2.1 springboot项目的默认扫描机制2.2 starter机制的必然性3 springboot的starter机制前置知识介绍3.1 通过@Import注解 + 实现ImportSelector 接口的方式向IOC容器里注入Bean3.2 springboot对`@Import注解 + 实现ImportSelector接口方式向IOC容器.原创 2020-06-14 20:00:25 · 4572 阅读 · 4 评论 -
【Mybatis+spring整合源码探秘】--- mybatis整合spring事务原理
文章目录1 mybatis整合spring事务原理1 mybatis整合spring事务原理本篇文章不再对源码进行具体的解读了,仅仅做了下面一张图:该图整理了spring+mybatis整合后,在有事务和无事务情况下mybatis的核心流程,从中应该可以获得的知识有:(1)mybatis是如何整合spring事务的(2)在非事务情况下,为什么mybatis的一级缓存会失效(3)在有...原创 2020-01-19 17:39:43 · 2347 阅读 · 1 评论 -
【Mybatis+spring整合源码探秘】--- Mybatis整合Spring后在非事务情况下一级缓存失效的底层原理
文章目录1 现象2 必备前置知识3 源码探寻入口源码地址:https://github.com/nieandsun/mybatis-study1 现象如下图所示:连续两次调用userMapper的同一个查询方法,第二次却没有像Mybatis单独开发时一样走缓存 —》本文将从源码的角度来探索一下其具体的原因。2 必备前置知识通过文章《【Mybatis+spring整合源码探秘】...原创 2020-01-13 23:20:24 · 2632 阅读 · 0 评论 -
【Mybatis+spring整合源码探秘】--- 创建Mapper动态代理类核心源码解读
文章目录1 从mybatis整合spring的配置类开始2 SqlSessionFactoryBean对象及其背后的秘密 --- 构建SqlSessionFactory对象2.1 简单介绍2.2 原理简介2.2.1 必备的前置知识2.2.2 【具体原理简介】 --- 实现InitializingBean接口 ---> 构建SqlSessionFactory对象2.2.3 【具体原理简介】-...原创 2020-01-12 14:32:27 · 3158 阅读 · 7 评论 -
【Mybatis+spring整合源码探秘】--- 开篇 • 搭建一个最简单的Mybatis、Spring整合框架
文章目录1. 学习网站记录2. Mybatis、Spring整合框架搭建2.1 pom.xml源码地址:https://github.com/nieandsun/mybatis-study1. 学习网站记录Mybatis官网:https://mybatis.org/mybatis-3/index.htmlMyBatis-Spring整合官网:https://mybatis.org/s...原创 2020-01-11 12:49:37 · 2059 阅读 · 2 评论 -
【bean的生命周期】--- BeanDefinition和BeanFactoryPostProcessor简介
文章目录1 单例业务bean的创建流程简介2 BeanFactoryPostProcessor修改BeanDefinition来干预bean的创建2.1 测试类2.2 BeanDefinition的class属性2.2 BeanDefinition的autowireMode属性2.3 BeanDefinition的constructorArgumentValues属性3 bean的生命周期总结...原创 2019-12-29 13:47:05 · 2165 阅读 · 0 评论 -
【spring事务】 --- exposeProxy属性的作用 --- 同一个对象里方法间调用事务传播行为生效的方法
文章目录1 先看现象2 从源码看一下exposeProxy在事务源码中的逻辑3 解决方式源码地址:https://github.com/nieandsun/spring-study1 先看现象有如下代码,调用addUserAndSalary方法,t_user表和t_salary表哪个表里会被插入数据呢???@Servicepublic class UserServiceImpl i...原创 2019-12-28 22:24:09 · 2199 阅读 · 0 评论 -
【spring事务源码学习】--- 目标方法调用流程核心源码解读
文章目录1 简述 + 源码跟踪入口2 目标方法调用流程核心源码解读2.1 invoke(...) --- 目标方法调用 + 调用结果返回流程的骨架2.2 proceed方法 --- 责任链+递归调用模式的精髓2.3 invoke(this) 方法--- 以事务方式调用目标方法的入口2.4 invokeWithinTransaction --- 事务方式调用目标方法的骨架 ★★2.5 create...原创 2019-12-28 19:17:10 · 1104 阅读 · 1 评论 -
【spring事务源码学习】--- 目标对象增强核心源码解读
文章目录1 简单回顾2 如何找到适用于当前对象的通知2.1 findAdvisorsThatCanApply --- 入口2.2 AopUtils.findAdvisorsThatCanApply2.3 canApply --- 拿到当前类和当前类的接口,遍历接口和类中的方法看是否有适用于当前bean的通知2.4 matches2.5 getTransactionAttribute2.6 co...原创 2019-12-25 10:56:14 · 908 阅读 · 0 评论 -
【spring源码】--- spring-aop和spring事务前置处理方法
文章目录1 简介2 前置处理方法的入口3 AOP核心后置处理器的前置处理方法1 简介之前我一直以为AOP核心后置处理器的前置处理方法并没有做什么具体工作,但在写《【spring事务源码学习】— spring事务核心组件创建过程》这篇文章时,跟踪源码发现事务的核心后置处理器同AOP的核心后置处理器一样也实现了InstantiationAwareBeanPostProcessor接口,并且会走同...原创 2019-12-23 02:56:12 · 1603 阅读 · 1 评论 -
【bean的生命周期】--- InstantiationAwareBeanPostProcessor接口简介
文章目录1 InstantiationAwareBeanPostProcessor接口简介2 bean的生命周期总结1 InstantiationAwareBeanPostProcessor接口简介上篇文章写到spring-aop和spring事务核心后置处理器的前置处理方法入口都为下面的方法:所在类: AbstractAutowireCapableBeanFactory所在方法: cr...原创 2019-12-22 12:50:41 · 832 阅读 · 1 评论 -
【spring事务源码学习】--- spring事务核心组件创建过程
文章目录1 通过注解方式配置数据源+事务管理器+持久层框架2 spring事务核心组件的注册2.1 @EnableTransactionManagement注解2.2 TransactionManagementConfigurationSelector类2.3 ProxyTransactionManagementConfiguration --- 三大核心组件2.4 AutoProxyRegis...原创 2019-12-21 22:34:29 · 904 阅读 · 0 评论 -
【spring事务源码学习】--- spring事务三大接口简介
文章目录1 前言2 TransactionDefinition接口3 PlatformTransactionManager接口4 TransactionStatus接口1 前言spring为管理事务定义了三个接口,分别为TransactionDefinition — 事务定义信息(事务隔离级别、传播行为、超时、只读、回滚规则)TransactionStatus — 事务的运行状态P...原创 2019-12-21 18:24:50 · 983 阅读 · 0 评论 -
【spring事务前置知识】事务的七大传播行为
文章目录原创 2019-12-20 01:11:51 · 865 阅读 · 0 评论 -
【spring事务前置知识】事务的基本特性 + 隔离级别
文章目录1 最近打算2 事务的基本特性3 事务的隔离级别1 最近打算最近在研究spring事务的源码,因为spring事务的核心流程其实和spring-aop的核心流程很像,所以本想趁热打铁直接写1-2篇文章总结一下spring事务的核心流程的。但是今天下午突然想到之前在学校里为了考试,自己背诵事务的基本特性、事务隔离级别的时光。。。想到当时为了能拿满分,硬是非要按照当时的讲义一字不错的背下...原创 2019-12-18 10:44:13 · 807 阅读 · 0 评论 -
【Spring - AOP】 --- 目标方法调用流程核心源码解读
文章目录1 简诉 + 源码跟踪入口2 目标方法调用流程的骨架 + 获取方法拦截器链3 链式调用通知方法1 简诉 + 源码跟踪入口上篇文章《【Spring - AOP】 — 目标对象增强核心源码解读》解读了spring-aop利用动态代理机制在目标对象创建+初始化过程中对其进行增强的核心源码。对代理模式有所了解的肯定知道,无论是静态代理还是动态代理,只要使用了代理模式,那目标对象里目标方法的调...原创 2019-12-11 23:26:37 · 1082 阅读 · 0 评论 -
【Spring - AOP】 --- 目标对象增强核心源码解读
文章目录1 简单回顾2 spring-aop目标对象的创建和初始化过程概述3 spring-aop目标对象的后置增强 --- AOP核心原理3.1 spring-aop目标对象的后置增强入口3.2 spring-aop核心源码解读3.3 spring-aop核心源码读后总结1 简单回顾上篇文章《【Spring - AOP】— AOP核心后置处理器internalAutoProxyCreato...原创 2019-12-09 00:08:28 · 1244 阅读 · 2 评论 -
【Spring - AOP】--- AOP核心后置处理器的创建过程
文章目录1 简诉2 internalAutoProxyCreator的注册3 internalAutoProxyCreator的继承关系4 internalAutoProxyCreator创建+初始化过程4.1 入口refresh()方法4.2 跟进processor创建+初始化的源码4.3 internalAutoProxyCreator初始化过程中BeanFactoryAware的作用时机...原创 2019-12-08 13:08:22 · 1668 阅读 · 0 评论 -
【Spring - AOP】--- AOP使用简介
文章目录源码地址:https://github.com/nieandsun/spring-study原创 2019-12-01 21:17:57 · 933 阅读 · 0 评论 -
【bean的生命周期】--- DisposableBean、destroyMethod和@PreDestroy
文章目录源码地址:https://github.com/nieandsun/spring-study原创 2019-11-25 23:46:50 · 4164 阅读 · 0 评论 -
【bean的生命周期 - spring注解】@Value
文章目录1 @Value使用简介1.1 简单入门1.2 利用@Value读取配置文件中的值并赋值给类的属性2 一些小细节 --- 简单提一下源码地址:https://github.com/nieandsun/spring-study1 @Value使用简介1.1 简单入门比如有下面一个类,可以利用@Value给其进行赋值package com.nrsc.springstudy.c0...原创 2019-11-24 21:45:49 · 1204 阅读 · 0 评论 -
真实工作中经常用到的Aware使用简介
文章目录1 前言2 BeanNameAware和EmbeddedValueResolverAware使用简介2.1代码开发2.2 测试3 ApplicationContextAware在工作中的使用3.1 应用场景介绍3.2 ApplicationContextUtils开发4 MessageSource和MessageSourceAware使用介绍4.1 实现MessageSourceAwar...原创 2019-11-24 13:37:37 · 2958 阅读 · 3 评论 -
ApplicationContextAwareProcessor源码解析 + Aware接口简介
文章目录原创 2019-11-23 21:53:20 · 1551 阅读 · 0 评论 -
【bean的生命周期】BeanPostProcessor简介
文章目录源码:https://github.com/nieandsun/spring-study原创 2019-11-23 16:55:17 · 1154 阅读 · 0 评论 -
【bean的生命周期】--- 构造方法、@Autowired、BeanPostProcessor、InitializingBean等的执行顺序解析
文章目录原创 2019-11-23 00:00:15 · 2062 阅读 · 0 评论 -
【bean的生命周期】--- 对象创建+初始化流程分析 --- 【重点@Autowired的作用时机】
文章目录1 简述2 源码解析之主干分析3 源码解析之详细解读3.1 bean的创建 --- Instantiate the bean3.2 bean的初始化 --- Initialize the bean instance3.2.1 populateBean(beanName, mbd, instanceWrapper)3.2.2 initializeBean(beanName, exposed...原创 2019-11-22 00:15:42 · 1894 阅读 · 1 评论 -
【Spring注解】@Conditional
源码:https://github.com/nieandsun/spring-study原创 2019-11-17 23:59:26 · 699 阅读 · 0 评论 -
【bean的生命周期】详解InitializingBean、initMethod和@PostConstruct
源码地址https://github.com/nieandsun/spring-study原创 2019-07-08 00:40:07 · 5041 阅读 · 0 评论 -
【Spring注解】@Scope和@Lazy
源码:https://github.com/nieandsun/spring-study1.@Scope主要用法如下:@Configurationpublic class C06Config1 { /** * 没有@Scope/有@Scope后面什么都不写/或 @Scope("singleton"): * 单实例(默认)---IOC容器启动的时候会调用方法...原创 2019-03-20 22:32:55 · 541 阅读 · 0 评论 -
【Spring注解】@Autowired和@Resource其实没有多大区别
源码:https://github.com/nieandsun/spring-study原创 2019-03-20 00:47:52 · 586 阅读 · 0 评论 -
【Spring注解开发】setAllowBeanDefinitionOverriding---同名bean覆盖的问题
源码:https://github.com/nieandsun/spring-study1.前置知识所谓的Spring容器,其实就是一个大Map,其管理的bean的id(也就是bean的name)应该都是不一样的,假如项目中有两个bean的name一样了,在项目启动时一般会报类似于下图的同名异常.但在有些情况下,spring并不会报"同名异常" ,其处理方式是:如果两个bean的na...原创 2019-03-18 23:04:20 · 10047 阅读 · 0 评论 -
【Spring之FactoryBean】
源码:https://github.com/nieandsun/spring-study1 .简介FactoryBean其实是一个接口,实现了该接口的类,被注册到spring容器后,当调用getBean(“该类在spring容器中的key”)时,spring会对其进行特殊的处理.2.demo代码结构说明:有兴趣的可以把源码下载下来对@Bean,@Import和@Component三种注...原创 2019-03-15 00:08:45 · 540 阅读 · 0 评论 -
【Spring注解】@Import
源码:https://github.com/nieandsun/spring-study原创 2019-03-14 21:59:21 · 2094 阅读 · 0 评论 -
【Spring注解】@ComponentScan之includeFilters和excludeFilters
1. 概念1.1 先看一段代码1.2 type—FilterTypeFilterType为一个枚举类,总共有5个值,也就是说type总共有5个可选值public enum FilterType { ANNOTATION,//按照注解方式 ASSIGNABLE_TYPE,//按照指定类型的方式 ASPECTJ,//使用ASPECTJ表达式的方式-------没用过,不演示 REGE...原创 2019-03-11 09:37:18 · 24150 阅读 · 3 评论 -
【Spring注解】@ComponentScan之 你可能没注意到的点
qqq原创 2019-03-09 14:17:53 · 7920 阅读 · 1 评论