自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 【JVM调优】JVM调优工具之Arthas

JVM调优工具Arthas使用说明

2023-07-09 17:59:03 381

原创 Mybatis使用@DS配置多数据源

Mybatis使用@DS配置多数据源

2022-09-11 10:17:10 4004

原创 【代码优化与重构技巧】切面获取返回值并发送mq

使用切面时获取返回值,并发送mq

2022-08-19 16:24:15 1200

原创 【代码优化与重构技巧】运用注解实现重构后新老代码的切换

重构优化代码,做新老代码的切换

2022-08-19 16:07:30 396

原创 【代码优化与重构技巧】使用@Retryable增加重试机制

代码重构与优化,增加重试机制

2022-06-24 22:15:07 472

原创 ReentrantLock源码分析

ReentrantLock源码分析

2022-05-22 17:07:38 327

原创 【性能优化】使用Guava实现查库加载到本地缓存,并支持实时刷新

【性能优化】使用Guava实现查库加载到本地缓存,并支持实时刷新

2022-05-14 22:46:15 1003

原创 ElasticSearch查询常见DSL语句汇总

ES常见查询语句集锦

2022-03-30 22:59:12 4196

原创 【性能优化】使用多线程处理发送数据

使用多线程提升处理的速度

2022-03-25 22:43:34 696

原创 对架构演变的思考

架构演变的过程中,合与拆在不断的演变,服务在不断的“生与死”,这就和城市的发展一样,

2022-03-19 11:43:12 2363

原创 云服务器搭建redis后,出现攻击外部ip行为

云服务器搭建redis后,出现攻击外部ip行为根据异常特征初步判断主机疑似因redis未授权访问漏洞被入侵,由于主机入侵较为严重,系统已不可信任,为防止黑客在主机内留有其他后门,建议备份业务数据,择机重装系统,并对redis进行安全加固。

2022-03-06 10:06:17 1634 1

原创 redis指定数据库

redis指定数据库的方法

2022-03-06 10:00:50 4295

转载 搭建云服务器之安装mysql5.7及常见问题集锦

centos8安装mysql,经过多次安装实践,此教程可以正常安装

2021-12-19 19:19:41 233

原创 【MySQL系列】一条查询sql如何执行

SQL的执行顺序是怎样的?sql语句顺序:select distinct … from table where … group by …having … order by … limit …执行顺序:①from ②where ③group by ④having ⑤select ⑥distinct ⑦order by ⑧limit执行顺序:从表中查询数据,先经过where进行筛选出有价值的数据,对这些有价值的数据进行分组,分组之后进行having进一步筛选。select进行列筛选,查询出

2021-09-27 20:04:07 299

原创 【MySQL系列】MySQL事务知识点

事务的特性ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性)Atomicity:原子性,执行的最小单元,不可拆分。Consistency:一致性,事务在执行DML操作时,要么成功,要么失败。Isolation:隔离性。两个事务执行具有隔离性。Durability:持久性。事务执行以后,对数据库的影响是持久的。mysql事务常用的命令开启事务:两个都可以begin;start transaction;

2021-09-23 20:19:35 857 2

原创 【MySQL系列】MySQL基础知识集锦

