Java
文章平均质量分 95
Java技术栈
im-xuchang
满瓶不响,半瓶咣当!
展开
-
深入剖析Mysql事务和Spring事务
深入剖析Mysql事务和Spring事务看到上一篇分享的博客还是在一年前,太久没进行分享感觉少了点东西,所以现在给自己定一个目标就是从八月份开始每个月至少分享两篇技术博客,沉淀太久了,都忘记当初为啥要看源码,为啥要深入学习技术了。回归正题,本文分享一些关于Mysql如何解决多事务并发的问题和Spring源码是怎么控制事务以及一些事务失效的场景。分享内容Mysql事务隔离机制锁机制MVCC多版本并发控制隔离机制Spring事务应用和源码分析事务失效问题一、Mysql事务数据库的多事务并发原创 2021-07-28 17:02:39 · 492 阅读 · 1 评论 -
Spring源码构建
Spring源码构建下载源码可以在github上下载 ,也可以下载我的源码(有注释)git clone https://github.com/spring-projects/spring-framework.git配置gradle 编译环境Spring源码是通过gradle编译的,所以要先配置gradle编译环境gradle下载安装 下载地址 ,我本地环境用的 v4.10.2解压安装,安装路径不要出现空格(建议),如图我使用的版本就是4.10.2 觉得下载慢的话,我这里提供了GitEE的原创 2020-05-27 11:14:15 · 227 阅读 · 0 评论 -
Spring IOC 源码解析
Spring IOC 源码解析控制反转(IoC)控制反转(IoC)原理的Spring Framework实现。IoC也称为依赖注入(DI)。这是一个过程,通过这个过程,对象只能通过构造函数参数,工厂方法的参数或在构造或从工厂方法返回后在对象实例上设置的属性来定义它们的依赖关系(即,它们使用的其他对象)。 。然后容器在创建bean时注入这些依赖项。此过程基本上是bean本身的逆(因此名称,控制反...转载 2019-06-14 21:51:14 · 3754 阅读 · 2 评论 -
Spring学习思路和环境准备
Spring学习思路和环境准备我的学习思路装配方式 + 依赖注入设计理念BeanDefintion scope beanClass lazy-init method constructorBeanDefintionMap 注册 BeanFactoryRegistry注解如何解析,如何注册 BeanFactoryPostProcessorbeanFactory.getBean(“user”) singletonObject 单例对象池bean的构建过程 new–属性填充–initbe原创 2020-05-29 15:03:19 · 326 阅读 · 0 评论 -
Redis初识
Redis一、redis的介绍1、什么是NoSql 为了解决高并发、高可扩展(集群)、高可用(不能宕机)、大数据存储问题而产生的数据库解决方案,就是NoSql数据库。 NoSql :全称 not only sql ,非关系型数据库。可以作为关系型数据库的一个很好的补充。不能替代。2、NoSql数据库分类2.1 键值(Key-Value)存储数据库 相关产品: Tokyo Ca...原创 2019-06-26 11:23:02 · 207 阅读 · 0 评论 -
Maven
MavenMaven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且...原创 2019-06-16 13:24:50 · 285 阅读 · 0 评论 -
网站架构演变过程
网站架构演变过程传统架构传统项目分为三层架构,将业务逻辑层、数据库访问层、控制层放入在一个项目中 使用SSH或者SSM技术。优点:适合于个人或者小团队开发,不适合大团队开发。分布式架构根据业务需求进行拆分成N个子系统,多个子系统相互协作才能完成业务流程子系统之间通讯使用RPC远程通讯技术。优点:1.把模块拆分,使用接口通信,降低模块之间的耦合度。2.把项目拆分成若干个子项目,不同的...原创 2019-06-16 13:41:20 · 104 阅读 · 0 评论 -
RESTful风格化
RESTful Web Service介绍Roy Thomas Fielding博士2000年提出的REST是英文RepresentationalState Transfer的缩写表象化状态转变 或者 表述性状态转移REST是Web服务的一种架构风格使用HTTP、URI等广泛流行的标准和协议轻量级、跨平台、跨语言的架构设计。REST到底是什么?REST是一种设计风格。它不是一...原创 2019-06-16 12:50:12 · 127 阅读 · 0 评论 -
JVM专题二、内存分配与回收算法与垃圾收集器详解
JVM专题二、内存分配与回收算法与垃圾收集器详解JVM虚拟机堆详解学习思路按如下步骤。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3LUqoSu1-1586094408978)(file:///C:\Users\xuchang\AppData\Local\Temp\ksohtml612\wps13.jpg)][外链图片转存失败,源站可能有防盗链机制,建议将...原创 2020-04-06 18:17:35 · 168 阅读 · 0 评论 -
JVM专题一、整体认识JVM以及类加载详解
JVM专题一、整体认识JVM以及类加载详解JVM虚拟机体系构成JVM的体系结构:四大块,类装载子系统(class loader subsystem),执行引擎子系统(Executionengine子系统),垃圾回收系统(gc),运行时数据区(JVM内存)。Java虚拟机产品:Sun HotSpot VM、BEA JRockit VM、IBM J9 VM、Azul VM、Apache Ha...原创 2020-04-04 22:41:02 · 237 阅读 · 0 评论 -
玩转Git
Git1. Git的历史同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。到 2005 年的时候,开发 BitKeeper 的商业公...原创 2019-06-16 09:27:45 · 146 阅读 · 0 评论 -
Docker学习笔记
DockerDocker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。Docker 从 17.03 ...原创 2019-06-14 18:04:06 · 163 阅读 · 0 评论 -
TCP、UDP和HTTP关系
TCP、UDP和HTTP关系的1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。TCP 是基于 T...原创 2019-04-27 21:39:58 · 253 阅读 · 0 评论 -
Http与Https协议规范
HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。HTTP协议的主要特点可概括如下:1.支持客户/服务器模式。...原创 2019-04-27 21:37:14 · 3068 阅读 · 0 评论 -
SpringBoot之数据访问和事务-专题三
SpringBoot之数据访问和事务-专题三四、数据访问4.1、springboot整合使用JdbcTemplate4.1.1 pom文件引入<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</a...原创 2019-06-16 20:59:10 · 108 阅读 · 0 评论 -
基本使用-ElasticSearch
基本使用-ElasticSearch说明:本篇文章主要是通过springboot整合es的基本使用基础,详细了解的可以看我上一篇文章:全文搜索-ElasticSearch有朋友私信我上一篇没有环境搭建方面的,这里给你细说一下。一、ElasticSearch官方文档1.介绍Elasticsearch是一个开源的搜索引擎,建立在一个全文搜索引擎库Apache Lucene™基础之上。 ...原创 2019-06-25 19:51:50 · 701 阅读 · 0 评论 -
Spring 通读官方文档
Spring 通读官方文档这部分参考文档涵盖了Spring Framework绝对不可或缺的所有技术。其中最重要的是Spring Framework的控制反转(IoC)容器。Spring框架的IoC容器的全面处理紧随其后,全面覆盖了Spring的面向方面编程(AOP)技术。Spring Framework有自己的AOP框架,它在概念上易于理解,并且成功地解决了Java企业编程中AOP要求的80...翻译 2019-06-14 21:55:50 · 171 阅读 · 0 评论 -
SpringBoot之缓存-专题五
SpringBoot之缓存-专题五一、JSR-107本文JSR-107部分借鉴JSR107官方文档1、介绍JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一...原创 2019-06-26 11:21:07 · 207 阅读 · 0 评论 -
Spring MVC原理解析
SpringMVCSpring MVC的工作原理①客户端的所有请求都交给前端控制器DispatcherServlet来处理,它会负责调用系统的其他模块来真正处理用户的请求。② DispatcherServlet收到请求后,将根据请求的信息(包括URL、HTTP协议方法、请求头、请求参数、Cookie等)以及HandlerMapping的配置找到处理该请求的Handler(任何一个对象都可以...原创 2019-06-16 13:14:36 · 129 阅读 · 0 评论 -
SpringAOP原理分析
目录Spring核心知识SpringAOP原理AOP编程技术什么是AOP编程AOP底层实现原理AOP编程使用Spring核心知识Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型...原创 2019-06-14 21:46:17 · 31637 阅读 · 9 评论 -
SpringBoot之WEB开发-专题二
SpringBoot之WEB开发-专题二三、Web开发3.1、静态资源访问在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。默认配置Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:/static/public/resources/META-INF/resources举例:我们可以在src/main/resou...原创 2019-06-16 20:56:30 · 117 阅读 · 0 评论 -
SpringBoot之基础入门-专题一
SpringBoot之基础入门-专题一一、Spring介绍1.1、SpringBoot简介在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手,更简单快捷地构建Spring应用!Spring Boot让我们的Spring应用变的更轻量化...原创 2019-06-16 20:57:59 · 114 阅读 · 0 评论 -
全文索引-ElasticSearch
ElasticSearch官方文档Elasticsearch是一个开源的搜索引擎,建立在一个全文搜索引擎库Apache Lucene™基础之上。 Lucene可以说是当下最先进,高性能,全功能的搜索引擎库 - 无论是开源还是私有。但是Lucene仅仅是一个库。为了充分发挥其功能,你需要使用Java并将Lucene直接集成到应用程序中。更糟糕的是,您可能需要获得信息检索学位才能了解其工作原理....原创 2019-06-16 12:48:32 · 202 阅读 · 0 评论 -
Docker-基本使用
Docker-基本使用具体安装步骤请参考阿里云docker安装一、Docker1、介绍:Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhon...原创 2019-06-25 19:50:55 · 318 阅读 · 0 评论 -
SpringBoot之日志记录-专题四
SpringBoot之日志记录-专题四六、日志管理6.1使用log4j记录日志6.1.2新建log4j配置文件文件名称log4j.properties#log4j.rootLogger=CONSOLE,info,error,DEBUGlog4j.rootLogger=info,error,CONSOLE,DEBUGlog4j.appender.CONSOLE=org.apache.l...原创 2019-06-16 20:59:55 · 134 阅读 · 0 评论 -
分布式事务
分布式事务首先想要了解分布式事务,得先了解什么是事务。可以浏览我上面写过的事务的博客Spring事务原理分析-部分一Spring事务原理分析-部分二什么是分布式事务分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需...原创 2019-06-16 00:57:18 · 613 阅读 · 0 评论 -
Spring事务原理分析-部分二
Spring事务原理分析-部分二说明:这是我在蚂蚁课堂学习了余老师Spring手写框架的课程的一些笔记,部分代码代码会用到余老师的课件代码。这不是广告,是我听了之后觉得很好。课堂链接:Spring手写框架手写Spring事务框架编程事务实现概述所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理。管理使用TransactionTemplate或者直接使用底层的...原创 2019-06-16 00:18:22 · 132 阅读 · 0 评论 -
Spring事务原理分析-部分一
Spring事务原理分析-部分一什么事务事务:逻辑上的一组操作,组成这组操作的各个单元,要么全都成功,要么全都失败。事务基本特性⑴ 原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consistency)一致性是指事务必须使数据库从一个一致性状...原创 2019-06-16 00:15:53 · 4591 阅读 · 0 评论 -
LinkedList源码分析和手写
LinkedList和双端链表(队列Queue)一、LinkedList的结构特征public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.SerializableAbstractSequentialList继承于 AbstractSequentialList ,本质上面与继承 Ab原创 2020-09-06 21:11:31 · 165 阅读 · 0 评论 -
ArrayList源码分析和手写
ArrayList一、ArrayList的结构特征ArrayList继承AbstractList和实现RandomAccess、Cloneable、Serializable接口public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.SerializableRandomAccess支持随机访问(基于原创 2020-09-06 21:10:26 · 181 阅读 · 0 评论 -
JAVA基础-网络编程
类 InetAddress此类表示互联网协议 (IP) 地址。IP 地址是 IP 使用的 32 位或 128 位无符号数字,它是一种低级协议,UDP 和 TCP 协议都是在它的基础上构建的。IP 地址的体系结构是由 RFC 790:Assigned Numbers、 RFC 1918:Address Allocation for Private Internets、RFC 2365:A...原创 2019-04-27 21:26:33 · 118 阅读 · 0 评论 -
JAVA基础-多线程
程序、进程、线程程序:由高级语言编写,然后在编译的过程中,被编译器/解释器转译为机器语言,从而得以执行顺序执行时的主要特征包括顺序行,封闭性,可再现性进程:进程是程序的一次执行,该程序可以和其他程序并发执行。是系统进行资源分配和调用的独立单位。每一个进程都有它自己的内存空间和系统资源。进程是由程序、数据和进程控制块组成。线程:是程序的执行单元,执行路径。是程序使用CPU的...原创 2019-04-27 21:18:37 · 467 阅读 · 0 评论 -
JAVA基础-反射机制
什么是JAVA的反射机制Java反射是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static等)、superclass(例如Object)、实现之interfaces(例如Cloneable),也包括fields和methods的所...原创 2019-04-27 21:15:17 · 101 阅读 · 0 评论