- 博客(64)
- 资源 (1)
- 收藏
- 关注
原创 关于搜索那点指令与技巧--程序员必备
我们在日常生活中始终离不开搜索(特别是面向百度搬砖的程序狗)今天就我们不谈技术,就写一个比较全面的网站收录与搜索的小技巧第一节 :搜索的小指令注意事项我们在使用搜索的时候尽量减少使用口语化的语言(比如说什么什么应该怎么样怎么样直接输入什么 空格 怎么样)要指定关键词 直接搜索限定在特定的网站 指令 关键词+空格+ site 限定的站点比如说我要在 csdn 上面搜索相关m...
2019-03-15 16:57:01 260
原创 Springboot解决JSP找不到的问题, 解决 Maven 多模块 JSP 无法读取的问题
最近在做项目的时候发想一个jsp 找不到的问题,很头痛, 先还原一下问题先上一张图吧 : 然后呢我的控制器是这样的当然我这个是还原错误,所以就简单的写了一个Demo这个呢是我的Config 所以我很确定的以为它肯定能显示出来 但是事与愿违 它永远都是404 然后我问了一下同事,他告诉了我一个方法 :<build> <plugin...
2018-10-12 14:12:12 3220 1
原创 java动态代理底层探究
平常面试的时候,有人回问你Spring,你会说什么AOP什么的,然后他会越来越往深问,其实说到AOP那么动态代理是绕不开的,那么今天我们一起来看看这个动态代理是什么个一回事先贴一张图:上面便是动态代理的结束以及它的实现方式,以及区别(我确实很懒....)but 上面的也挺通俗易懂,只要你不是初学者-----------------------------------------华丽的分割线----...
2018-05-21 18:02:09 2968 4
原创 java之单例模式分析(面试必用)
大家面试的免不了会让你写个单例模式,那么写就写呗:public class SingletonObject1 { /** * can't lazy load. */ private static final SingletonObject1 instance = new SingletonObject1(); private Single...
2018-04-09 15:48:37 5239 5
原创 POI_PI,POI升级5.2.2报错问题
项目中使用POI_PI但是升级后报错,因为项目整合了SpringBoot2.2而POI5.2.2中引入的版本比SpringBOOT自带的log版本高所以需要升级SpringBoot中配置添加如下配置<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-to-slf4j</artifactId> <version>2.
2022-06-17 10:07:15 6113 1
原创 解决mysql 数据迁移过程中使用 select into或inert into select 批量插入时id使用UUID重复问题(已解决)
INSERT INTO xx ( ) SELECT MD5(CONCAT(@rownum:=@rownum+1,UNIX_TIMESTAMP())), '这里是字段'FROM 表,(SELECT @rownum:=0) t WHERE 主要用了mysql的rowNum加上时间戳生成一个md5来生成id,这样查出来每次id都不一样
2022-04-26 11:21:56 1572
原创 Mybatis 数据访问阶段之源码分析以及插件原理分析
Mybatis 数据访问阶段之源码分析这是mybatis文章,思路在biding模块分析之后在了解完成biding模块之后,我们来到了mybatis的核心也就是数据访问的模块一、Executor 中的模板模式在了解之前我们先熟悉一下模板模式 :模板模式:一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定实现;类结构
2021-03-11 17:33:50 268
原创 Mybatis源码分析之binding 模块分析
Mybatis源码分析之binding 模块分析为什么使用mapper接口就能对数据库进行访问?一、与Ibatis编程模型的对比?二、对Ibatis进行怎么样封装的?以及核心类1.哪些类是干什么的?在什么地方被加载的 ?总结为什么使用mapper接口就能对数据库进行访问?在回答这个问题之前我们先看一下Mybatis编程方式与传统的Ibatis的区别 : @Test // ibatis编程模型 本质分析 public void originalOperation() throws I
2021-03-10 16:55:10 307
原创 Mybatis源码分析 反射模块以及设计模式在mybatis中的应用
Mybatis反射模块的解读与分析在写之前我们先滤清orm查询的大概过程,然后通过每个模块去滤清思路目录Mybatis反射模块的解读与分析orm框架查询数据过程一 反射模块的大概分析如果我们的相关类如果没有get()set()方法的话我们的Mybatis会把他自动生成**Mybatis大概的执行思路:**二、MyBatis 流程概述建造者模式的理解与使用Demo建造者模式示例:接着说mybatis的流程XMLConfigBuilder的初始化的过程总结orm框架查询数据过程提示:以下是本篇
2021-03-10 14:09:29 373
原创 mybatisplus 使用Demo大全
mybatisplus 使用实例一些基本的配置与用法一、修改的用法二、查询用法记录2.CRUD的基本操作查询的N种用法更新与删除的N种用法更多的用法总结一些基本的配置与用法global-config: db-config: #ID_WORKER是默认的全局主键策略 id-type: ID_WORKER #NOT_NULL:默认,当实体类字段为null时,不引入到where #IGNORED:当实体类字段为null时,仍然引入到where,即whe
2021-03-05 11:43:01 682
原创 mybatis缓存模块分析
mybatis缓存模块分析需求分析一、 装饰器模式二、装饰器的简单使用这样我们就可以通过不同的装饰器来使用不同的功能1.接着我们mybatis中用到的装饰器的应用需求分析MyBatis 缓存模块需满足如下需求:MyBatis 缓存的实现是基于 Map 的,从缓存里面读写数据是缓存模块的核心基础功能;除核心功能之外,有很多额外的附加功能,如:防止缓存击穿,添加缓存清空策略(fifo、lru)、序列化功能、日志能力、定时清空能力等;附加功能可以以任意的组合附加到核心基础功能之上;基于 Map
2021-03-04 15:29:12 379 2
原创 Mybatis数据源的创建过程与销毁过程与工厂模式的理解
mybatis数据源的组件类图与简单的理解数据源对象是比较复杂的对象,其创建过程相对比较复杂,对于 MyBatis 创建一个数据源具体来讲有如下难点:常见的数据源组件都实现了 javax.sql.DataSource 接口;MyBatis 不但要能集成第三方的数据源组件,自身也提供了数据源的实现;一般情况下,数据源的初始化过程参数较多,比较复杂;综上所述,数据源的创建是一个典型使用工厂模式的场景,实现类图如下所示:DataSource:数据源接口,JDBC 标准规范之一,定义了获取获取
2021-03-01 19:11:06 333
原创 Mybatis源码分析,动态代理 增强 debug补充示例图
debug补充示例图起始debug源码:首先搞清楚那些地方需要打印日志?通过对日志的观察,如下几个位置需要打日志:在创建prepareStatement 时,打印执行的 SQL 语句;访问数据库时,打印参数的类型和值查询出结构后,打印结果数据条数因此在日志模块中有 BaseJdbcLogger 、ConnectionLogger 、PreparedStatementLoggerResultSetLogge 通过动态代理负责在不同的位置打印日志;几个相关类的类图如下: BaseJdbcL
2021-03-01 17:04:48 216
原创 实战Docker虚拟化技术 安装negix tomcat 企业案例 等
Docker入门简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包括系统。“Docker”应该是2014年最火爆的技术之一,如果没有听说过,那么你就out了,2015年将开启新的跨越。Docker ...
2021-03-01 14:02:50 2825
原创 最全SpringBoot配置入门教程包含Docker等
**一、**Spring Boot 入门1、Spring Boot 简介简化Spring应用开发的一个框架;整个Spring技术栈的一个大整合;J2EE开发的一站式解决方案;2、微服务2014,martin fowler微服务:架构风格(服务微化)一个应用应该是一组小型服务;可以通过HTTP的方式进行互通;单体应用:ALL IN ONE微服务:每一个功能元素最终都是一个可独...
2020-04-21 16:34:51 724
原创 IDEA对git进行两个分组的合并(如有冲突也会直观的呈现出来)
1前提假设原始分支是test 然后领导让你重构一个版本 就叫做refactor_bytest 这个版本2 然后呢你们项目经理说要改点东西 上生产环境 首先你当前在refactor_bytest分支 然后这样操作就可以将你的改动暂时存起来,当你改完test的时候回来就可以unstash 来继续工作那么你就去改test ,改完之后还是commit push 又切到...
2020-04-08 17:28:18 688
原创 mysql小记,分组,排序
业务,有一个字表,还有n个子表,然后首先按照主表的修改时间排序,在按照因为好多业务表都是JOIN方式关联的也就是说 Join之后就没有主子表这一说了,但是呢它还想要如下这种展示的方式也就是说先按照部门来进行分组,然后在按照项目的修改时间来进行排序 那假设这个部门有01,02,03三个项目如果某个部门的01项目更改了,那之后的02,03也要跟着排在01后面,也就是最后修改的,要放在...
2020-04-08 13:47:21 233
原创 ajax返回List<Map>类型遍历小计
ajax 返回 类型为List<Map> 类型的JSON格式所以记一下 success: function(jsonData){ if (jsonData !=null && jsonData !==undefined){ $.each(jsonData,function(i, n){ //循环list ...
2020-03-12 14:50:05 533
原创 java简单工厂模式,工厂模式与,抽象工厂解析与实例
简单工程方法 与抽象工厂的理解与实现定义与类型定义:定义一个创建对象的接口但让实现这个接口的类来决定实例化哪个类工厂方法让类的实例化推迟到子类中进行类型:创建型适用场景创建对象需要大量重复的代码客户端(应用层)不依赖于产品突奕到如何被创建、实现等细节一个类通过其子类来指定创建哪个对象优点用户只需要关心所需产品对应的工厂,无须关心创建细节加入新产品符合开闭原则,提高可扩展性...
2019-12-18 14:36:36 163
原创 java设计模式七大原则带Demo与讲解
开闭原则 定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭 ,优点:提高软件系统的可复用性及可维护性 用抽象构建框架,用实现扩展细节实现开闭原则的思想就是面向抽象编程.而不是面向具体的实现变成,因为抽象呢相对来说是稳定的,让类去依赖于固定的抽象,所以呢,对于修改来说就是封闭的,而通过面向对象的继承以及多态的机制。那就可以实现对抽象体的继承了,那通过重写啊...
2019-12-17 13:13:31 431
原创 (设计模式Debug内存分析) UML类图讲解
UML急速入门定义 : UML是一种开放的方法 用于说明、可视化、构建和编写一个正在开发的 面向对象的、软件密集系统的制品的开放方法 分类 : 结构式图形:强调的是系统式的建模 行为式图形:强调系统模型中触发的事件 交互式图形:属于行为式图形子集合,强调系统模型中资料流程 类图 : Class Diagram:用于表示类、接口、实例等之间相互的静态关...
2019-12-16 11:53:06 245
原创 mysql字符串分割操作 用, 切割并且去重,关联其他表操作带实例
需要将字符串1,2,3,4,5,6,7拆分成1234567SELECT '1,2,3,4,5,6,7,8' FROM dual;-- 列转行分割SELECT DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(a.path,',',b.help_topic_id + 1),',',-1) FROM (SELEC...
2019-11-15 13:46:42 5528 1
原创 斐波那契数与复杂度相关概念
斐波那契数与复杂度相关知识学习与理解斐波那契数原理解析但是问题来了,为什么这个东西执行会这么慢呢?复杂度是什么?斐波那契数斐波那契数 ,我们在高中的时候就学过,但是总所周知我们学过的都给了老师斐波那契数列,又称黄金分割数列或兔子数列,该数列为0、1、1、2、3、5、8、13、21、34、…,可以看到它的性质是前两项之和等于后一项。其它相关的一些知识自行百度进行理解就好.我们说一下,网上大部...
2019-07-16 19:14:40 428
原创 9 ChannelHandlerContext,ChannelInitializer组件的理解(之间的关系)与笔记
ChannelHandlerContext,ChannelInitializer组件的理解与笔记我们今天来看看ChannelInitializer组件ChannelInitializer类图ChannelInitializer什么时候会被调用?总结使用场景:接着我们看看 ChannelHandlerContext这个对象ChannelHandlerContext特点问题 pipeline 本身是一...
2019-06-20 11:51:26 494
转载 8 Netty源码分析之ChannelOption与AttributeKey组件分析
Netty源码分析之ChannelOption与AttributeKey组件分析第一步看源码过程分析我们看看AttributeKey这个类的作用总结: ChannelOption 是维护了一些TCP参数的赋值,Attribute 是用来存储业务数据,相当于activiti里面的参数第一步看源码过程分析我们来看看第一段的内容 //ChannelOption init启动我们分析Channe...
2019-06-19 18:36:36 378
原创 7,Netty的Channel与ChannelPipeline源码分析以及Doc介绍
Netty的Channel组件的作用以及相关类的具体Doc首先我们看看源码分析过程问题1ChannelPipeline是在什么时期创建的呢?用到什么样的模式? 起了什么样的作用 ?首先我们看看源码分析过程如果有什么不懂可以看看前面的几篇文章,我们发现它其实生成了一个Channel类型的ChannelFuture那么这个类是干什么的呢?我们看看DOc/** * A nexus to a n...
2019-06-18 10:42:58 654
原创 5 Netty 设置Reactor设置模式原理以及源码分析 与 Reactor 模式执行原理
先上一张手稿图 :具体步骤上面写的很清楚,Netty创建了两个连接,一个用于监听请求,只关注Accept 事件也就是连接事件, 一个是正在处理的对象也就是WorkGroup对象, 这两个之间通过selectionKey集合来传递源码分析:首先我们看看示例,然后分析相对应的方法,以及作用: 看注释哦 public static void main(String...
2019-06-12 14:05:24 209
原创 JavaFuture源码分析与Netty提供的Future与ChannelFuture优势分析与源码分析
javaFuture源码分析与Netty提供的Future与ChannelFuture优势分析与源码分析既然是源码分析那么免不了要看源码从哪儿看呢? 当然是JDK1.5Future总结:其实可以很清楚的了解到,这些dk1.5里面所引入的future这个接口它主要的作用就是封装异步计算的一个结果并且提供了方法来去中断或者取消任务的执行,并且提供了一些返回布尔值的一些方法,来去判断这个任务呢是不是被取...
2019-05-21 16:52:38 609
原创 4 java NIO 零拷贝深入剖析用户空间与内核空间切换方式(图解)
业务场景:将磁盘上的文件读取到内存里面发送给用户 通过网络 (Linux,Unix)我们分析一下普通的IO拷贝方式,从操作系统视角来看 .从内核空间的拷贝过程:**我们再来看看NIO零拷贝的内存方式 **但是我们还是看到了两次的copy操作, 那么是否能直接把我们的数据拷贝到 socket缓存区呢?也就是这样的** 操作系统提供的支持 ,有些系统需要是支持SocketBuffer直接...
2019-04-25 16:39:45 474
原创 JAVA NIO编程的示例 与原方式编程方式 以及编程模型相关概念
原始的编程模型 Java Socket 示例服务器端 也就是IO 阻塞式编程的普通写法package com.xykj.server; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; i...
2019-04-24 17:03:55 232
原创 2JAVA NIO HeapByteBuffer与DirectByteBuffer区别
JAVA NIO的相关方法以及使用普通方法简介类型化的put 以及类型化的get 方法 他们的底层都是对字节数组的操作** * 描述: * byte 方法的 * 类型化put和类型化get * * @author HeGaoJian * @version 1.0 * @create 2019-01-11 15:21 */public class NIOTest5 { ...
2019-04-23 19:03:56 441
原创 1起点JAVANIOBuffer中各种重要的状态属性的含义与关系图解
JAVANIOBuffer中各种重要的状态属性的含义与关系图解一个简单的NIO例子NIO的基本概念与笔记源码看一看大概的意思与 问题 :buffer是怎么读?怎么写?flip()方法执行的原理:Buffer类简单了解代码测试总结一个简单的NIO例子 FileOutputStream outputStream = new FileOutputStream("NioTest3.txt");...
2019-04-23 15:07:23 298
原创 关于搜索那点指令与技巧---第二扒
最近学了这们搜索课,没地方记那就写在CSDN里面呢,就当做生活的一些记录吧!!!我们想要搜索找的人呢? 应该怎么搜呢?多图预警..............................
2019-03-21 18:36:15 129
原创 maven 报错各种警告信息问题 Install问题解决
首先呢我在IDEA 执行install 的时候 报错了一堆这是我的maven打包插件信息: 如果你打包的时候报错信息是这样的:我的配置是Maven 3.3.9 +JDK 1.8 这是因为JDK 1.8的Doc检查比较细致的问题: 然后呢在插件下面添加如下细信息<!-- Java Document Generate --><plugin> ...
2019-01-15 14:18:52 3536
原创 利用IDEA debug war程序
情况1 部署在服务器上的web程序出错,所以利用本地代码远程debug 基本步骤1 ok 我们到了这个页面了 host 呢就是远程的地址 好的重点来了 ,我们点击 jvm 里面的那一大串,在cmd 里面赋值进去 java "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8983...
2018-12-14 10:50:37 2979
原创 String根据,切割并返回一个list
String根据,切割并返回一个list 所用工具 Guava 我想每个项目都会用到它吧!!!import com.alibaba.fastjson.JSON;import com.google.common.base.Joiner;import com.google.common.collect.Lists;import com.google.common.base.Splitte...
2018-09-17 15:58:30 2079
原创 多线程的读写锁分离的实现方式
在我们一般的操作中,难免会遇到读和写的操作,但是如果多个线程去读的话它是可以并行去读的,因为共享数据没有发生什么改变,如果多个线程读写的话那就会很麻烦,或者一个线程读着一个线程正在写,这样数据也可能不正确,read read 并行化 yesread write no write write no需求简明分析: 1.读的时候有好几...
2018-07-17 14:44:53 1672 2
原创 单线程执行设计模式(有一个门始终只有一个通过)
在我们的业务开发中,在多线程的情况下始终会有资源的公用,就是共享资源的使用,这个时候我们怎么保证线程的安全性呢?我们模拟一下业务场景: 三个角色:Gute 相当于一个资源 调用一个方法pass 方法 User 是使用资源的地方 当User跑起来的时候不断的使用这个资源 public class Gute ...
2018-07-16 15:06:39 834 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人