- 博客(31)
- 收藏
- 关注
原创 Spring切面式事务源码跟踪
spring中如果启动了事务,在执行方法的会进入下面的方法org.springframework.transaction.interceptor.TransactionAspectSupport#invokeWithinTransaction获取事务配置管理器TransactionAttributeSource tas = getTransactionAttributeSource();获取事务配置类的实例,TransactionAttributeSource接口只包含一个方法即Tra.
2022-02-10 16:47:21
599
原创 知识梳理-全
专业基石数据结构数组栈队列链表树散列表堆图算法思想算法基础概念排序算法查找算法递归算法网络知识网络分层TCPHTTPIPDNS设计模式单例模式策略模式代理模式观察者模式工厂模式装饰模式适配器模式模版模式Java基础基础知识java不知道的事java基础知识数据结构listArrayListVectorLinkedListsetHashSetLinkedHashSetTreeSetmap
2022-02-08 16:56:26
1703
原创 算法基础概念
时间复杂度时间复杂度函数T(n) 时间和操作次数的函数渐进时间复杂度函数 O(n) :若存在函数 f(n),使得当n趋近于无穷大时,T(n)/ f(n)的极限值为不等于零的常数,则称 f(n)是T(n)的同数量级函数。记作 T(n)= O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。空间复杂度:即程序中变量的个数...
2022-02-08 16:43:52
288
原创 java基础知识
java数据类型java分为两种数据类型:1.基本数据类型2.引用数据类型:如,类,接口,数组基本数据类型:8种byte 1个字节short 2个字节int 4个字节long 8个字节float 4个字节double 8个字节char 2个字节boolean 1或4个字节,boolean类型较特殊,根据jvm虚拟机的处理方式不同大小可能不同,参考 添加链接描述String为什么是不可变的首先String类是final的,意味着String不可以被继承,内部的实现不能被修改
2022-02-08 16:36:00
80
原创 事务不提交问题解决思路
开发中偶尔会遇到sql已经执行,日志都打印出来了但是数据并没有任何变化,此时多半为事务没有提交,下面记录一下最近一段时间遇到的事务没有提交的问题排查思路,下文默认可以本地debu复现问题,如果是无法debug的环境只是增加了获取相应数据的复杂度(无法debug),以及查看相应数据的复杂的(需要打日志才看得到)等等,原理并没有变化首先查看执行sql的方法是否已经开启了事务有时可能会因为事务切面没有切到,或者没有打注解等等原因导致事务没有生效,此时可以在执行sql的方法处打断点,然后执行Transac
2022-02-08 15:05:10
5244
原创 spring+mybatis提交sql和执行事务的connection查看
org.springframework.jdbc.datasource.DataSourceTransactionManager#doCommit 方法打断点即可看到connectionorg.apache.ibatis.executor.SimpleExecutor#prepareStatement 可以看到SimpleExecutor模式mybatis 的connection,其他模式类似
2021-12-31 15:40:15
913
原创 查找bean的注册处
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#createBeanInstanceprotected BeanWrapper createBeanInstance(String beanName, RootBeanDefinition mbd, @Nullable Object[] args) 在上述方法中打断点,然后查看mbd入参的resource属性,里面会指出当前bean的注册处信息.
2021-12-27 17:17:03
649
原创 如何打印日志判断spring的某个方法当前事务的dataSource和mybatis的dataSource是否一致
以mybatis为例 final InvocationHandler invocationHandler = Proxy.getInvocationHandler(mapper); final MapperProxy mapperProxy = (MapperProxy) invocationHandler;
2021-12-23 15:41:57
407
原创 docker常用命令
创建网络docker network create -d bridge --subnet 10.1.9.0/24 --gateway 10.1.9.1 net01
2021-04-12 14:40:38
85
原创 java常见面试题
java并发 锁 synchronized作用于静态方法和非静态方法的区别 非静态方法: 给对象加锁(可以理解为给这个对象的内存上锁,注意 只是这块内存,其他同类对象都会有各自的内存锁),这时候在其他一个以上线程中执行该对象的这个同步方法(注意:是该对象)就会产生互斥 静态方法: 相当于在类上加锁(*.class 位于代码区,静态方法位于静态区域,这个类产生的对象公用这个静态方法,所以这块内存,N个对象来竞争), 这时候,只要是这个类产生的对象,在..
2021-03-18 15:27:30
115
1
原创 如果解决centos 磁盘满的问题
查看挂载点,看是哪个目录满了df -hcd进入该目录,然后查看每个子目录的大小du -sh *找到大目录删除即可,别忘记确认文件有用没
2021-02-04 12:07:16
337
原创 性能问题排查常用工具
查看服务器不同状态的连接netstat -n | awk '/^tcp/ {++y[$NF]} END {for(w in y) print w, y[w]}'查看服务器的连接数netstat -nat|grep "tcp"|awk ' {print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rnarthas 火焰图curl -O https://arthas.aliyun.com/arthas-boot.jarjava -jar arthas-
2020-12-09 17:39:51
151
原创 mysql8创建用户
mysql8以后创建用户和权限管理的命令略有修改创建用户create user 'test1'@'localhost' identified by '‘密码';2、修改密码alter user 'test1'@'localhost' identified by '新密码';3、授权grant all privileges on *.* to 'test1'@'localhost' with grant option;4、查看权限show grants for 'test1'@'lo
2020-11-10 14:08:01
214
转载 MYSQL8创建用户和授权
http://mbiscuit.com/archives/m-y-s-q-l-8-chuang-jian-yong-hu-he-shou-quan
2020-10-19 17:41:55
148
原创 我的知识梳理-mybatis-spring源码阅读(1)
以下一个单元测试,普通的mybatis里的mapper查询package club.wang.utils.cases.repository;import club.wang.utils.BaseTest;import club.wang.utils.cases.pojo.Cases;import com.alibaba.fastjson.JSON;import org.junit.Te...
2020-04-03 15:51:41
201
转载 Alfred - Script Filter JSON 字段说明
http://www.saitjr.com/others/alfred-script-filter-json-format.html
2020-02-14 21:04:33
591
原创 我的知识梳理-字符串拼接
以下内容基于jdk1.8测试代码public static void main(String[] args) { String a = "a"; for (int i = 0; i < 100; i++) { a += "a"; } }字节码public static main([Ljava...
2019-12-26 10:48:27
234
原创 我的知识梳理-IO
大致分类,其中xxxStream为字节流,xxxReader/Write为字符流 文件(file):FileInputStream、FileOutputStream、FileReader、FileWriter 数组([]): 字节数组(byte[]):ByteArrayInputStream、ByteArrayOutputStream 字符数组(char[]):CharArrayR...
2019-12-23 16:05:42
130
1
原创 我的知识梳理-递归算法
一种计算过程,如果其中每一步都要用到前一步或前几步的结果,称为递归的。用递归过程定义的函数,称为递归函数,例如连加、连乘及阶乘等。凡是递归的函数,都是可计算的,即能行的。 递归只注重结果,只定义“归”的条件,即所谓的结束递归的条件,和每次执行操作要做的事情;并不注重实际进行操作的次数,实际上不真正执行很多时候也不知道要执行多少次。递归和数学归纳法有点类似,很多时候可以利用数学归纳法来设计递归的程...
2019-12-10 16:35:23
174
原创 我的知识梳理-树
树状图是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树; 相关术语 树的结点(node):包含一个数据元素及若干指向子...
2019-12-10 15:04:14
226
原创 我的知识梳理-栈
栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作。 栈的特点是:先进后出,或者说是后进先出,从栈顶放入元素的操作叫入栈,取出元素叫出栈。 常见面试题 使用栈进行后缀表达式运算 对栈的元素进行排序 判断表达式是否括号平衡 ...
2019-12-05 14:34:33
83
原创 我的知识梳理-数组
int[] data = new int[100];data[0] = 1;int[][] data2 = new int[100][100]; data[0][0] = 1;数组是最简单、也是使用最广泛的数据结构。栈、队列等其他数据结构均由数组演变而来。 数组分为1维数组和多维数组 数组是定长的,如果取数组时超出了长度,则会报错 数组常见面试题 寻找数组中第二小的元素 p...
2019-12-05 14:33:11
118
转载 彻底删除gitlab
https://yq.aliyun.com/articles/114619重装后如果卡住执行sudo systemctl restart gitlab-runsvdir
2019-10-31 17:11:56
250
原创 服务可以直接访问,但是通过nginx访问 502
项目中服务使用nginx反向代理,直接访问服务的端口是没问题的,但是用nginx访问就502,配置都是正确的,看了error.log发现以下报错[error] 5208#5208: *6 connect() failed (111: Connection refused) while connecting to upstream, client: 网上找了半天最后发现是一个linux的安...
2019-09-16 16:18:38
4970
原创 我的知识梳理-stream
jdk8引入了lambda表达式和stream,用起来还是很舒服的,记录一下常见的几种用法1、forEachpackage club.wxl;import java.util.ArrayList;import java.util.HashMap;import java.util.stream.IntStream;public class ForEachMain { ...
2019-09-06 19:34:59
115
原创 切面之引入
偶尔学到了springAOP中的引入,着实强大,记录一下吧我们假设现在有一个UserService首先有个User类,很简单package com.wxl.spring.declare.parents;public class User { private String name; private String password;}...
2017-05-10 16:21:57
262
原创 初尝设计模式-1 装饰模式
装饰模式(Decorator)动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。首先有那么一个裸睡的人,早上起来准备穿衣服了,如下,show方法显示他穿衣服的步骤package com.wxl.design.decorator;/** * 个人 */public abstract class Person { /** * ...
2017-04-10 14:52:15
246
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人