自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hello, New World!

万物伊始,效率本源。大道至简,代码之禅。自建博客: https://janycode.github.io

  • 博客(412)
  • 资源 (4)
  • 收藏
  • 关注

原创 像程序一样思考。

文章目录做你喜欢的事 - 心流状态像打字般编程 - 唯手熟尔为理想的求职者总结 - 终身学习做你喜欢的事 - 心流状态“1960年,一位研究人员对1500名商学院学生进行了访谈,并将他们分为两类:那些为了钱财来这里上学的人,1245人。那些打算利用学位做他们非常关心的事情的人,255人。二十年后,研究人员再次访谈了这些毕业生,发现其中有101位百万富翁,除了其中一位,所有百万富翁都来自...

2020-03-07 12:00:07 350 1

原创 分布式任务调度:XXL-JOB框架部署&使用&原理详解

分布式任务调度:XXL-JOB框架部署&使用&原理详解

2022-04-05 10:12:41 988

原创 【代码生成器】Java项目代码生成器核心逻辑

Java项目代码生成器核心逻辑

2022-03-17 23:26:25 1068

原创 C/C++/Unix/QT/ARM/驱动开发/Ehome智能家居项目资料

C语言,C++语言, Unix高级编程, QT界面编程, ARM编程, driver驱动开发, 实战项目Ehome智能家居项目资料

2022-03-17 23:08:37 5583

原创 Arthas 阿里诊断工具快速诊断java线上问题

Arthas 阿里诊断工具快速诊断java线上问题1. 安装2. 快速诊断2.1 快速诊断流程dashboardthreadjad★ watch★ trace3. 高级命令4. IDEA 插件参考资料(官网): https://arthas.gitee.io/index.html参考资料(阿里云官方CSDN): Arthas 使用的四种方式参考资料: 使用Arthas五分钟解决一个问题1. 安装下载并启动:curl -O https://arthas.aliyun.com/arthas-boo

2022-02-19 13:43:42 542

原创 40行代码完全理解java线程池工作流程

40行代码完全理解java线程池工作流程线程测试Demo线程测试Demo结论在注释中,建议自己跑一跑。import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicInteger;public class Th

2021-12-02 17:48:13 219

原创 MySQL解析json字段以及遍历json字段

MySQL解析json字段以及遍历json字段MySQL 5.7版本以后支持json格式的字段类型定义、存储和使用,最近做BI开发,开发把所需数据用JSON的形式存储在字段中,本次记录下MySQL解析JSON。官方参考:https://dev.mysql.com/doc/refman/8.0/en/json.html一般来说,主要是提取json字段的值,所以update就不写了,提取select json使用的参数是:JSON_EXTRACTJSON_EXTRACT参数使用方式是:JSON_EXT

2021-09-11 17:25:21 3639

原创 MyBatis-Plus 的高级使用

MyBatis-Plus 的高级使用1. 快速入门2. 核心功能2.1 注解2.2 CRUD接口2.3 Service CRUD接口2.4 条件构造器2.5 更新操作2.6 删除操作2.7 自定义SQL2.8 分页查询2.9 AR模式2.10 主键策略2.11 配置2.12 代码生成器3. 高级功能3.1 逻辑删除3.2 自动填充3.3 乐观锁插件3.4 性能分析插件3.5 多租户SQL解析器3.6 动态表名SQL解析器4. 总结MyBatis-plus 是一款 Mybatis 增强工具,用于简化开发,提

2021-06-27 10:54:13 750

原创 Spring Cloud Alibaba Nacos2.0注册中心部署与服务注册使用

Spring Cloud Alibaba Nacos 注册中心部署与服务注册1. Nacos 简介1.1 为什么需要注册中心1.2 主流注册中心对比1.3 Nacos 2.02. Nacos 部署启动3. Nacos 服务注册3.1 Provider 服务3.2 Consumer 服务3.3 Nacos 下的服务间通信4. 服务注册和管理4.1 服务注册查看4.2 服务流量权重和流量保护4.3 服务元数据管理4.4 服务优雅上下线4.5 监听者查询4.6 配置实例权重4.7 配置保护阈值参考资料:Nac

2021-04-06 08:37:29 1165 3

原创 Sping Cloud Feign 配置、使用和源码分析

Sping Cloud Feign 配置、使用和源码分析1. 简介2. 基本使用2.1 Feign 依赖2.2 Feign 注解2.3 Feign 测试2.4 Feign 配置(可选)3. 源码分析3.1 原理和源码详解3.2 请求是如何转到 Feign 的?3.3 Feign 是怎么工作的?3.4 Feign 的负载均衡策略?官网文档:https://spring.io/projects/spring-cloud-openfeign1. 简介Spring Cloud OpenFeign : Decl

