- 博客(38)
- 收藏
- 关注
原创 【错误解决】java.lang.AbstractMethordError:org.springframework.boot.test.mock.web.SpringBootMockServletCon
报错:java.lang.AbstractMethordError:org.springframework.boot.test.mock.web.SpringBootMockServletContextPath()Ljava/lang/String;spring-test和spring-mock这俩jar包下面有一个相同路径相同类名的类MockServletContext。spring-test在单元测试启动的时候调用到了spring-mock下面的类导致报错。排除掉spring-mock包就好。
2024-09-26 16:15:40
263
原创 【问题解决】has been injected into other beans [] in its raw version as part of a circular reference,but h
报错:has been injected into other beans [] in its raw version as part of a circular reference,but has eventually been wrapped.This meas that said other beans do not use the final version of the bean。我在项目中使用BeanPostProcessor动态代理包装了一个有循环依赖的bean就报了这个错误。
2024-08-13 16:03:56
2197
原创 【问题解决】No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
2022-01-04 10:57:33
7299
2
原创 【错误解决】Job for ssh.service failed because the control process exited with error code.See “systemctl
报错:Job for ssh.service failed because the control process exited with error code.See "systemctl status ssh.service" and "journalctl -xe" for details.这个报错八成是配置写错了。我是把/etc/ssh/sshd_config里面的 PermitRootLogin 配成了true,正确的值应该是 yes所以看到这个报错,首先检查自己最近修改的.
2021-06-22 09:53:44
31787
4
原创 七.Elasticsearch教程 - Elasticsearch聚合查询
注:version:elasticsearch-7.11.2造测试数据:PUT /t_shirt{ "mappings": { "properties": { "price": { "type": "long" }, "color": { "type": "keyword" }, "brand": { "type": "keyword" }, "sold
2021-04-14 00:25:30
808
原创 六.Elasticsearch教程 - ElasticSearch高亮显示
注:version:elasticsearch-7.11.2添加测试数据#新建索引PUT /high_light_test{ "mappings": { "properties": { "title": { "type": "text", "analyzer": "ik_max_word" }, "content": { "type": "text", "an
2021-04-02 00:05:58
3032
原创 五.Elasticsearch教程 - 查询优化 - 手工控制搜索结果精准度
注:version:elasticsearch-7.11.2造测试数据:#新建mapping映射PUT /developer{ "mappings": { "properties": { "name": { "type": "keyword", "index": true, "store": true }, "gender": { "type": "integer",
2021-03-31 17:59:00
1301
原创 四.Elasticsearch教程 - elasticsearch乐观锁并发控制
注:version:elasticsearch-7.11.2乐观锁是啥这里不多赘述Elasticsearch乐观锁并发控制查看一下id=1这个文档信息es7.0之前使用_version实现乐观锁更新文档例:PUT /developer/_doc/1?version=1{"name": "李小雷","gender": 1,"age": 20,"address": "浙江省杭州市西湖区","remark": "高级程序员"}es7.0版本之前用以上写法实现乐观锁修
2021-03-31 17:57:47
295
原创 三.elasticsearch教程 - elasticsearch的mapping文档映射和核心类型
注:version:elasticsearch-7.11.2一.mapping文档映射文档映射类似关系型数据库中表结构的字段类型、长度等。ES中映射可以分为动态映射和静态映射。动态映射:在关系型数据库中表字段类型、长度都是自定义的,而在es中不需要自定义,es会自动识别类型,这种机制就是动态映射。静态映射:es中也可以为索引事先定义好映射,映射内容包括字段类型、分词器等,这种方式称之为静态映射。1.添加文档映射PUT /developer{ "mappings": {
2021-03-31 17:56:17
557
原创 二.ElasticSearch教程 - elasticsearch基本操作,增删改查,DSL高级查询
注:version:elasticsearch-7.11.2一.基本操作1.创建索引PUT /developer2.查询索引GET /developer3.删除索引DELETE /developer4.添加文档PUT /developer/_doc/1{ "name": "李雷", "gender": "1", "age": 18, "address": "浙江省杭州市西湖区", "remark": "是一个初级程序员"}PUT...
2021-03-31 17:54:50
877
原创 一.ElasticSearch教程 - 安装ElasticSearch-7.11.2,单节点部署,集群部署
注:version:elasticsearch-7.11.2单节点部署一.新建用户,下载安装包es不能使用root启动,必须创建新用户#1).创建用户组[root@localhost ~]# groupadd elasticsearch#2).创建用户并设置密码[root@localhost ~]# useradd daliues[root@localhost ~]# passwd daliues#3).把用户daliues 添加到 elasticsearch 用户组[ro
2021-03-31 17:53:04
1782
原创 什么是中台,前端、后端、前台、中台、后台的区别?
前台是面向用户的,比如阿里的淘宝、天猫、支付宝,这些都是给普罗大众使用的产品中台是前台里通用的部分, 比如淘宝、天猫、支付宝,他们都有重复的服务,客户服务、搜索服务、支付服务等,这些都是重复的轮子。把重复轮子抽离出来作为公用服务,就是中台。后台是面向运营的,比如商品管理、物流管理。无论前台、中台、后台都包括前端和后端,前端指界面开发,例如h5、安卓。后端指服务接口开发,例如java服务。...
2021-02-04 15:41:01
29435
原创 elastic-job 分布式任务调度实例demo,springboot+elastic-job
什么时候用到分布式任务调度任务调度就是定时任务。分布式任务调度区别于单节点任务调度,分布式任务调度可以让集群环境下的各个节点执行不同的任务,以此提高效率。什么场景用到任务调度呢?例如1.借贷App,逾期问题,自动发送短信,自动计算更新逾期金额; 2.电商给满足条件的用户自动发送优惠券; 3.互联网项目缓存预热,在用户查看之前提前准备好缓存;基本概念分片概念将一个大任务拆分成多个小任务,在各个节点上执行。分片项与业务处理解耦elastic-job不提...
2020-12-23 20:46:27
1416
原创 1.java nio执行流程,学netty之前要熟悉nio
nio简介nio:非阻塞io,单线程多路复用(多个客户端复用一个线程)。相比bio支持更高并发。bio必须一个线程处理一个客户端连接,并发低。nio服务端只用一个线程。上图是一个简易的线程模型图,实际服务端和客户端都有自己的selector和socketChannel。此图只为突出服务端只用一个线程处理客户都多个连接。后面看完实例和请求过程就可用详细了解。NIO实例maven依赖:<dependencies> <dependency> ...
2020-11-26 23:16:53
627
2
原创 2.netty源码分析,从实例分析netty源码执行流程
Netty是什么官方解释:Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。个人理解:netty是对nio的封装,java自带的nio的代码写法不够优雅,于是有了netty。bio和nio的区别bio是阻塞线程,...
2020-11-26 11:30:19
562
原创 【问题解决】springboot启动后一小会就自动停止,提示Process finished with exit code 0
最近springboot启动后一小会就自动停止,没提示具体报错,只有提示:Disconnected from the target VM, address: '127.0.0.1:60011', transport: 'socket'Process finished with exit code 0我的解决办法:原来是没有加log4j的配置文件,在resources目录下新建文件:log4j.properties。复制内容:log4j.rootLogger=WARN, stdout
2020-10-30 11:50:48
1425
1
原创 一.spring源码分析 - 从图熟悉spring源码执行流程
第一篇,从源码的整体结构开始看。代码块1:创建spring上下文package pers.czl.spring.iocbeanlifecicle;import org.springframework.context.ApplicationContext;import org.springframework.context.annotation.AnnotationConfigApplicationContext;import org.springframework.context.anno
2020-10-07 16:16:09
604
原创 3.ElasticSearch分词器,包括默认分词器、英文分词器、中文分词器
导图(用于总结和复习)注:使用 GET /test/_analyze 可以使用分词器查看分词结果,例:以上用例是使用 analyzer 指定英文分词器查看分词结果,如果field是索引里的字段,会使用字段指定的分词器进行分词。接下来进入测试。默认分词器默认使用standar分词器在不标明的时候都是使用默认的standar分词在建索引的时候,使用 analyzer 指定字段分词器测试数据:#1.删除 /test下的测试数据DELETE /test/
2020-08-28 00:03:45
9568
2
原创 AQS核心原理总结
导图(用于总结和复习)AQS框架定义:aqs(AbstractQueuedSynchronizer)是一个用来构建锁或者其他同步器的基础框架,包括常用的独占锁:ReentrantLock。共享锁:CountDownLatch、CyclicBarrier、Semaphore等。核心原理:aqs的实现原理靠三个核心:1. FIFO队列实现线程等待排队,把没有竞争到锁的线程放入队列。队列的每个节点存储了线程、上节点、下节点、waitStatus。其中线程用来记录排队的线程,上
2020-08-27 11:32:21
734
原创 2.ElasticSearch添加、查询、修改、删除索引入门教程
es安装教程:https://blog.youkuaiyun.com/qq_33743572/article/details/108175092注:测试环境:CentOS Linux release 7.6.1810 (Core)jdk:1.8elasticsearch:6.8.2 单节点ES文档命名es的文档命名格式:PUT /{index}/{type}/{id}{ "field": "value", ...}index:索引名。因共同的特性被分组到一起的文档集合,例如把所有.
2020-08-26 00:17:02
775
原创 1.ElasticSearch安装教程与注意事项 以及集群环境搭建
下载安装ElasticSearchwget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.2.tar.gz下载tar.gz包解压 路径:/usr/lib/elasticsearch/elasticsearch-6.8.2/1.修改配置文件conf/elasticsearch.ymlcluster.name: my-application # 集群名称node.name: node-1
2020-08-22 21:51:52
795
原创 Synchronized原理总结
推荐原文:https://www.cnblogs.com/aspirant/p/11470858.html总结:
2020-08-12 23:54:36
182
原创 mysql - 第11课 - MVCC多版本并发控制机制原理 看了就懂
导图(用于总结和复习)MVCC (Multi-Version Concurrency Control)(多版本并发控制机制)Mysql在可重复度事务隔离级别下,同样的sql在同一事务下多次执行查询结果相同,就算有其他事务修改数据,也不会影响当前事务的查询结果。这个隔离性就是靠MVCC(Multi-Version Concurrency Control)机制来保证的。Mysql在读已提交和可重复读隔离级别下都实现了MVCC机制。但是实现原理不大一样,在读已提交级别是每次select生成一个..
2020-08-09 00:54:30
878
原创 mysql - 第10课 - 深入理解mysql事务隔离级别与锁机制 (mysql各种锁,mysql事务隔离级别实现原理)
官网文档:https://dev.mysql.com/doc/refman/5.7/en/导图(用于总结和复习)一. 事务与事务的四大特性(ACID)事务定义:事务是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合。ACID:原子性(Atomicity) :事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。 一致性(Consistent) :在事务开始和
2020-08-05 17:36:55
1895
2
原创 MySql WorkBench 如何选择数据库 / 如何指定当前数据库
MySql WorkBench跟数据库建立连接后需要指定当前的数据库才可以对表进行操作。我建的数据库名 mytest。指定数据库有两种方法。第一种方法使用命令,例:use mytest;然后点击执行第二种方法在SCHEMAS栏双击指定的数据库...
2020-08-05 10:41:47
8539
原创 mysql - 第9课 - count()查询优化 原来count(*)是最快的,请大胆使用
注:当前测试mysql版本:mysql5.7,编码utf8mb4,ENGINE:InnoDB准备表和数据的脚本:-- 创建A表DROP TABLE IF EXISTS `A`;CREATE TABLE A ( `id` int(11) NOT NULL AUTO_INCREMENT, `a` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_a` (`a`)) ENGI
2020-08-03 14:35:25
866
原创 mysql - 第8课 - in和exsits优化 exists不一定比in快
注:当前测试mysql版本:mysql5.7,编码utf8mb4,ENGINE:InnoDB准备表和数据的脚本:-- 创建A表DROP TABLE IF EXISTS `A`;CREATE TABLE A ( `id` int(11) NOT NULL AUTO_INCREMENT, `a` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_a` (`a`)) ENGI
2020-08-03 14:30:00
328
原创 mysql - 第7课 - join关联查询优化详解
注:当前测试mysql版本:mysql5.7,编码utf8mb4准备表和数据的脚本:-- 学生表DROP TABLE IF EXISTS `t_student`;CREATE TABLE `t_student` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `std_name` varchar(30) NOT NULL, `age` tinyint(3) unsigned NOT NULL, `class_id` int(11
2020-08-03 14:20:16
480
3
原创 mysql - 第6课 - 分页查询优化
注:当前测试mysql版本:mysql5.7,编码utf8mb4表结构和添加100万条测试数据的脚本:DROP TABLE IF EXISTS `t_student`;CREATE TABLE `t_student` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `std_name` varchar(30) NOT NULL, `age` tinyint(3) unsigned NOT NULL, `class_id` int(
2020-08-03 14:17:01
272
原创 mysql - 第5课 - Order by与Group by优化
注:当前测试mysql版本:mysql5.7,编码utf8mb4测试数据脚本:DROP TABLE IF EXISTS `t_student`;CREATE TABLE `t_student` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `std_name` varchar(30) NOT NULL, `age` tinyint(3) unsigned NOT NULL, `class_id` int(11) unsigned
2020-08-03 14:02:38
282
原创 mysql - 第4课 - trace工具用法详解
注:当前测试mysql版本:mysql5.7,编码utf8mb4trace是MySQL5.6版本后提供的SQL跟踪工具,通过使用trace可以让我们明白optimizer(优化器)如何选择执行计划。注意:开启trace工具会影响mysql性能,所以只适合临时分析sql使用,用完之后请立即关闭。测试数据脚本:DROP TABLE IF EXISTS `t_student`;CREATE TABLE `t_student` ( `id` int(10) unsigned NOT N.
2020-07-31 16:48:56
1952
原创 mysql - 第3课 - 如何优化索引
注:当前测试mysql版本:mysql5.7,编码utf8mb4注意:是否走索引是跟数据量有关的。测试数据脚本:DROP TABLE IF EXISTS `t_student`;CREATE TABLE `t_student` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `std_name` varchar(30) NOT NULL, `age` tinyint(3) unsigned NOT NULL, `class_i
2020-07-31 16:43:57
247
原创 mysql - 第2课 - explain执行计划详解
参考官方文档:https://dev.mysql.com/doc/refman/5.7/en/explain-output.html注:当前测试mysql版本:mysql5.7,编码utf8mb4表信息:CREATE TABLE `t_student` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `std_name` varchar(30) NOT NULL, `age` tinyint(3) unsigned NOT NULL
2020-07-31 16:40:13
247
原创 mysql - 第1课 - 索引
一. 索引定义索引是排好序的数据结构。二. 索引的数据结构mysql索引可选两种数据结构:B+树和hash。默认B+树。索引为啥不用二叉树、红黑树?二叉树和红黑树的节点只能存一个值,数据量大的时候树太高,检索的时候每个节点都需要进行一次io,io浪费性能。B+树每个节点能存储16k(默认是16K,可以使用innodb_page_size参数修改),大概能存储1000多个值,能降低树高度,减少io次数。指针大小大概占用6ByteB+树B-树的区别B-树:B+树:
2020-07-31 16:38:31
314
原创 UML各种图,PlantUml画图
参考:https://blog.youkuaiyun.com/CillyB/article/details/81515573官方画图实例:https://plantuml.com/zh/activity-diagram-beta活动图与流程图的区别:1.流程图描述处理过程,控制顺序、分支、循环。活动图描述对象活动的顺序关系和遵循的规则,着重表现系统的行为,而非系统处理的过程。2.活动图能够表示并发,流程图不行。3.活动图面向对象,流程图面向过程。...
2020-07-09 11:36:55
835
原创 ElasticSearch安装报错:vm.max_map_count [65530] is too low 但是centos7没有/etc/sysctl.conf文件
ElasticSearch安装报错:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]课程里是需要修改文件:/etc/sysctl.conf本人用的centos7里找不到这个文件,找不到就新建试了试,确认可以解决。命令如下:#新建/etc/sysctl.conf并添加配置vm.max_map_count=262144"[root@VM_0_10_centos
2020-06-28 00:09:04
1731
5
原创 docker 容器运行mysql 登录时报错 1045 - Access denied for user root@127.0.0.1 (using password:yes)
用docker容器跑的mysql5.6一直好好的,今天用navicat链接突然报错:1045 - Access denied for user 'root'@'127.0.0.1' (using password:YES)看报错是没有root用户的登录权限。网上找了好多方法,大都是改配置的,都没解决。后来找到一篇可以的方法,亲测成功。第一步登录mysql,命令:mysql -h localhost -u root -p然后输入密码登录成功。第二步使用mysql数据..
2020-06-08 23:08:07
9443
原创 spring加载mybatis启动流程简介
第一步:首先看看mybatis在spring里的两个关键配置项 <!-- 1.配置sqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="configLocation" value="WEB-INF/mybatis-config.xml" /> <property name=
2020-06-01 20:08:42
1672
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人