- 博客(52)
- 资源 (2)
- 收藏
- 关注
原创 CompletableFuture中使用ArrayList添加元素并发线程安全问题
CompletableFuture中操作ArrayList添加元素缺失
2024-03-07 15:55:27
504
原创 idea中回退远程push过的提交(详细图文操作)
在idea中,进行commit提交时,会自动帮我们执行add 命令,所以我们平时感知不到暂存区的存在,但其实由工作区commit提交到本地仓库,中间是需要经过暂存区的。每次执行git commit 时,会把暂存区的内容存储到本地仓库,同时创建一个commit,记录当前修改并把当前HEAD执行最新的提交。要把已经push到远程的提交回退到之前的某个提交,需要执行两个reset命令,一次hard,一次soft。每次执行git add 或 git delete 命令时,就是把工作区已经保存的内容,存储到暂存区。
2023-07-21 10:36:08
4908
1
原创 springsecurity 获取header中文乱码“The request was rejected because the header value “äº?é?ªé£?“ is no“问题解决
The request was rejected because the header value "äº?é?ªé£?" is not allowed问题解决
2022-08-08 17:07:31
6273
6
原创 nohup命令不产生nohup.log日志文件
背景用jar包方式启动springboot项目一开始使用nohup java -jar xxx.jar &方式后台启动,但是会产生nohup.log日志。时间长了nohup.log日志越来越大,而且本身配置了logback滚动日志,不需要nohup.log日志。最终使用如下命令解决。解决方法nohup java -jar -Xms1024m -Xmx1024m servicemarket-0.0.1-SNAPSHOT.jar --server.port=30001 --spring.profi
2021-12-22 15:49:44
4531
原创 解决idea格式化后(ctrl+alt+L)类(属性)注解格式化后类(属性)和注解在同一行
解决ctrl+alt+L格式化后注解和类在同一行
2021-12-07 19:06:03
2112
2
原创 mysql并发更新丢失问题解决方案
mysql并发更新丢失问题解决方案问题展示ssm项目主要代码idea多线程debug模拟并发更新解决方案悲观锁意向共享锁意向排它锁乐观锁问题展示搭建了一个简单springboot的ssm项目,通过idea提供的多线程debug模式模拟并发更新丢失数据问题。业务是根据name查询出来total,然后再根据name更新total+1ssm项目主要代码controller代码@RestControllerpublic class UserController { @Autowired
2021-06-22 20:13:58
1172
1
原创 (二)手写spring AOP框架
目录前言AOP是什么AOP框架要做什么AOP技术元素分析Advice设计插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入前言本篇基于(一)手写spring IOC容器手写AOP框架。采用问答形式,逐步梳理手写aop过程。AOP是什么Aspect Oriented Programmin
2021-01-20 10:36:27
482
原创 Spring源码分析系列——循环依赖解析(附详尽流程图)
目录前言测试代码准备执行流程分析DefaultListableBeanFactory.PreInstantiateSingletons()解析第一个实体类student的getBean()doGetBean()方法分析DefaultSingletonBeanRegistry.getSingleton(beanName)方法分析DefaultSingletonBeanRegistry.getSingleton(beanName,ObjectFactory)重载方法分析createBean()方法分析popul
2021-01-08 14:34:22
891
1
原创 Spring源码分析系列——bean创建过程分析(四)——实现FactoryBean接口创建bean
目录spring创建bean的方式测试代码准备preInstantiateSingletons()方法分析getBean(FACTORY_BEAN_PREFIX + beanName)创建FactoryBean分析getBean(beanName)分析,创建实际bean总结spring创建bean的方式构造方法无参构造方法有参构造方法工厂方法静态工厂方法实例工厂方法实现FactoryBean接口前三篇《Spring源码分析系列——bean创建过程分析(一)——默认无参构
2021-01-05 18:01:06
281
原创 Spring源码分析系列——bean创建过程分析(三)——工厂方法创建bean
前言spring创建bean的方式测试代码准备createBeanInstance()方法分析instantiateUsingFactoryMethod()方法分析总结spring创建bean的方式构造方法无参构造方法有参构造方法工厂方法静态工厂方法实例工厂方法实现FactoryBean接口前两篇《Spring源码分析系列——bean创建过程分析(一)——默认无参构造方法创建bean》和《Spring源码分析系列——bean创建过程分析(二)——有参构造方法创建bean
2020-12-25 18:53:07
327
原创 Spring源码分析系列——bean创建过程分析(二)——有参构造方法创建bean
前言spring创建bean的方式createBeanInstance()方法分析autowireConstructor()方法分析构造方法参数赋值createArgumentArray()方法解析resolveAutowiredArgument()方法实现参数自动装配DefaultListableBeanFactory里resolveDependency()方法解析DefaultListableBeanFactory里doResolveDependency()方法解析总结spring创建bean的方式
2020-12-24 18:56:32
972
原创 Spring源码分析系列——bean创建过程分析(一)——默认无参构造方法创建bean
前言spring创建bean的方式从单例bean创建入手getBean()方法解析doGetBean()方法解析createBean()方法解析doCreateBean()方法解析createBeanInstance()方法解析instantiateBean()方法解析instantiate()方法解析instantiateClass()方法解析总结spring创建bean的方式有很多种,其中最简单的是无参构造方法创建bean的方式,本文采用静态代码和动态debug实例分析,也为接下来分析更加复杂的创建方
2020-12-18 15:11:28
680
原创 Spring源码分析系列——xml配置非默认元素<context:annotation-config/> 和<context:component-scan/>是如何让注解生效的?
目录结构分析方法源码分析解析xml标签解析自定义(非默认)标签功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入分析方法在之前的系列文章《Spring源码分析系列----ClassPathXmlApplicationContext
2020-12-16 17:09:49
325
2
原创 Spring源码分析系列——AnnotationConfigApplicationContext(String... basePackages)扫描加载注解bean
目录结构分析方法找到具体beanFactory,确定debug断点位置功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入分析方法上一篇分析ClassPathXmlApplicationContext加载xml过程采用debug方式
2020-12-03 17:33:25
639
原创 Spring源码分析系列----ClassPathXmlApplicationContext加载xml中bean定义注册容器的执行过程分析
本篇分析经典ClassPathXmlApplicationContext加载指定xml中bean定义注册到BeanFactory的执行过程分析,通过debug方式分析spring调用栈。确定beanfactory是具体哪个实现 我们知道applicationContext是用外观模式代理内部持有的BeanFactory,那具体是创建的哪个BeanFactory实现对象呢?来分析一下,看一下ApplicationContext的继承体系,如图1图1 通过Application...
2020-11-26 19:15:43
721
原创 mysql线上慢日志查询
配置线上mysql数据库配置文件my.cnf重启mysql Centos7 的mariadb重启命令是 systemctl restart mariadb.service安装工具pt-query-degist查看生成的慢sql日志详细步骤见安装文档 附件使用pt-query-degist常用参数 since:查询开始时间 until:查询结束时间 limit:指定显示的慢sql前多少条(默认显示按 照某sql总执行时间从大到小排序前5条) 附件地址:...
2020-11-16 16:48:22
109
原创 Spring源码分析系列——容器核心扩展接口beanFactoryPostProcessor的执行解析
本文详细解析Spring源码中对核心扩展BeanFactoryPostProcessor的源码实现,及方法中while(reiterate)循环的解读
2020-07-17 16:12:23
228
1
原创 (一)手写spring IOC容器
本文用问答形式引导读者思考,以求理解spring ioc容器的设计思想目录IOC分析IOC是什么?带来什么好处?做什么工作?是否是工厂模式的实例?IOC设计实现IOC容器的工作?bean是什么?它应该具备什么行为、功能?这个getBean()方法是否需要参数?需要几个参数?什么类型的参数?getBean()方法返回值应该是什么类型?设计bean工厂接口如何告诉他创建Bean?定义一个bean定义注册接口接口中要定义什么方法?注册的bean定义用什么区分
2020-07-08 09:22:21
263
原创 Mysql数据库的隔离级别的底层实现与锁的关系
一、概念 脏读:指读到了其他事务未提交的数据。 不可重复读:读到了其他事务已提交的数据(其他事务对该条数据进行了update操作这种情况)。 幻读:在一个事务中,两次同样的select操作的结果,row数不一致。 不可重复读和幻读都是读到了其他事务已提交的数据,但是针对的点不一样, 不可重复读是对update ...
2020-04-15 11:43:39
387
原创 基于spring注解@cacheable等使用redis缓存
搭建步骤pom文件引入spring-data-redis依赖。 <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <ver...
2020-01-17 11:03:45
2136
原创 学习《linux就该这么学》走过的坑
最近在学《linux就该这么学》这本书,这本书写的还是很不错的,推荐想系统学习linux的同学看下。但是在学习的过程中也遇到了不少坑,记录下来,给自己也给大家提个醒。不定时更新。一、配置网络 书中在安装RHEL7教学中说要配置虚拟机网络模式为“仅主机网络”,然后在vim命令学习章节教我们配置网络上网。之前的步骤比较简单,就不多说了,最后一步是执行命令“systemctl rest...
2019-08-08 15:06:26
228
原创 手写一个简单的线程池(未完待续)
根据jdk自带的线程池实现一个简单的线程池,自己练手用,方便理解线程池工作原理。import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.ArrayList;import java.util.List;public class My...
2019-07-05 11:24:28
177
原创 单点登录——用户中心大致流程
客户端需要登录后才能执行的操作,在拦截器Interceptor中设置。第一次访问客户端拦截器(拦截所有登录后才能做的操作,目录规划时要规划好,/back**),没有token,跳转到用户中心服务器(response.sendRedirect(url)),(url中带着returnUrl,用来在用户中心登录成功后跳转回客户端正在访问的页面),登录成功后,生产token,并且将token追加到retu
2017-08-05 21:47:42
3697
原创 用Nginx和FTP协议上传图片(文件)时注意点
用Nginx和FTP协议上传图片(文件)时,要在同一台服务器上装Nginx和vsftpd,他俩操作的目录必须设置为同一个,分别在nginx.conf和vsftpd.conf里设置操作目录,然后用ftp协议上传,用nginx访问。
2017-08-05 21:46:46
677
原创 Integer.valueOf()和Integer.parseInt()区别
Integer.valueOf()和Integer.parseInt();都可以传String类型的数字如“123456”,(Integer.valueOf()还可以传int参数,将int值变为Integer类型),不同的是Integer.valueOf()返回类型是Integer包装类,而Integer.parseInt()返回类型是int数值。如果返回值用int接收,两者没有区别,但是如果返回
2017-08-05 21:45:37
624
线上慢查询日志文档及命令
2020-11-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人