- 博客(11)
- 收藏
- 关注
原创 死磕Spring源码-Spring Boot源码分析
SpringBoot通过内置的tomcat带动ioc容器的启动.下面通过源码分析SpringBoot的启动流程.首先找到启动程序的入口,从run方法点进去.如下图可知,首先创建一个SpringApplication对象通过initialize(sources);方法进行初始化,sources是我们传入的主配置类.initialize方法首先将我们的主函数类转化成数组保存...
2019-07-25 14:14:48 900
原创 死磕Spring源码-SpringAOP逆天操作教你如何征服面试官
Spring AOP 原理简单说说 AOP 的设计:每个 Bean 都会被 JDK 或者 Cglib 代理。取决于是否有接口。 每个 Bean 会有多个“方法拦截器”。注意:拦截器分为两层,外层由 Spring 内核控制流程,内层拦截器是用户设置,也就是 AOP。 当代理方法被调用时,先经过外层拦截器,外层拦截器根据方法的各种信息判断该方法应该执行哪些“内层拦截器”。内层拦截器的设计就...
2019-07-25 14:11:08 1047
原创 全新视角探秘性能优化-SQL底层执行过程
本篇文章会分析一个 sql 语句在 MySQL 中的执行流程,包括 sql 的查询在 MySQL 内部会怎么流转,sql 语句的更新是怎么完成的。在分析之前我会先带着你看看 MySQL 的基础架构,知道了 MySQL 由那些组件组成以及这些组件的作用是什么,可以帮助我们理解和解决这些问题。一 MySQL 基础架构分析1.1 MySQL 基本架构概览下图是 MySQL 的一个简要架构...
2019-07-24 13:52:48 182
原创 死磕Spring源码-Spring事务深度源码剖析
什么是事务? 事务,即数据库事务。是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。 通常,事务的正确执行会使数据库从一种状态转换为另一种状态。事务的特性(ACID原则)原子性(atomicity) 即不可分割性,事务要么全执行、要么全不执行。一致性(consistency) 事务的执行使得数据库从一种正确状态转换成另外一种正确状态。隔离性(isolati...
2019-07-24 13:48:18 199
原创 死磕Spring源码- spring Ioc 源码分析 (一)
1,AnnotationConfigApplicationContext首先从这个类开始说明,因为Spring基于注解加载配置类是从这里开始的。一:为我们做了什么?首先AnnotationConfigApplicationContext 继承了GenericApplicationContext,所以AnnotationConfigApplicationContext 初始化的时候会走一下...
2019-07-23 15:07:14 435
原创 死磕Spring源码-常见底层核心注解
一:Spring框架功能整体介绍二:根据Spring架构图可知,包含以上的模块儿。下面逐个模块儿进行解释。1:IOC 和 DI(Inversion of Control I DependencyInjection ( IoC/DI ) 最最最最核心的功能是 :通过多级缓存解决循环依赖问题。2:Spring Core Container: 模块作用:Core ...
2019-07-23 14:19:43 2311 2
原创 Java互联网架构-Spring源码分析深入浅出AOP
一:调用AOP 代理对象本章结合源码讲解AOP的代理对象创建完成是如何调用的。1,调用AOP代理类的方法假设Calculate类是切点,里面有一个add方法。此时执行Calculate.add的方法的时候直接进入JdkDynamicAopProxy类中的invoke方法。2,invoke方法不用想在调用到这里的时候肯定是invoke的方法对增强器进行调用,那么看看...
2019-07-15 15:48:29 135
转载 Java互联网架构-程序员级别高低的分水岭JVM虚拟机
与其他语言相比,例如c/c++,我们都知道,java虚拟机对于程序中产生的垃圾,虚拟机是会自动帮我们进行清除管理的,而像c/c++这些语言平台则需要程序员自己手动对内存进行释放。虽然这种自动帮我们回收垃圾的策略少了一定的灵活性,但却让代码编写者省去了很多工作,同时也提高了很多安全性。(因为像C/C++假如你创建了大量的对象,但却由于自己的疏忽忘了将他们进行释放,可能会造成内存溢出)。何为垃...
2019-04-17 13:22:18 203
转载 Java互联网架构-带你领略Tomcat8源码的世界
什么是TomcatTomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器。为什么我们需要用到Tomcat如果你学过html,css,你会知道你写的页面只能自己访问,别人不能远程访问你写的页面,Tomcat就是提供能够让别人访问自己写的页面的一个程序配置Tomcat运行Tomcat需要JDK的支持【Tomca...
2019-04-15 14:54:33 231
转载 Java互联网架构-深入浅出线程安全从原子性到手写实现java锁
大家可能都听说说 Java 中的并发包,如果想要读懂 Java 中的并发包,其核心就是要先读懂 CAS 机制,因为 CAS 可以说是并发包的底层实现原理。今天就带大家读懂 CAS 是如何保证操作的原子性的,以及 Java8 对 CAS 进行了哪些优化。synchronized:大材小用我们先来看几行代码:public class CASTest {static int i = ...
2019-04-14 21:44:46 130
原创 Java互联网架构-亿级数据量系统的性能保证分库分表
分片技术的由来关系型数据库本身比较容易成为系统性能瓶颈,单机存储容量、连接数、处理能力等都很有限,数据库本身的“有状态性”导致了它并不像Web和应用服务器那么容易扩展。在互联网行业海量数据和高并发访问的考验下,聪明的技术人员提出了分库分表技术(有些地方也称为Sharding、分片)。同时,流行的分布式系统中间件(例如MongoDB、ElasticSearch等)均自身友好支持Sharding,...
2019-04-14 14:36:02 473
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人