自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(109)
  • 资源 (5)
  • 收藏
  • 关注

转载 天才并不能一蹴而就,怎样练习一万小时

文章转载:https://www.cnblogs.com/cj723/archive/2010/07/28/1786647.html随着畅销书《异类》的流行,“练习一万小时成天才”这个口号现在是尽人皆知。也许仍然有不少人相信那些不世出的天才必有天生的神秘能力,但科学家通过大量的调查研究已经达成共识,那就是所有顶级高手都是练出来的。不但如此,最近几年的科学进展,人们可能第一次拥有了一个关于怎样炼...

2019-04-25 15:28:27 491

原创 gts分布式事务框架踩坑记录

gts分布式事务

2022-08-18 19:05:13 529 1

原创 导出EXCEL工具类

基于注解设置excel的字段,一行代码导出数据为excel的工具类

2022-06-07 10:41:11 419

原创 ThreadLocal源码分析

1.ThreadLocal 是什么Threadlocal 是 jdk 中一个非常重要的工作类。它是线程本地存储,可以保证各个线程之间的变量互不干扰。它的数据结构:ThreadLocalMap有点类似HashMap的结构,只是HashMap是由数组+链表实现的,而ThreadLocalMap中并没有链表结构。注意Entry, 它的key是继承自WeakReference, 是弱引用类型,在 GC 时,key 有可能会被回收掉。2.ThreadLocal 的方法2.1 set()

2022-03-11 15:27:33 824 1

原创 ReentrantLock加锁和解锁

1.ReentrantLock1.1 ReentrantLock是什么ReentrantLock 意思为可重入锁,指的是一个线程能够对一个临界资源重复加锁。ReentrantLock内部实现依赖于AQS。1.2 AQS是什么AQS(AbstractQueuedSynchronizer)是抽象队列同步器,在线程访问共享资源时候,会先判断资源是否上锁了,如果上锁了,那么把该线程放入CLH队列中进行等待;如果没上锁,那么把该线程设置为工作线程。AQS的主要原理图:AQS 使用一

2022-02-15 18:08:51 2159 1

原创 mysql8分组后排序

