- 博客(287)
- 资源 (1)
- 收藏
- 关注
原创 推荐一款比较好用idea的代码生成插件-Easy Code
1、在idea的插件市场搜索Easy Code2、首先要配置数据库链接,我这里使用MySQL配置用户名、密码和数据库3、选择你要生成CURD代码的表4、配置代码生成的包,路径等信息,点击ok5、查看生成的代码...
2022-04-17 22:51:43
2241
原创 Idea的debug过程中,强制返回,避免操作资源
场景:我们平时使用debug排查问题,但是我们debug代码有进行一些数据库资源操作或缓存操作等,很显然。这时候,我们就可以使用idea中”Force Return“代码public class BreakPointDemo { /** * 强制返回 | 避免操作资源 */ public static void forceReturn() { System.out.println("bug"); //这里打断点
2022-04-17 10:37:33
3062
原创 java是使用阻塞队列处理日志
一、使用BlockingQueuepackage com.tree.springcloud.log;import java.util.concurrent.BlockingQueue;import java.util.concurrent.LinkedBlockingQueue;/** * @author zhong * @version 1 * @date 2021/03/12 * @contact 1478168700@qq.com **/public class SysL.
2021-03-13 10:15:31
442
原创 InnoDB 中的聚集索引和非聚集索引
InnoDB 中的聚集索引和非聚集索引:一、聚集索引(聚簇索引):以 InnoDB 作为存储引擎的表,表中的数据都会有一个主键,即使你不创建主键,系统也会帮你创建一个隐式的主键。这是因为 InnoDB 是把数据存放在 B+ 树中的,而 B+树的键值就是主键,在 B+树的叶子节点中,存储了表中所有的数据。这种以主键作为 B+ 树索引的键值而构建的 B+树索引,我们称之为聚集索引。二、非聚集索引(非聚簇索引):以主键以外的列值作为键值构建的 B+ 树索引,我们称之为非聚集索引。非聚集索引与...
2021-03-09 00:21:18
2534
原创 Idea使用Docker部署SpringBoot项目
0、前言:Idea使用Docker部署SpringBoot项目1、基础环境:Mac、Idea、Java8、Docker、Maven2、新建一个springboot项目docker-demo-20212.1 pom文件,注意maven的docker-maven-plugin插件信息配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmln
2021-03-04 14:55:22
3062
3
原创 常见的4种线程池
1、newCachedThreadPool:/** * 一个可缓存线程池,如果线程池长度超过需要处理需要,可灵活回收空闲线程,若无可回收,则新建线程 * 适合短时间的任务 * 缺点:要问题是线程数最大数是Integer.MAX_VALUE,可能会创建数量非常多的线程,甚至OOM。 */2、newFixedThreadPool:/** * 定长线程池,可以控制线程最大并发数,超出的任务会在队列中等待 * 缺点:要问题是堆积的请求处理队列可能会耗费非常大的内存,甚至OOM。 */
2021-03-04 10:33:19
7015
2
原创 springmvc中为什么需要用到父子容器?
问题1:springmvc中只使用一个容器是否可以?只使用一个容器是可以正常运行的。问题2:那么springmvc中为什么需要用到父子容器?通常我们使用springmvc的时候,采用3层结构,controller层,service层,dao层;父容器中会包含dao层和service层,而子容器中包含的只有controller层;这2个容器组成了父子容器的关系,controller层通常会注入service层的bean。采用父子容器可以避免有些人在service层去注入controller层的be
2021-03-03 16:03:20
719
2
原创 什么场景应该用 MongoDB ?
案例1用在应用服务器的日志记录,查找起来比文本灵活,导出也很方便。也是给应用练手,从外围系统开始使用MongoDB。 用在一些第三方信息的获取或者抓取,因为MongoDB的schema-less,所有格式灵活,不用为了各种格式不一样的信息专门设计统一的格式,极大的减少开发的工作。案例2mongodb之前有用过,主要用来存储一些监控数据,No schema 对开发人员来说,真的很方便,增加字段不用改表结构,而且学习成本极低。案例3使用MongoDB做了O2O快递应用,·将送快递骑手、快递商
2021-03-02 18:16:31
233
原创 Mybatis是如何进行分页的?分页插件的原理是什么?
Mybatis是如何进行分页的?分页插件的原理是什么? Mybatis使用RowBounds对象进行分页,它是针对ResultSet结果集执行的内存分页,而非物理分页。 可以在sql内直接书写带有物理分页的参数来完成物理分页功能,也可以使用分页插件来完成物理分页。 分页插件的基本原理是使用Mybatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执 行的sql,然后重写sql,根据dialect方言,添加对应的物理分页语句和物理分页参数。 ...
2021-03-02 17:26:17
1680
原创 @Aspect记录webLog
@Aspect记录webLogpackage org.tree.learndemo.aop;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.*;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.core.annotation.Order;import org.springframewo.
2021-03-02 16:32:44
214
原创 服务器配置需要注意的问题
服务器配置1. 【推荐】高并发服务器建议调小 TCP 协议的 time_wait 超时时间。 说明:操作系统默认 240 秒后,才会关闭处于 time_wait 状态的连接,在高并发访问下,服务器端会因为 处于 time_wait 的连接数太多,可能无法建立新的连接,所以需要在服务器上调小此等待值。 正例:在 linux 服务器上请通过变更/etc/sysctl.conf 文件去修改该缺省值(秒): net.ipv4.tcp_fin_timeout = 30 2. 【推荐】调大服务器所.
2021-02-27 15:20:10
703
原创 手动创建线程池
4. 【强制】线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这 样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。 说明:Executors 返回的线程池对象的弊端如下: 1) FixedThreadPool 和 SingleThreadPool: 允许的请求队列长度为 Integer.MAX_VALUE,可能会堆积大量的请求,从而导致 OOM。 /** * Creates a thread pool tha
2021-02-26 20:12:42
508
原创 java的双重检查锁问题
通过双重检查锁(double-checked locking)(在并发场景下)实现延迟初始化的优化 问题隐患(可参考 The "Double-Checked Locking is Broken" Declaration),推荐解决方案中较为 简单一种(适用于 JDK5 及以上版本),将目标属性声明为 volatile 型(比如修改 helper 的属 性声明为`private volatile Helper helper = null;`)。 反例: public class LazyInitDem
2021-02-26 20:00:17
507
原创 mybatis的update语句返回值问题
一、mybatis的update语句返回值问题默认情况下,mybatis 的 update 操作返回值是记录的 matched 的条数,并不是影响的记录条数。严格意义上来将,这并不是 mybatis 的返回值,mybatis 仅仅只是返回的数据库连接驱动(通常是 JDBC )的返回值,也就是说,如果驱动告知更新 2 条记录受影响,那么我们将得到 mybatis 的返回值就会是 2 和 mybatis 本身是没有关系的。道理我都懂,如果我们非得要 mybatis 的 update 操作明确的返回受影响的.
2021-02-25 14:52:41
2883
原创 RocketMQ踩坑-No route info of this topic, Jodie_topic_1023
官网启动broker命令:nohup sh mqbroker -n localhost:9876 &改为下面方式启动Broker:nohup sh mqbroker -n localhost:9876 autoCreateTopicEnable=true &
2020-10-15 23:25:08
426
1
原创 Dubbo初步认识
一、Dubbo是什么?Apache Dubbo 是一款高性能Java RPC框架。二、RPC又是什么?RPC 是远程过程调用(Remote Procedure Call)的缩写形式。下面是rpc流程图:参考百科三、Dubbo三大核心功能3.1面向接口的远程方法调用3.2 智能容错和负载均衡3.3 服务自动注册和发现四、Dubbo架构图4.1 官方原图4.2 中文图五、特性...
2020-10-14 21:43:21
240
原创 SpringCloud入门好资料
github:https://github.com/macrozheng/springcloud-learning
2020-10-14 19:54:45
117
原创 gc日志分析
一、编写测试代码package com.tree; import java.util.concurrent.TimeUnit;/** * JVMDemo * * @author zhong * @create 2020-10-13 17:33 * @contact 1478168700@qq.com **/public class JVMDemo { public static void main(String[] args) throws Interru
2020-10-13 21:58:36
393
原创 springcloud主要组件的常用配置
eureka: client: #eureka客户端配置 register-with-eureka: true #是否将自己注册到eureka服务端上去 fetch-registry: true #是否获取eureka服务端上注册的服务列表 service-url: defaultZone: http://localhost:8001/eureka/ # 指定注册中心地址 enabled: true # 启用eureka客户端 registry-f.
2020-10-12 15:44:06
332
原创 springboot 配置keytool生成的自定义证书
一、使用keytool生成自己的tomcathttps.p12证书,名字可以随便取keytool -genkey -alias tomcathttps -keyalg RSA -keysize 2048-keystore tomcathttps.p12 -validity 365-genkey 表示要创建一个新的密钥-alias 表示keystore的别名-keyalg 表示使用的加密算法-keysize 密钥的长度-keystore 密钥存放的位置-validity 密钥..
2020-10-11 14:52:20
1142
2
原创 @SpringBootApplication注解
一、@SpringBootApplication是一个组合注解,加在项目启动类上。二、@SpringBootApplication定义:@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.C
2020-10-11 13:11:34
2662
原创 SpringApplication的run方法主要代码步骤
一、图片流程图二、主要代码/** * Run the Spring application, creating and refreshing a new * {@link ApplicationContext}. * @param args the application arguments (usually passed from a Java main method) * @return a running {@link ApplicationContext} */.
2020-10-11 12:49:36
612
2
原创 @Configuration注解的proxyBeanMethods属性的作用
一、proxybeanMethods源码注释 /** * Specify whether {@code @Bean} methods should get proxied in order to enforce * bean lifecycle behavior, e.g. to return shared singleton bean instances even * in case of direct {@code @Bean} method calls in user code
2020-10-11 12:31:01
7073
6
原创 springMVC处理请求过程
1、 用户向服务端发送一次请求,这个请求会先到前端控制器DispatcherServlet(也叫中央控制器)。2、DispatcherServlet接收到请求后会调用HandlerMapping处理器映射器。由此得知,该请求该由哪个Controller来处理(并未调用Controller,只是得知)3、DispatcherServlet调用HandlerAdapter处理器适配器,告诉处理器适配器应该要去执行哪个Controller4、HandlerAdapter处理器适配器去执行Control..
2020-10-10 16:29:51
628
原创 快速排序算法
快速排序快速排序(Quicksort)是对冒泡排序的一种改进。[1]快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列package com.tree.swagger;import java.util.Arrays;/** * QuickDemo *...
2020-10-06 20:18:42
158
原创 docker一些常用命令
1、查看Docker信息$sudo docker info2、运行一个容器$sudo docker run --name 容器名 -i -t centos /bin/bash新建容器基于centos基准镜像,将会从本地查找,找不到从互联网下载该镜像.docker run 新建镜像命令-i -t 为支持标准输入STDIN,-t分配伪tty终端/bin/bash将会能够看到容器内的shellps、sudo docker run --name hello-world -i -t c.
2020-10-02 09:36:02
142
原创 算法可视化-algorithm-visualizer
在线网站:https://algorithm-visualizer.org/backtracking/hamiltonean-cyclesgithub库:https://github.com/algorithm-visualizer/algorithm-visualizer
2020-10-01 13:18:31
6301
原创 docker搭建mysql主从配置
1.拉取mysql,这里使用5.7docker pull mysql:5.72、在本地主机新建两个配置文件:my-mater.cnf、my-slave.cnfmy-master.cnf:[mysqld]log-bin = mysql-binserver-id = 1my-slave.cnf:[mysqld]server-id = 2注意:自己创建文件所在的路径。后面会用到。3.创建my-master容器,使用本地主机的3307端口映射容器3306,使用my-mas
2020-09-30 11:31:22
264
原创 索引失效的7种情况
0、创建user表,同时创建一个联合索引index_name_email_phoneSET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for user-- ----------------------------DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `id` int(11) NOT
2020-09-25 16:03:41
586
原创 MyBatis的update语句的返回值改为从匹配数改为受影响的记录数,向mysql连接添加useAffectedRows=true一个参数即可。
1、现象mysql更新update语句执行时,没有内容变更的话,会返回“0”;存在内容更新的话,会返回会返回有内容更新的记录数“1”。2、mybatis默认情况,没有内容更新也是返回“1”。这么怎么会是”1“,不应该是”0“???其实默认mybatis返回的是 Rows matched “1”,而不是 “ 0 row affected ”中的 “0”。3、那需要怎么才能让mybatis的udpate语句返回实际更新的记录数? 这里需要修改mysql的连接,添加一个 useAff...
2020-09-25 15:08:45
2130
原创 spring中BeanFactory规定bean完整的生命周期
Bean factory implementations should support the standard bean lifecycle interfaces as far as possible. The full set of initialization methods and their standard order is:BeanFactory实现类尽可能应该支持标准Bean生命周期接口。整套初始化方法及其标准顺序为:一、一系列***Aware接口,为bean注入spring的一些.
2020-09-24 15:40:32
347
原创 Redis利用zset数据结构如何实现多字段排序,score的调整(finalScore = score*MAX_NAME_VALUE + getIntRepresentation(name) )
1、原文:2、使用sql很容易实现多字段的排序功能,比如:select * from user order by score desc,name desc;3、问题:用两个字段(score,name)排序。在redis中应该怎么做?4、使用按分数排序的redis集合。你必须根据你的需要准备分数。finalScore = score*MAX_NAME_VALUE + getIntRepresentation(name) //MAX_NAME_VALUE是getIntRe...
2020-09-24 09:57:39
1776
1
原创 使用ThreadPoolExecutor创建线程池有哪些关键参数
1、ThreadPoolExecutor类的全参数构造方法:/** * Creates a new {@code ThreadPoolExecutor} with the given initial * parameters. * * @param corePoolSize the number of threads to keep in the pool, even * if they are idle, unless {@code .
2020-09-23 22:01:40
701
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人