- 博客(18)
- 收藏
- 关注
原创 转账系统中的加锁问题怎么优化?异步入账
这种方式对于商户的影响只是入账慢了点,但是不会造成顾客支付失败的场景,而且众所周知,insert的效率比update的效率要高,所以还间接提升了系统的吞吐量和响应速度。
2023-06-11 16:01:33 256
原创 dubbo invoke命令生成工具
公司的dubbo项目需要用到invoke命令在服务器上执行,每次测试接口都要费心写invoke,所以就写了生成invoke命令的工具类。2.复制代码到自己的项目结构中,输入对应的测试类和类对应的方法、参数即可生成到控制台。:依赖fastjson包。
2023-06-11 12:18:07 331
原创 设计模式篇——策略模式
设计模式篇——策略模式一、应用场景1.1 如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。1.2 一个系统需要动态地在几种算法中选择一种。1.3 如果一个对象有很多的行为,如果不用恰当的设计模式,这些行为就只好使用多重的if条件选择语句来实现。二、介绍定义:定义了算法族,分别封装起来,让他们之间可以互相替换,此模式的变化独立于算法的使用者主要解决:在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护
2022-01-06 22:59:13 370
原创 设计模式篇——模板方法模式
设计模式篇——模板方法模式一、应用场景1.1 生活场景1.1.1 把大象放进冰箱需要几步?打开冰箱门 -> 放入大象 -> 关闭冰箱门1.1.2 填写入职登记表 -> 打印简历 -> 复印学历 -> 复印身份证 -> 签订劳动合同 -> 建立花名册 -> 办理工牌 -> 安排工位1.2 代码场景1.2.1 数据库怎么连接?创建连接 -> 拼接sql -> 创建PreparedStatement对象 -> 设置参数 ->
2021-12-27 23:09:00 287
原创 java项目安全性问题
java项目安全性问题一、登录爆破问题:登录无错误限制,可以无限制的错误尝试登录解决思路:增加登录错误计数,达到一定数量就禁止用户登录一定时间二、密码安全问题:用户密码过于简单,容易被破解用户登录、修改密码时用明文传输,可以被抓包工具获取解决思路:用户设置、修改密码的时候对密码强度进行等级判定数据加密,可使用RSA、MD5等加密算法三、跨站脚本攻击(XSS)问题:可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从
2021-03-06 14:12:02 715
原创 最近被问的最多的java面试题——深度进阶挑战
最近被问的最多的java面试题——深度进阶挑战一、JVMJVM内存模型,GC机制和原理GC分哪两种,Minor GC和Full GC有什么区别?什么时候会触发FUll GC?分别采用什么算法?JVM中有几种classloader,为什么会有多种?什么是双亲委派机制? 介绍一些运作过程,双亲委派模型的好处什么情况下我们需要破坏双亲委派模型常见的JVM调优方法有哪些?可以具体到调整那个参数,调成什么值?二、HashMapHashMap内部的数据结构是什么?底层是怎么实现的?HashMap
2021-01-31 20:04:44 290
原创 docker使用教程(初级)
docker使用教程(初级)引言:(百度百科)Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口一般顺序:寻找自己想要的镜像 -> 拉取镜像 -> 使用镜像创建容器 -> 启动容器开始使用。寻找自己想要的镜像(如果知道可以跳过该步骤)找到dockerhub的网址,进入之后搜索框在左上方,搜索自己想要的镜像h
2021-01-06 15:43:26 231
原创 Linux安装Redis
Linux安装Redis官网下载安装包(https://redis.io/)我下载的是目前最新的版本6.09,后面肯定会出新的版本,就下最新版。解压redis安装包。tar -zxvf redis安装包进入解压后的目录可以看到配置文件。安装基本的运行环境yum install gcc-c++gcc -v查看gcc版本信息使用make命令把所有需要的文件自动配置好makemake install确认make安装成功redis的默认安装路径:/usr/lo
2020-12-26 15:28:53 191850 1
原创 SpringAOP是啥,怎么用?
SpringAOP是啥,怎么用?一、面试问题:什么是SpringAOP?SpringAOP的全称是(Aspect Oriented Programming)中文翻译过来是面向切面编程,个人理解:主要意思是我们的传统架构至上而下,后期想要从中间切入写代码添加功能,比如日志、权限、事务等,这时候我们就需要写使用代理模式写,而springaop就是专门把这一块写代码的地方给抽象了出来称为切面,从而解决的代码混乱的问题,它的底层实现也是基于代理模式(动态代理)完成的。二、SpringAOP的应用场景有
2020-12-26 13:46:44 197677
原创 SpringAOP切点表达式
SpringAOP切点表达式切点表达式(aop最难部分)execution(常用)描述力度:描述具体到方法、参数、类型举个栗子:@Pointcut("execution(* com.llds.seek.SeekAspect.*.*(..))")public void s(){}execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) t
2020-12-25 21:18:58 192193
原创 java底层原理---ArrayList源码分析
java底层原理—ArrayList源码分析引言学习底层是为了更好的选择合适数据结构进行开发,这篇是为了讲解ArrayList底层原理的,同时也是总结一下自己的学习成果。太多的文字让人看得眼花缭乱,废话不多说,上图解。这是ArrayList的属性:一、创建ArrayList对象,初始化过程ArrayList<String> list = new ArrayList<>();public ArrayList() { //this.当前数组=默认数组
2020-12-23 11:50:31 191607
原创 SpringCloud集成(整合)Eureka
SpringCloud集成整合Eureka思路:先导入eureka依赖,然后运行环境推荐使用jdk1.8的,然后修改配置文件,然后启动服务进行测试,具体步骤如下所示:一、准备依赖maven方式<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artif
2020-11-03 22:26:47 201252
原创 Nginx是什么?怎么用?(新手入门版)教程
一、Nginx介绍1.1 引言为什么要学习Nginx?问题场景:客户端到底要将请求发送至哪台服务器?如果所有请求都发送到了服务器1,那么其他的服务器貌似都没什么用服务器搭建集群后:服务器搭建集群后,使用Nginx做反向代理服务器1.2 Nginx背景Nginx是由俄罗斯人研发的,应对Rambler的网站,并且2004年发布了第一个版本Nginx的特点:稳定性极强。7*24小时不间断运行。Nginx提供了非常丰富的配置实例。占用内存小,并发能力强能承受5w并
2020-11-01 15:19:25 221600 7
原创 linux安装docker容器(copy就完了)
1、安装环境此处在Centos7进行安装,可以使用以下命令查看CentOS版本lsb_release -a在 CentOS 7安装docker要求系统为64位、系统内核版本为 3.10 以上,可以使用以下命令查看uname -r2、用yum源安装2.1 查看是否已安装docker列表yum list installed | grep docker2.2 安装dockeryum -y install docker-y表示不询问安装,直到安装成功,安装完后再次查看安装列表2.3 启动doc
2020-11-01 15:11:14 58825
原创 springboot(入门后进阶)启动-事件-事件监控-系统参数
Springboot进阶启动springboot的三种方式使用SpringApplication的静态方法run特点:使用这种方式,配置属性使用外部application.properties属性文件进行配置SpringApplication.run(SpringbootAppliction.class,args)创建SpringApplication对象,调用其run方法特点:可以编程式配置属性SpringApplication spring=new SpringAppl
2020-10-31 17:32:54 219306
原创 SpringBoot是什么?干嘛用的?(新手入门篇)
SpringBoot是干哈的介绍:springboot是由Pivotal团队提供的全新框架。spring的出现是为了解决企业级开发应用的复杂性,spring的通过注册bean的方式来管理类,但是随着业务的增加,使用xml配置bean的方式也显得相当繁琐,所以springboot就是为了解决spring配置繁琐的问题而诞生的,并且近几年来非常流行开启我的第一个Hello SpringBoot!开启方式根据https://start.spring.io网址创建一个springboot项目
2020-10-31 17:30:46 250751 9
原创 SpringBoot——自动装配原理(干货)
SpringBoot——自动装配原理(干货)在编写SpringBoot项目时,@SpringBootApplication是最常见的注解了,我们可以看一下源代码:这里面包含了@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan,此处@ComponentScan由于没有`指定扫描包,因此它默认扫描的是与该类同级的类或者同级包下的所有类,另外@SpringBootConfiguration,通过源码得知它是一个@Conf
2020-10-31 16:26:39 226525 8
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人