2021-03-07 18:22:45 159

原创 IDEA-生成Javadoc外部文档

IDEA-生成Javadoc外部文档IDEA中,点击 Tools-> Generate JavaDoc,这样会打开生成 javadoc 文档的配置页面。进行配置:标注的是重要的部分,从上往下分别是配置 javadoc 的范围,输出文件夹路径以及命令行参数。这里的命令行参数很重要,因为只有使用 utf-8 编码才能保证生成时可以正常处理中文字符,所以一定要加上:-encoding utf-8 -charset utf-8还可以配置那些注解需要生成,哪些权限类(private、

2021-02-17 22:23:51 218

原创 SpringBoot+自定义注解+Redis实现分布式锁

SpringBoot+自定义注解+Redis实现分布式锁1. 自定义注解+动态代理:日志2. 自定义注解+AOP:分布式锁2.1 Redis分布式锁理论2.2 Redis整合 封装服务类2.3 自定义注解2.4 Aop实现注解环绕通知、获取注解参数、加锁解锁2.5 ThreadLocal实现可重入锁1. 自定义注解+动态代理:日志@Target(ElementType.METHOD) //该注解只能作用在方法上@Retention(RetentionPolicy.RUNTIME) //运行时可被

2021-02-17 22:21:25 345

原创 ElasticSearch用法和IK分词器

ElasticSearch用法和IK分词器ElasticSearch 是什么?为什么选择ES?ES提供的能力ES常用使用场景ES架构ES 基本概念ES 数据类型ElasticSearch , Kibana 和 elasticsearch-head第一个HelloWorld(v6.8)分词器常见入门问题1. ES 6.8 IK分词器bug2. 日期格式设置错误3. 设置匹配度 优化查询结果ES的Java客户端选择1. ES提供了两个JAVA REST client 版本2. TransportClient3

2021-02-17 22:19:03 431

原创 Spring 事务嵌套和异常捕获的问题和解决方案

事务嵌套和异常捕获的问题和解决方案1. 无嵌套的正常事务2. 方法A调用带事务的方法B3. 加入异常捕获处理的事务4. 事务回滚的注意事项1. 无嵌套的正常事务public class C{ @Transactional public void a(){ //TODO }}【结论】:出现异常,正常回滚。原因:事务的 ACID 特性中的 C,Consistency 一致性,事务内有操作失败时则数据将全部回滚到修改前的状态。2. 方法A调用带事务

2021-01-23 00:56:19 1516 3

原创 Java Stream 流高级使用全解

Java Stream 流高级使用全解一 基本汇总1. 创建流2. 中间操作3. 终止操作二 经验累积1. 统计1.1 取最大值1.2 取最小值1.3 取总和值1.4 取平均值2. 过滤2.1 获取最近时间3. 排序3.1 根据字段排序4. 分组4.1 获取字段出现次数4.2 过滤并获取指定字段列表Java 强大的 stream 流处理,必会!无状态:指元素的处理不受之前元素的影响;有状态:指该操作只有拿到所有元素之后才能继续下去。非短路操作:指必须处理所有元素才能得到最终结果;短路操作:指遇

2020-12-26 18:38:56 3351 3

原创 Java 线上问题快速排查思路(最全)

Java 线上问题快速排查思路-最全一 服务器层面1.1 磁盘1.1.1 问题现象1.1.2 排查思路1.1.2.1 利用 df 查询磁盘状态1.1.2.2 利用 du 查看文件夹大小1.1.2.3 利用 ls 查看文件大小1.1.3 相关命令1.1.3.1 df1.2 CPU过高1.2.1 问题现象1.2.2 排查思路1.2.2.1 利用 top 查询CPU使用率最高的进程1.2.3 相关命令1.2.3.1 top二 应用层面2.1 Tomcat假死案例分析2.1.1 发现问题2.2.2 查询日志2.2.

2020-12-26 18:36:34 1115

原创 Jmeter压力测试工具使用详解

Jmeter压力测试工具使用详解一、下载二、环境变量三、压测步骤四、请求参数随机数参考资料:http://www.jmeter.com.cn/category/jmeter-book一、下载进入官网:http://jmeter.apache.org/download_jmeter.cgi1.第一步进入官网如下图2.选择进行下载,下载下来为一个压缩包,解压即可。3.下载jmeter5.3对应jdk1.8的版本。然后就进行解压。个人认为要注意3点:1)解压之后压缩包叫apache-jmete

2020-12-26 18:34:28 2162 2

原创 MySQL EXPLAIN查询计划详解

MySQL EXPLAIN查询计划详解1. EXPLAIN简介2. 执行计划各字段含义2.1 id2.2 type2.3 possible_keys 和 key2.4 key_len2.5 rows2.6 Extra1. EXPLAIN简介使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。 通过explain我们可以获得以下信息:表的读取顺序数据读取操作的操作类型哪些索引可以使用哪些索引被实际使用表

2020-12-26 18:32:17 118

原创 18条效率至少提高3倍的MySQL技巧

1、EXPLAIN做MySQL优化,我们要善用EXPLAIN查看SQL执行计划。type列,连接类型。一个好的SQL语句至少要达到range级别。杜绝出现all级别。key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式。key_len列,索引长度。rows列,扫描行数。该值是个预估值。extra列,详细说明。注意,常见的不太友好的值,如下:Using filesort,Using temporary2、SQL语句中IN包含的值不应过多MySQL对于IN做了相应的优化

2020-09-25 16:00:01 277

原创 Java 8 stream 流获取 list 中最大值、最小值、总和值、平均值

// liststatic List<Employee> empList = new ArrayList<Employee>(); private static void initEmp(){ empList.add(new Employee("张三",30)); empList.add(new Employee("张三1",96)); empList.add(new Employee("张三2",23)); empList.add(new Employee("张

2020-09-25 15:56:23 23519

原创 IDEA 中自动保存的 database console 控制台内容记录

用过了 SQLyog 以及 Navicat 对字段的自动补齐还是不够好。所以坚持使用 IDEA 自带的 Database 数据库客户端,自带控制台 console。语句补全:字段补全:但需要将 临时的 console 作为一个 sql记事本 的 客户端来用,所以要找到 IDEA 存储它的位置,不至于丢失掉以前的记录。花了点功夫找到它!藏身之处:...

2020-09-23 09:55:20 3786 3

原创 sql语句里添加一列自然序号

SELECT @rownum:=@rownum+1 AS rownum, a.*FROM (SELECT @rownum:=0) r, a;

2020-09-15 11:08:03 2394

原创 vue 带下标循环、点击事件动态id赋值和事件传参

vue 带下标循环、点击事件动态id赋值和事件传参Vue 使用的 CDN,可以直接复制,预览测试 v-for 和 click 事件传参效果。<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>vue 带下标循环、点击事件动态id赋值和事件传参</title> <script src="https://cdn.jsdelivr.net/npm/

2020-07-25 14:10:04 3281

原创 GitHub开源项目的多人协作详细操作

基于 Git 版本管理的多人协作项目的详细操作1. 添加协作伙伴2. IDEA-Git 操作3. 被邀请的协作者操作4. 公共仓库账号合并代码5. (测过OK)将 dev 分支合并到 master 主分支6. 最高频坑:代码冲突整体流程:Git 公共仓库账号 → 邀请协作伙伴 → 协作伙伴都同意。Git 公共仓库账号 → 搭好项目架子上传 → Git链接 → 作为基础代码可以被 被邀请者 pull(拉) 到本地。Git 公共仓库账号 → 创建 dev 分支 → push 远程仓库(即上传,此时

2020-07-14 00:22:15 2077

原创 Redis 集群搭建详细步骤及整合Spring

Redis 集群搭建详细步骤及整合Spring1. Redis 集群搭建1.1 redis-cluster架构图1.2 redis-cluster投票:容错1.3 架构细节1.4 Redis集群的搭建-11.4 Redis集群的搭建-22. Jedis2.1 连接单机版2.2 连接池连接单机版2.3 连接集群版3. 封装和整合spring3.1 接口定义3.2 单机版实现类3.3 单机版 Spring 配置3.4 集群版实现类3.5 集群版 Spring 配置官网教程:https://www.redis

2020-07-09 00:42:52 2291

原创 Redis 主从复制操作和哨兵模式配置

Redis 主从复制操作和哨兵模式配置1. Redis 主从复制1.1 配置步骤1.2 主从复制原理2. Redis 哨兵模式2.1 高可用2.1 配置步骤2.3 哨兵模式优缺点官网教程:https://www.redis.net.cn/tutorial/3515.html1. Redis 主从复制主从复制是指将一台 Redis 服务器的数据,复制到其它的 Redis 服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。默认情况下,每台

2020-07-09 00:40:57 1210

原创 Redis 事务+订阅+持久化方式详解

Redis 事务+订阅+持久化方式详解1. Redis 事务1.1 事务命令1.2 Redis 事务特性2. Redis 持久化2.1 RDB2.2 AOF2.3 RDB优缺2.4 AOF优缺3. Redis 订阅官网教程:https://www.redis.net.cn/tutorial/3515.html1. Redis 事务Redis 中的事务和 MySQL 中的事务有本质的区别,Redis中的事务是一个单独的隔离操作,事务中所有的命令都会序列化,按照顺序执行,事务在执行的过程中,不会被其他客

2020-07-09 00:39:24 530

原创 MyBatis 分页插件 PageHelper 使用

MyBatis 分页插件 PageHelper 使用1. 概念2. 访问与下载3. 开发步骤3.1 引入依赖3.2 配置MyBatis-config.xml3.3 PageHelper应用方式4. PageInfo对象4.1 PageInfo应用方式4.2 注意事项5. Maven 项目添加分页5.1 导入依赖5.2 配置分页插件(2选1)5.3 在 controller 中添加方法4. 前端分页数据5. 测试1. 概念PageHelper 是适用于 MyBatis 框架的一个分页插件,使用方式极为便

2020-07-09 00:36:28 319

原创 MyBatis 动态SQL使用和缓存详解

MyBatis 动态SQL使用和缓存详解1. 动态SQL【★】1.1 < sql >1.2 < where >1.3 < set >1.4 < trim >1.5 < foreach >2. 缓存(Cache)【★】2.1 一级缓存2.2 二级缓存2.2.1 开启全局缓存(二级缓存)2.2.2 指定Mapper缓存2.2.3 缓存清空并重新缓存1. 动态SQL【★】MyBatis的映射文件中支持在基础SQL上添加一些逻辑操作,并动态拼接成完整

2020-07-09 00:35:28 1354

原创 MyBatis ORM映射和多表连接查询

MyBatis ORM映射和多表连接查询1. ORM映射【★】1.1 MyBatis自动ORM失效1.2 一:列的别名1.3 二:结果映射2. MyBatis处理关联关系-多表连接【★】2.1 OneToOne2.2 OneToMany2.3 ManyToMany2.4 关系总结1. ORM映射【★】1.1 MyBatis自动ORM失效MyBatis 只能自动维护库表列名与属性名相同时的一一对应关系,二者不同时,无法自动ORM。自动ORM失效1.2 一:列的别名在SQL中

2020-07-09 00:34:13 756 1

原创 redis.conf配置及哨兵sentinel.conf配置详解

Redis配置及哨兵Sentinel配置详解一、redis.conf 配置项说明如下:Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程daemonize no当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定pidfile /var/run/redis.pid指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为63

2020-07-08 16:05:15 1402

原创 MyBatis 逆向工程生成代码步骤

MyBatis 逆向工程生成代码步骤1. 概念2. 官网入门3. 开发步骤(简化)3.1 创建 JavaEE 项目3.2 GeneratorSqlmap3.3 generatorConfig.xml3.4 log4j.properties3.5 测试生成(图)1. 概念逆向工程,有的人也叫反求工程,英文是reverse engineering,大意是根据已有的东西和结果,通过分析来推导出具体的实现方法。说白点,就是 生成指定代码。如 Mybatis 的逆向工程生成器,可以帮我们生成 pojo 实

2020-06-26 11:48:11 1244

原创 SpringMVC 拦截器的使用

SpringMVC 拦截器的使用1. 拦截器作用2. 单个拦截器3. 多个拦截器参考资料:https://spring-mvc.linesh.tw/1. 拦截器作用SpringMVC 框架中的拦截器用于对处理器进行预处理和后处理的技术。可以定义拦截器链,连接器链就是将拦截器按着顺序结成一条链,在访问被拦截的方法时,拦截器链中的拦截器会按着定义的顺序执行。拦截器和过滤器的功能比较类似,有以下区别:过滤器是 Servlet 规范的一部分,任何框架都可以使用过滤器技术;拦截器是 SpringM

2020-06-22 21:04:39 2530 2

原创 SpringMVC 注解实现参数映射

SpringMVC 注解实现参数映射1. 请求参数映射1.1 RequestMapping1.2 请求参数的映射1.2.1 基本类型/字符串属性封装1.2.2 实体类属性封装1.2.3 集合属性封装1.2.4 Date类型封装1.3 常用注解1.4 其他注解2. 响应数据和结果视图2.1 返回值分类3. 配置不拦截静态资源参考资料:https://spring-mvc.linesh.tw/1. 请求参数映射@RequestMapping 注解的作用是建立请求 URL 和处理方法之间数据的对应关系。

2020-06-22 21:03:15 1610

原创 SpringMVC 架构流程与入门案例

SpringMVC 架构流程与入门案例1. SpringMVC 概述2. SpringMVC 架构2.1 架构流程2.2 组件说明3. SpringMVC 入门参考资料:https://spring-mvc.linesh.tw/1. SpringMVC 概述SpringMVC 是一种基于 Java 实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架。它和 Struts2 都属于表现层的框架,属于 Spring FrameWork 的后续产品,Spring MVC 分离了控制器、模型对象、过滤

2020-06-22 21:01:21 481

原创 Spring Transaction 声明式事务管理

Spring Transaction 声明式事务管理1. Spring 事务特性2. Spring 事务API3. Spring 事务传播行为4. Spring 事务分类4.1 编程式事务4.2 声明式事务5. Spring 事务操作转账5.1 无事务操作5.2 XML 配置事务5.3 配置事务通知5.4 注解 配置事务参考资料:https://lfvepclr.gitbooks.io/spring-framework-5-doc-cn/content/1. Spring 事务特性事务 : 是逻辑上

2020-06-22 20:57:21 769

原创 Spring AOP 面向切面编程基本配置

Spring AOP 面向切面编程1. AOP 原理1.1 JDK 动态代理1.2 CGLib 动态代理1.3 Spring AOP 代理方式2. AOP 术语3. AOP 实现3.1 XML 配置 AOP3.2 注解 配置 AOP参考资料:https://lfvepclr.gitbooks.io/spring-framework-5-doc-cn/content/1. AOP 原理AOP Aspect Oriented Programing,面向切面编程。AOP 采取横向抽取机制,取代了传

2020-06-22 20:54:10 560 1

原创 Spring Bean 注解配置

Spring Bean 注解配置1. 注解配置 Bean2. Spring 整合 junit3. @Import参考资料:https://lfvepclr.gitbooks.io/spring-framework-5-doc-cn/content/1. 注解配置 Bean写一个 SpringConfig.java 作为注解配置类,它的作用和 bean.xml 是一样的。以 jdbc 为例。Spring中的新注解:@Configuration作用:指定当前类是一个配置类注意:当配置类作

2020-06-22 20:52:34 768

原创 Spring IoC 依赖注入与配置

Spring IoC1. 引言1.1 原生web开发的弊端2. Spring 框架2.1 概念2.2 访问与下载3. Spring 架构组成4. Spring 入门4.1 导入依赖4.2 创建applicationContext.xml4.3 测试4.4 ApplicationContext与BeanFactory5. Spring bean 管理5.1 创建bean三种方式5.2 bean对象作用范围5.3 bean对象生命周期6. Spring 依赖注入6.1 构造函数注入6.2 set 方法注入6.3

2020-06-22 20:50:18 173

原创 Java邮箱验证码工具类的使用和校验注册

Java邮箱验证码工具类的使用和校验注册1. 步骤和工具类2. 邮件验证码注册demo3. 测试截图1. 步骤和工具类首先需要准备的东西 我这里以QQ邮箱为例。点击 设置 ->账户,找到这个页面:拿到授权码 并保存好:MailUtil 工具类:package com.mailtest.demo;import javax.mail.*;import javax.mail.internet.AddressException;import javax.mail.inter

2020-06-17 10:08:37 1394

C/C++/Unix/QT/ARM/驱动开发/Ehome智能家居项目资料

C、C++、Unix高级编程、linux、shell、QT、ARM、以及驱动开发、STM32等全套学习笔记,windows帮助文件chm格式的,忍痛出手,绝对不亏(博客里有以前闲暇时发的部分)。

2022-03-17

JVM-Java内存规范.png

Java-JVM内存规范(详细完整思维导图),包含物理内存与虚拟内存、内核空间与用户空间、java中需要使用的内存组件、jvm内存结构、jvm内存回收策略、JVM参数等...

2020-05-28

MVC模式用JSP实现用户管理(增删改查)核心逻辑图示.png

MVC模式 + JSP + 三层架构设计,实现对用户的登陆、登出、新增(注册)、删除用户、修改用户、查询用户、以及查询所有用户的基本核心逻辑。

2020-05-09

Filter过滤器实现自动登陆核心逻辑.png

Java中Servlet使用Filter过滤器实现自动登陆核心逻辑流程图(基本可以直译代码),特此分享供大家学习交流使用,如有不足之处请私信或者评论纠正。

2020-05-09

空空如也

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

TA关注的人

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