摘要: (spring事务) Spring事务 spring声明式事务让我们从复杂的事务处理中得以脱身,我们可以不再去关注获得、关闭连接、事务提交、和回滚操作;简单来说事务可以做到在发生异常时进行回滚。 事务自定义标签 自定义标签 spring事务的开关配置是:<tx:annotation-driven/> 阅读全文
posted @ 2021-06-19 17:21 bokerr 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 目录一、大话AOP1.AOP的概念2.必要的准备工作什么是代理模式?3.大话AOP那么AOP 具体是什么呢?实现AOP的方式二、动态AOP自定义标签1、JDK动态代理2、CGLIB 代理三、创建AOP代理1.获取所有增强器2.寻找匹配的增强器3.创建代理四、创建AOP静态代理1.自定义标签2.织入结 阅读全文
posted @ 2021-06-19 17:19 bokerr 阅读(62) 评论(0) 推荐(0) 编辑
摘要: (Spring源码之springMVC) web.xml 它的作用是配置初始化信息,如web页面、servlet、servlet-mapping、filter、listener、启动加载级别等。 SpringMVC 通过servlet拦截所有的URL来达到控制的目的,所以它必须要有web.xml 比 阅读全文
posted @ 2021-06-19 17:16 bokerr 阅读(118) 评论(0) 推荐(0) 编辑
摘要: (容器的功能拓展) PS * 本文代码基本为伪代码,注释为个人理解,水平有限,如有谬误,感谢指正。 关于spring的容器,除了BeanFactory以及它的默认实现类XmlBeanFactory之外。 Spring还提供了 ApplicationContext , 它用于对 BeanFactory 阅读全文
posted @ 2021-06-19 17:15 bokerr 阅读(48) 评论(0) 推荐(0) 编辑
摘要: (spring 源码阅读 -- bean 的加载) 本文代码入口: \spring-framework-5.0.x\spring-beans\src\main\java\org\springframework\beans\factory\support\AbstractBeanFactory.get 阅读全文
posted @ 2021-06-19 17:08 bokerr 阅读(74) 评论(0) 推荐(0) 编辑
摘要: (Spring源码中用到的设计模式) 文中代码多是用于解释的伪代码,类图排版因为工具原因没有细细打磨,凑合用了。 耗时两周研究了这些设计模式,个人总结一下学习设计模式应该注意这些东西: 相关的OO(面向对象) 设计原则 首先搞清楚该模式的应用场景这非常重要 搞清楚类似设计模式的核心差异,个人认为这个 阅读全文
posted @ 2021-06-19 16:57 bokerr 阅读(94) 评论(0) 推荐(0) 编辑
摘要: (记录一次JVM调优实战) 一、问题分析思路 1.考虑一个问题现象,系统刚启动在访问量比较小的时候运行流畅,随着访问量提高,开始卡顿; 2.可以先排查数据库问题,例如Oracle可以检查临时表空间,慢sql统计,索引等等因素,如果依然无法解决; 3.最终再考虑JVM调优,正常情况下是不需要JVM调优 阅读全文
posted @ 2021-06-19 15:31 bokerr 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 目录概述一、内存模型物理机内存模型Java内存模型Java内存模型中有如下的规定:操作二、Volatile变量volatile修改变量后保证所有线程对其可见性volatile禁止指令重排序Java内存模型关于volatile变量的特殊规则及其意义 概述 今天的主角是volatile变量,在讲它之前我 阅读全文
posted @ 2021-06-19 15:30 bokerr 阅读(117) 评论(0) 推荐(0) 编辑
摘要: (调优案例以及策略:笔记) 一、操作文档类功能,大量大对象直接进入老年代 问题现象 操作文档类功能,大量大对象直接进入老年代,没有在Minor GC时被清理,导致老年代迅速消耗殆尽频繁进行Full GC,在服务器内存较大的情况下,Full GC会造成长时间停顿。 解决方法 通过单一Java虚拟机管理 阅读全文
posted @ 2021-06-19 15:23 bokerr 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 目录问题排查问题经过了如下的过程:排除是否数据库卡顿造成任务管理器与客户沟通至此开始通过JVM排查问题:JVM参数介绍第一次Full GC第二次Full GC截图第三次Full GC 截图直至开始出现异常的Full GC如下是第6次Full GC,这次Full GC实际耗时1.94秒,异常它来了。第 阅读全文
posted @ 2021-06-19 15:19 bokerr 阅读(208) 评论(1) 推荐(0) 编辑
摘要: (调优工具、指令) JVM 调优的概念 调优的前提是发现问题,然后通过工具定位问题并实地分析问题,最后根据问题现象选用最合适的策略优化 / 解决 问题;JVM调优的工具很多,有jdk自带的工具,例如:jvisualvm、jconsole;也有第三方的:eclipse附带的内存分析工具MAT、专业分析 阅读全文
posted @ 2021-06-19 15:16 bokerr 阅读(109) 评论(0) 推荐(0) 编辑
摘要: @目录1、什么是类的加载2、类加载的过程加载连接验证文件格式验证元数据验证字节码验证符号引用验证准备解析:类或接口的解析字段解析类方法解析接口方法解析初始化结束生命周期3、类加载器类与类的加载器类加载器双亲委派模型双亲委派机制JVM类加载机制4、类的加载5、自定义类加载器 1、什么是类的加载 Jav 阅读全文
posted @ 2021-06-19 15:15 bokerr 阅读(59) 评论(0) 推荐(0) 编辑
摘要: @目录一、概述二、判断对象是否需要被回收方式1.引用计数法:2.可达性分析法:三、垃圾收集算法1.分代收集理论基础2.标记-清除算法3.复制-收集算法4.标记-压缩(整理)算法5.分代收集四、垃圾收集器1.Serial 收集器2.ParNew 收集器3.Parallel Scavenge 收集器4. 阅读全文
posted @ 2021-06-19 15:14 bokerr 阅读(102) 评论(0) 推荐(0) 编辑
摘要: ​ 1、程序计数器(Program Counter Register) 线程独有,每个线程都有自己的计数器;由于CPU的任意时刻只能执行所有线程中的一条,所以需要使用程序计数器来支持JVM的并发;另外字节码解释器读取下一行指令、分支、循环、跳转、异常处理等等逻辑都依赖于程序计数器。程序计数器是JVM 阅读全文
posted @ 2021-06-19 15:13 bokerr 阅读(320) 评论(0) 推荐(0) 编辑