SELECT b.id uid, b.mobile, count(1) openedCount, sum(share_amount) shareTotalAmount FROM (select *, ROW_NUMBER() OVER (PARTITION BY share_uid ORDER BY create_time desc) .

2021-12-18 14:29:10 1001

转载 52条SQL语句,性能优化

今天,带胖友们看看 52 条 SQL 语句性能优化策略。1对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。3应尽量避免在 where 子句中使用!=或<>操作符, MySQL只有对以下操作符才使用索引:<,<=,=,>,>

2021-10-28 15:28:39 81

原创 越挫越勇的进取之意——spring security集成jwt

1. 什么是JWT?JWT是 Json Web Token 的缩写。它是基于 RFC 7519 标准定义的一种可以安全传输的 小巧 和 自包含 的JSON对象。由于数据是使用数字签名的,所以是可信任的和安全的。JWT可以使用HMAC算法对secret进行加密或者使用RSA的公钥私钥对来进行签名。具体参见:https://www.jianshu.com/p/576dbf44b2ae2. 集成代码在上一篇博文基础下开展。上一篇:https://blog.csdn.net/Yuwen_fo

2021-09-09 16:16:16 103

原创 毫无存在的沉默之路——初窥spring security,springboot集成spring security

1. spring boot集成spring security1.1 初始化工程数据库创建一个 t_member 表存储用户信息DROP TABLE IF EXISTS `t_member`;CREATE TABLE `t_member` ( `id` int NOT NULL AUTO_INCREMENT, `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

2021-09-08 09:45:47 105

原创 秋老虎的灼热——elk流程打通

1.开头一张图全文架构:使用的jdk版本:1.82.logstash个人理解:类似水泵,抽啊抽,把不同服务器上的日志抽取到同一个地方。上手也简单,几行配置的事。安装官网下载:https://www.elastic.co/cn/downloads/logstash#ga-release检验执行命令:bin/logstash -e 'input { stdin { } } output { stdout {} }'-e选项允许你在命令行快速配置而不必修改配置文件.

2021-09-02 11:04:48 177

原创 Arthas的使用

1.简介官网:https://arthas.aliyun.com/zh-cn/Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上.

2021-08-13 10:48:01 548

原创 nginx配置负载均衡后总是访问同一台服务器

1.问题用nginx做一个简单的负载均衡,想着应该很简单。然后一顿操作。最后可以访问页面,不过页面显示的内容总是同一台服务器所提供的。这就不合常理了,明明配置好了负载,为什么没有起作用?配置如下:返回的页面一直是这样,正常应该是轮流显示:8080、8081、80822.解决无奈,只好打电话给伊戈尔·赛索耶夫老哥。最后一番调试后,发现是浏览器的缓存导致。...

2021-07-09 16:33:40 2786 1

原创 数据库事务

1.什么是事务大家都是好兄弟,同生共死!是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合(工作逻辑单元)2.事务的四大特性原子性 事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做 一致性 事 务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统 ...

2021-07-08 10:58:11 106

原创 Java扫描指定路径下的类文件,Java获取jar包内的文件

1.思路通过给定的包名,获取到该资源路径,然后判断该路径是文件夹还是jar包。如果是文件夹,直接通过 File.listFile() 方法获取所有文件,然后找到类文件。如果是 jar 包的话,则通过 jarInputStream 构造 jarEntry 获取文件。2.代码package com.example.demo;import java.io.File;import java.io.FileInputStream;import java.io.IOException.

2021-07-08 10:25:45 1358

原创 不常见类、接口和注解汇总备忘

持续更新......TMD,记不住,备忘一下。类BeanDefinitionBuilder:用于向spring上下文中注入实例,并且还可以设置实例的属性值接口Aware:一个标记超接口,指示一个bean有资格通过一个回调样式的方法由Spring容器通知一个特定的框架对象。 实际的方法签名由各个子接口确定,但通常应该只包含一个接受单个参数的返回void的方法。BeanClassLoaderAware:感知到加载自己的类加载器是什么。可由setBeanClassLoad.

2021-07-02 11:59:54 152

原创 @MapperScan 和 @Mapper ,你搞清楚了吗

很久很久以前,有一个框架叫做mybatis....1.mybatis的加载mybatis整合springboot的时候,会引入一个依赖<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId></dependency>这个依赖2.mybat.

2021-07-02 11:32:53 3229

原创 lambda表达式使用

持续更新……1.对一个存储A元素的集合list,计算集合list中所有A元素的属性B的和List<A> list = new ArrayList<>();list.add(new A(1));list.add(new A(2));list.add(new A(3));list.add(new A(4));Integer sum = list.stream().map(A::getRecord).reduce(0, Integer::sum);...

2021-06-17 09:07:19 1883

原创 把具有父子关系的数据组装成树状结构

需求:把具有父子关系的数据组装成树状结构实体类:@Datapublic class CategoryVo { /** * 类别Id */ private Integer id; /** * 父类别id当id=0时说明是根节点,一级类别 */ private Integer parentId; /** * 子类目 */ private List<CategoryVo> s

2021-06-16 09:32:54 567

原创 kettle集群

背景:学习,学习,还是TM的学习(微笑脸)!1.简介在Kettle中合理的使用集群可以加快执行的速度,并且还能在部分服务器宕机的情况下继续使用。在Kettle中集群是由一个主Carte服务器和多个从Carte服务器组成。在执行转换时,主服务器负责分发跟踪任务和收集结果总汇,从服务器负责具体的转换执行。在Kettle中,如果主服务器也宕机的话并不存在服务器(类似于redis、zookeeper等)重新选举的功能,也就是说一旦主服务器宕机,则Kettle集群就不能使用了。...

2021-06-07 11:48:22 2552

原创 kettle使用、kettle新建转换、kettle新建作业

背景:学习,学习,还是TM的学习(微笑脸)!1.kettle的使用使用kettle前,可以先去了解kettle的相关概念:https://www.kettle.net.cn/category/base

2021-06-04 17:16:37 2395

原创 kettle配置mysql8

背景:学习,学习,还是TM的学习(微笑脸)!开始kettle默认下载下来没有mysq8的驱动,因此需要把mysql8的驱动jar放到kettle的lib下。打开maven仓库:https://mvnrepository.com/,搜索mysql-connector-java,选择自己想要的驱动版本下载,这里博主下载的是mysql-connector-java-8.0.25.jar。jar包下载好后,放入kettle的lib包下,重启kettle。...

2021-06-04 17:09:07 827

原创 kettle简介与安装

1.kettle简介1.ETL是什么?ETL分别是“Extract”、“Transform”、“Load”三个单词的首字母缩写也即数据抽取、转换、装载的过程,但我们日常往往简称其为数据抽取。ETL的工具功能:必须对抽取到的数据能进行灵活计算、合并、拆分等转换操作。kettle就是一款开源的ETL工具。2.KettleKettle是PDI以前的名称,PDI的全称是PentahoDataIntegeration,Kettle本意是水壶的意思,表达了数据流的含义。...

2021-06-04 17:04:39 270

原创 elasticsearch 简介、安装与使用

安装1.下载es官网下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch最新是 7.12.1 版本,这里选择 7.12.0 搭建案例 demo。下载好了后,上传到 linux,解压压缩包在 /opt 下,执行命令,启动 es,sh /opt/elasticsearch-7.12.0/bin/elasticsearch启动报错:can not run elasticsearch as roo.

2021-05-21 16:42:33 266 2

原创 seata 1.4.2 踩坑吐血记录

1.现象描述从 git 上下载 seata 1.4.2 版本,集成到 demo 后测试发现,seata 服务端日志显示回滚成功,客户端日志无报错,但是实际上数据并没有回滚,undo_log表没有数据记录。2.解决方法这个问题困扰了我三天,靠!把配置看了一遍又一遍,做了一次次尝试,均以失败告终,最后一个seata交流群的老哥告诉我可能是数据库主键自增的锅。然后我一看我的数据表果然是自增的,遂吧业务表的主键自增去除,再次测试,成功回滚数据,T_T。接下来再次把数据库自增加上,然后在代码.

2021-05-18 15:34:06 5430 16

原创 java线程池:线程池怎么开启的、线程池怎么工作的、线程池是怎么关闭的

1.序位于 java.util.concurrent 下的 ThreadPoolExecutor 是java的线程池,可以用来管理线程。本文围绕线程池的开启、工作、关闭三个方向进行探究,去追溯源码的实现。2.线程池怎么开启的ThreadPoolExecutor 有四个构造方法,如下:public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,long keepAliveTime, TimeUnit unit, B.

2021-03-23 19:34:33 2752

转载 Spring Boot 启动扩展点总结

原文出处:https://mp.weixin.qq.com/s/Oq8zfFG1koXc4kAW3434QA目录1.ApplicationContextInitializer2. BeanDefinitionRegistryPostProcessor3.BeanFactoryPostProcessor4.InstantiationAwareBeanPostProcessor5.SmartInstantiationAwareBeanPostProcessor6.Be...

2021-02-19 20:22:11 132

原创 java集合的数据结构与元素有序性

目录1.引言2.总结3.java集合概述3.1ArrayList3.2LinkedList3.3Vector3.4HashMap3.5LinkedHashMap3.6TreeMap3.7Hashtable3.8HashSet3.9LinkedHashSet3.10TreeSet1.引言本文是对常见的java(1.8)集合的一些总结,不足之处,欢迎看官们在评论区纠正。2.总结^_^,先放大招3.java集...

2021-01-31 17:18:50 422

转载 count(1)、count(*)与count(列名)的执行区别

执行效果:1. count(1) and count(*)当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了!从执行计划来看,count(1)和count(*)的效果是一样的。 但是在表做过分析之后,count(1)会比count(*)的用时少些(1w以内数据量),不过差不了多少。如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。因为count(*),自动会优化指定到那一个字段。所以没必要去coun...

2020-10-27 20:21:38 112

原创 springboot设置多数据源,使用 atomikos 管理多数据库事务

springboot设置多数据源本文使用springboot框架,设置两个数据源(mysql,oracle)。1.项目结构2.数据库表结构两个数据库的结构一样mysql:DROP TABLE IF EXISTS `emp`;CREATE TABLE `emp` ( `id` int(11) NOT NULL, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,

2020-10-25 16:12:11 600

原创 我工作三年啦!

1.序写一篇博客,三年工作后的总结,看看自己的得失。2.最初的最初尚未佩妥剑,转眼便江湖。愿历尽千帆,归来仍少年。以上为我当初毕业时候的心境,当时还发了QQ空间。当初为什么选择java,我想了想,大致如下:大头(我家前面的一个小伙子,比我大一届)选择的程序员,出来后在苏州月薪9k,我老妈羡慕的不行,当时正好我不考研,没有找工作,处于大唱“路在何方”的阶段。 班上的大约有20个同学都去学程序员了,学校早在大四上学期开始就宣讲java,给我们搞了一个“课程置换”去学习jav

2020-10-09 20:45:15 97

原创 java多线程与自定义线程池

1. 多线程的优缺点优点:提升cpu使用率 异步处理任务,提升响应速度缺点:开启线程需要占用一定的内存空间(默认情况下,主线程占用1M,子线程占用512KB),如果开启大量的线程,会占用大量的内存空间,降低程序的性能 多线程之间存在数据共享问题,提高技术复杂度2. java开启多线程 继承Thread类,重写 run() 方法 实现Runnable接口,重写 run() 方法 实现Callable接口,重写 call() 方法 3. 线程池“..

2020-08-30 14:01:08 243

原创 docker基础

docker官网:https://docs.docker.com/engine/install/centos/1.安装docker官网内有详细安装步骤,以下安装环境为centos71.卸载旧版本$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ ...

2020-07-09 23:17:58 152

原创 hbase踩坑记录(二):Can not resolve promote.cache-dns.local, please check your network

错误完整信息如下:org.apache.hadoop.hbase.client.ConnectionUtils - Can not resolve promote.cache-dns.local, please check your network大概意思是无法识别promote.cache-dns.local ,去我自己部署的虚拟机 执行命令[root@localhost bin]# hostnamepromote.cache-dns.local然后上网百度一番,修改自己 win.

2020-07-01 23:57:34 2395

原创 hbase踩坑记录(一):java本地连接远程hbase可是返回zookeeper的地址是localhost

控制台的打印信息频繁出现以下一句话: Opening socket connection to server peer1/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)出现这个的问题纯属是 hbase-site.xml 的配置错误,hbase-site.xml 里面可以zk的地址,默认是localhost,我犯的错误就是没有配置zk地址,导致控制台一直打印连接 127.0.0.1:2181 被拒

2020-07-01 23:03:29 1747

原创 Java 遍历 HashSet 为什么输出是有序的

1.问题今天学习数据结构哈希表,知道了哈希表的牺牲了顺序性,从而保证了效率。然后我想到了java中的 hashset和Treeset,我记得以前学习set的时候,老师说set元素是有序的,有就是说,hashset 和 treeset都是有序的。可是现在在学习数据结构的时候发现hashset 是无序的,treeset 是有序的,那这就和前面所说的set是有序的互相矛盾了,所以让来验证一下,如下:使用的是 java 8HashSet<Integer> set = new Ha...

2020-06-14 18:45:06 1302 2

原创 Kafka基础概念

1. 楔子公司项目开发用到了kafka,可是某个菜鸟不会,于是不得不进行的为期一周的晚自习去恶补相关知识。但是恶补来知识很零散,所以趁这次周末写一篇博客,总结一下得失,顺便查缺补漏。2. Kafka2.1 Kafka是什么Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息...

2020-04-12 15:58:11 726

原创 logback集成springboot框架、集成ssm框架小结

1.什么是logbackLogback是由log4j创始人设计的一个开源日志组件。Logback是要与SLF4J结合起来。2.spring boot集成logback2.1 新建一个spring boot 项目登录 https://start.spring.io/ 构建一个springboot项目,记得添加web依赖哦2.2 配置logbackxml在resour...

2019-11-23 13:48:46 318 1

原创 freemarker初体验,导出dox文档

1.Freemarker简介FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。2.使用freemark导出doc文档2.1设置ftl文件模板新建一个doc文档,内容如下然后另存为xml文件,如...

2019-11-13 11:15:45 501

原创 spring boot集成swagger

参考:https://www.jianshu.com/p/dcaff30f91cc?tdsourcetag=s_pctim_aiomsg1.什么是swagger?Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。一个可视化的管理接口的页面,并且可以导出接口文档。2.spring boot集成swagger2.1 新建spri...

2019-11-09 14:52:01 185

原创 idea编辑器的常用插件/快捷键/自定义方法模板

本人自己用到的,待完善。。。1.Lombok生成get、set和构造方法等通用方法2.Alibaba java Coding Guidelines阿里巴巴代码规范检查插件3.Free Mybatis pluginmybatis插件,可以直接从mapper的方法定位到xml4.Restfultookit可以使用idea请求测试,通过url定位到接口,方便...

2019-08-20 17:09:08 654

demo-kafka.rar

kafka集成springboot的案例,通过接口调用方式测试发送和消费的流程。该资源适用于没接触过kafka的小白,可以帮助小白达到会用kafka阶段。

2020-04-25

demo-freemarker.rar

freemarker到处含有图片的doc文档,简单易懂!freemarker到处含有图片的doc文档,简单易懂!freemarker到处含有图片的doc文档,简单易懂!freemarker到处含有图片的doc文档,简单易懂!

2019-11-12

SSM整合shiro入门

ssm整合shiro入门,集成了验证码、并发登陆人数、密码加密等,可拓展性极强

2018-08-15

websocket实现聊天室,基本小玩意

使用websocket,实现的一聊天室功能,用的是ssm作为开发框架,可拓展性很强

2018-08-05

基于SSM框架权限系统的开发

基于SSM框架权限系统的开发,前端采用ztree进行展示,使用jsp自定义判断标签进行判断是否具有相应的权限

2018-01-15

空空如也

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

TA关注的人

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