September 14, 2021SQL分类1.数据查询语言(DQL)数据查询语言(Data Query Language, DQL)是SQL语言中,负责进行数据查询而不会对数据本身进行修改的语句,这是最基本的SQL语句。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有FROM,WHERE,GROUP BY,HAVING和ORDER BY。这些DQL保留字常与其他类型的SQL语句一起使用。2.数据定义语言(DDL)数据定义语言 (Data Definition

2021-09-23 13:21:23 203

原创 Mybatis使用自定义注解动态配置多数据源

需求说明目前在项目中有多个数据源,需要多个配置。有好几种办法来配置,比如:jdbcTemplate@DS自定义注解下面说明用自定义注解来添加切换多个数据源。pom的依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.22</versio

2021-09-08 21:33:21 1354

原创 为什么开源项目的人赚钱很少,反而是后来应用者赚了很多钱?

曾经看到一个非常有意思的话题:为什么开源项目的人赚钱很少,反而是后来应用者赚了很多钱?就拿计算机发展来说:首先新的技术和产品在开始商业化就非常困难。毕竟创造出来的人是从0到1的过程,困难重重。首先就要提升产品和技术的影响力,开源无疑是一个非常好的办法,这能迅速让更多人了解到它。而真正达到一定规模到商业化往往需要漫长的过程。其次,一项技术的发展真的是九死一生。比如大家都知道大名鼎鼎的C语言,却很少人知道在C语言之前还有A语言和B语言。C语言以后也有很多语言,技术一直在更新迭代,不断有新的,也就会不

2021-08-26 21:13:07 530 1

原创 【代码优化与重构技巧】学会合并和持续更新代码

前言上一篇写的是【学会拆解】,这篇就写【学会合并和持续更新代码】。问题点同事离职前交接的代码,除了前面提到的代码除类太大、业务大块逻辑写到一个方法中之外。还有几个问题:重复性的冗余代码太多,很多复制粘贴的内容,复用性非常低;很多没用到的代码和配置,还有很多新老兼容留下的开关。已经不清楚哪个开关开着,要调用哪个系统;一个大的工程项目拆分太细,调用链太长。在排查问题时牵扯的项目太多,需要排查多个项目甚至涉及多人,排查和沟通成本太高;学会合并关键在于梳理清楚上下游调用关系,提取出关键内容。如

2021-08-20 22:57:52 468

原创 【代码优化与重构技巧】学会拆解

前言上个月一同事离职交接给我一个项目。那个项目因为涉及到不同操作码要做不同的业务处理,就把代码所有的操作码业务大块逻辑写到一个方法中,中间不同的就用if/else做判断。当我看到代码的时候,梳理业务逻辑梳理不清楚。因为判断太多,还要认真的区分哪个操作码进入哪个判断里面。这种代码看完以后会一头雾水。学会拆解问题看完整个项目后总结了几个典型的问题:这个主模块逻辑的代码将近2000行,妥妥的一个大类。另一个方法可能超过200行。拼凑功能,将所有业务逻辑写到一块。代码太长且难以理解,并在后续排查问题

2021-08-19 09:17:19 477

原创 【操作系统】操作系统的中断与异常、系统调用

中断和异常定义中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。中断是为了实现多道程序并发引入的技术。当中断发生时,CPU从用户态进入核心态。发生了中断,就意味着需要操作系统介入工作。因为操作系统中的进程切换、分配I/O设备等需要使用特权指令,故CPU要从用户态转为核心态。当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理。对于不同的中断,不同的操作系统会进行不同的处

2021-07-25 14:39:57 2233

原创 【操作系统】操作系统基础知识:定义、发展历史和运行机制

OS的发展与分类手工操作阶段纸带打孔机缺点用户独占全机、人机速度矛盾导致使用效率很低批处理阶段单道批处理系统原理脱机输入/输出技术(用磁带完成),并监督程序负责控制作业的输入、输出缺点内存中仅有一道程序运行,只有该程序运行结束后才能调用下一道程序CPU有大量的时间在空闲等待I/O完成,资源利用率很低多道批处理系统原理每次往内存中输入多道程序优点多道程序并发执行,共享计算机资源。资源大幅度提升CPU和其他资源保持忙绿的阶段,吞吐量变大缺点用户响应时间长没有人机交互

2021-07-24 22:08:38 266

原创 【计算机基础】-2万字总结《计算机速成课》全集笔记

前言视频链接地址:【【计算机科学速成课】[40集全/精校] - Crash Course Computer Science-哔哩哔哩】https://b23.tv/a33Kwq视频的意义能看到各大名鼎鼎的人物悉数登场,也能看到其他幕后的人物的努力。可以看到一个技术的发展需要人类通力合作,用人类的智慧结晶才造就了如今的计算机世界。快速了解计算机的发展历史和相关技术可以看到计算机演进过程中“不断抽象化”的思想和技术应用1.计算机早期历史发展历史算盘 → 步进计算器→ 差分机 → 分析机

2021-07-22 21:15:11 8892

原创 【计算机组成原理】指令系统

指令系统存储程序计算机:程序由指令构成;程序功能通过指令序列描述;指令序列在存储器中顺序存放;顺序执行指令用PC指示当前被执行的指令;从存储器中读出指令执行;PC指向下一条指令;指令基础程序是由一系列的指令组成。指令是计算机运行中的最小的功能单元。指挥计算机硬件运行的命令,是由多个二进制位组成的位串,是计算机硬件可以直接识别和执行的信息体。指令中应指明所完成的操作,并明确操作对象。指令系统层处在硬件系统和软件系统之间,是硬软之间的接口部分,对两部分都有重要影响。硬件系统用于

2021-07-14 09:02:36 1538 1

原创 【书中自有黄金屋】《重构-改善既有代码的设计》读书笔记

前言为何阅读这本书阅读这本书的初心在于,半年多的时间里一直在重构项目代码。阅读了不少人移交过来的代码,项目代码整体看下来,就会发现代码的阅读起来非常费劲,并且复用性和拓展性都很差,另外代码逻辑上太绕让人费解。看这样的代码,简直内心在奔腾。重构时,就会一边骂着一边改着,这种改造简直就是挑战人性,给人非常不好的体验。在重构完一个项目时,就会发现糟糕代码的很多通病。就是完全没有任何规则和规范,按照自己的规则来写,而好的代码会有一套规则约束,有很明确的规范。正因为脑中没有概念和理论支撑,才会写的如此【随

2021-07-09 22:01:15 444 4

原创 【设计模式】策略模式+工厂模式动态绑定类名的几种方式

策略模式说明在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。这样,在后续调整渠道时只需要新增/删除一个类,而不会影响整体的逻辑。改造优化在类中购物渠道分为拼多多、淘系、京东和当当这4个渠道。以前的做法是根据不同的渠道,if/else判断取调用不同的代码。还有种情况是这几个渠道消费相

2021-06-24 20:23:14 385 1

原创 【代码优化与重构技巧】用ImmutableMap来替换大量if/else判断

在平时开发中会遇到很多类似于根据不同的场景获取不同的值的场景,最常想到的就是用if/else进行判断处理。但是这种写法,代码的复用性和可读性就会很差,而且耦合性就会很高。那么在改动时可能会影响整体功能,从而在新增/删除时就需要重测功能。改造优化前的代码先上代码:可以看到大量的if/else判断,当然还有人喜欢用switch/case语句。public static String getResult(String inParam){ if ("A".equals(inParam)){

2021-06-13 20:19:31 435

原创 百度快速精确搜索法

百度快速搜索法可以快速精确搜索到想要的内容,也能屏蔽看到很多广告。filetype:搜索指定的文档类型技巧:filetype:文档类型 关键词文档类型:如.doc,.ppt,.txt,.xls一般网页分为url、标题和内容三部分,所以就对应以下三个关键词。举例:filetype:doc java面试intitle:只搜索标题中含有关键词的网页技巧:intitle:关键词举例:intitle:java学习inurl:只搜索url部分内容技巧:inurl:关键词举例:inurl:csdn

2021-06-13 19:08:43 5057 2

原创 【设计模式】策略模式(简易版)

何为策略模式定义:在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。关键代码:实现同一个接口。优点:1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。缺点:1、策略类会增多。 2、所有策略类都需要对外暴露。使用场景:1、如果在一个系统里面有许多类,它们之间

2021-06-02 22:56:41 194

原创 【Nacos】成功解决之Nacos无法正常注册

问题描述在测试环境注册nacos后,在nacos界面的public分区无法查询到注册的服务名称。引入的jar包: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>具体的nacos

2021-05-26 22:29:12 18356 1

转载 几种常见的UML关系图汇总

在UML的 类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency) 1.       泛化(Generalization) 【泛化关系...

2021-05-22 18:37:23 10763 3

原创 Java常用工具类之HttpUtils

HttpClien请求涉及到两个类,一个是http的请求,另一个是对http连接池参数进行设置。HttpUtil@Slf4j@Componentpublic class HttpUtil { private static final MediaType JSON = MediaType.parse("application/json;charset=UTF-8"); private static final MediaType XML = MediaType.parse("appl

2021-05-21 08:45:17 1055

原创 【数据结构】一分钟学会二叉树的遍历结构

二叉树的遍历结构分为前序遍历、中序遍历和后序遍历。两层二叉树遍历根据图可以知道区分在哪里。多层二叉树遍历 前序遍历区分:根-左-右先写上:A B C根据区分原则:A BDE CFG中序遍历区分:左-根-右先写上:B A C根据区分原则:DBE A FCG后序遍历区分:左-右-根先写上:B C A根据区分原则:DEB EGC A相关推荐视频推荐【【计算机二级选择题重点】二叉树的遍历结构-哔哩哔哩】https://b23.tv/d8g7Qy文章推荐

2021-05-20 21:40:08 146

原创 抓包工具Fiddler:在雷电安卓虚拟机上安装配置Fiddler

用雷电安卓模拟器设置抓包工具。如何安装安装说明地址:https://www.cnblogs.com/zqifa/p/fildder-1.html特别说明fiddler里配置后需要在wifi无线里设置:Proxy hostname:自己电脑的ip;Proxy port:设置的是在fiddler的端口号,一般默认是8888;IP setting:DHCP...

2021-05-18 14:46:00 663

原创 成功解决之Jenkins报错:The goal you specified requires a project to execute but there is no POM

jenkins不能正常打包。问题描述jenkins打包时报错,无法正常启动服务。[WARNING] The requested profile "dev" could not be activated because it does not exist.[WARNING] The requested profile "uat" could not be activated because it does not exist.[ERROR] The goal you specified requir

2021-05-17 19:47:30 3179 1

原创 成功解决之微服务@Value获取配置文件乱码问题

问题描述微服务中获取properties时:mystyle.station.content = 测试中文字符相关代码:@Slf4jpublic class GetPropertiesValueDemo { @Value("${mystyle.station.content}") private String content; @PostConstruct public String getCreateContent(){ try {

2021-05-14 20:58:13 2277 2

原创 成功解决之SVN复制其他项目到另一个工程后提交代码 E175002 Unexpected HTTP status 502 ‘Bad Gateway‘

报错在开发项目时有共用的代码,于是就将springboot-ali-job的一个类的代码复制到另一个springboot-ali-query中。但是修改完springboot-ali-query项目后提交svn时报502的错误。Commit failed with error 0 files committed, 2 files failed to commit: xxxx svn: E175002: Commit failed (details follow): svn: E175

2021-04-30 16:33:44 2174 2

原创 Spring中@Async注解及不生效原因探究

在接口调用时,如果执行的时间长,那么为了提升响应时间,通常是先立即响应,然后再异步执行业务逻辑。那么在平时处理时就可以用@Async注解。使用@Async时,会在调用时新开启一个线程来跑任务。但是在使用时会遇到注解@Async不生效的问题,下面来分析造成的原因。使用@Async的代码Controller类@RestController@Slf4jpublic class AsyncControllerDemo { @Autowired private AsyncService

2021-04-30 16:02:15 3045 4

原创 成功解决之idea引用Lombok的@Slf4j后无法正常使用log

lombok引用的jar包代码中要引用lombok中的@Slf4j,相关的依赖:<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.8</version></dependency>报错内容代码:@Service@Slf4jpublic

2021-04-30 13:16:01 2662

原创 【Mysql系列】工作常用sql集锦(持续更新)

汇总工作中常用到的sql。获取毫秒级的当前时间用到CURRENT_TIMESTAMP(3)。select CURRENT_TIMESTAMP(3);但是在指定字段时需要注意字段的类型也需要datatime(3)类型。字段类型中,datetime(3) 是精确到毫秒级的,datetime默认是0,精确到秒级的。如何统计某个接口调用的总次数?用group by,如SELECT service, app_key, count(*) FROM trace_log t WHERE cr

2021-04-24 15:44:11 91

抓包工具Fiddler安装包

抓包工具Fiddler安装包,用于抓取请求地址

2021-05-18

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除