自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

转载 List使用stream流转成map的几种方式详解

参考:https://www.jb51.net/article/281570.htm#_label8。

2024-02-04 16:21:20 9391

原创 windows注册tomcat服务

也就是tomcat解压安装文件不对,应选择以下Windows版本,将所缺文件拷贝。执行命令service.bat install。1、service.bat不是内部命令。因为tomcat缺少以下文件。

2023-09-04 12:03:40 1166

原创 根据InputStream判断文件类型

【代码】根据InputStream判断文件类型。

2023-07-05 15:56:04 2173

转载 inputStream 流的复制

原文链接:https://blog.csdn.net/jeikerxiao/article/details/109107768。由于流读过一次就不能再读了,而 InputStream 对象本身不能复制,而且它也没有实现Cloneable接口。2、后面要使用 InputStream 对象时,再从ByteArrayOutputStream 转化回来。获取到一个 inputStream 后,可能要多次利用它进行 read 的操作。

2023-07-05 15:37:31 1418

原创 如何将word文件转为pdf

假如你使用的是Linux服务器,这个转化过程不加以配置的话,在Linux中转化后的PDF,如果带有中文是会有乱码现象的。因为Linux里面没有中文字符的样式,所以我们要做的就是将window中的中文样式导入到Linux服务器里面。1、找到windows系统的中文样式,并打成一个包。这个位于C:\Windows\Fonts,这个文件一般来说是只读的,但我们可以直接复制一个,然后再打包,打包成一个zip包。经过对比,POI可以实现常规的文本转换,数据表格没有转换成功,于是选择Aspose,完美转换。

2023-03-19 18:20:50 290

原创 spring事务@Transactional执行流程源码学习

@Transactional工作机制简述spring定义了@Transactional注解,基于AbstractBeanFactoryPointcutAdvisor、StaticMethodMatcherPointcut、MethodInterceptor的aop编程模式,增强了添加@Transactional注解的方法。同时抽象了事务行为为PlatformTransactionManager(事务管理器)、TransactionStatus(事务状态)、TransactionDefinition(事务定

2022-02-07 23:15:00 1015

转载 Missing artifact com.sun:tools:jar:1.8.0 pom文件报错解决方法

eclipse导入maven项目,pom文件报错:Missing artifact com.sun:tools:jar:1.8.0,两种解决方案:1、设置eclipse的配置文件eclipse.ini增加-vm指定jdk路径例如-vm D:\Java\jdk1.8\bin2、项目添加maven依赖<dependency>  <groupId>com.sun</groupId>  <artifactId>tools</artifactI

2022-01-17 23:43:40 1929

原创 ThreadPoolTaskExecutor源码解读

ThreadPoolTaskExecutor类图如下先看其父类 ExecutorConfigurationSupport@Overridepublic void afterPropertiesSet() { //初始化executor initialize();}public void initialize() { ...... //入参线程工厂、线程拒绝执行处理器 this.executor = initializeExecutor(this.threadFactory, this

2022-01-16 23:22:58 403

原创 java线程池工作原理

线程池执行流程

2022-01-13 23:49:16 515

原创 git stash 命令的使用

1、git stash save "save message"将工作区的文件暂存到暂存区,执行存储时,添加备注,方便查找,只有git stash 也可以,但查找时不方便识别。没有在git 版本控制中的文件,是不能被git stash 存起来的,需要先执行下git add 加到git版本控制中。2、git stash list查看stash了哪些存储3、git stash show显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git st

2022-01-05 00:21:11 518

原创 mysql binlog的使用

mysql使用 mysqlbinlog 来恢复数据

2021-01-21 23:39:10 138

转载 Windows下Mysql5.7开启binlog步骤及注意事项

Windows下Mysql5.7开启binlog步骤及注意事项###1、查看是否开启了binlog:show binary logs;默认情况下是不开启的。2、开启binlog:修改mysql的配置文件my.ini。添加如下配置:该文件默认不允许修改,需要右键“管理员取得所有权”之后才能保存修改。另外,需要注意的是图中的my.ini位于:C:\ProgramData\MySQL\MySQL Server 5.7,而不是位于:C:\Program Files\MySQL\MySQL Server

2021-01-18 13:19:32 225

转载 Spring Data Jpa自定义关联查询

Spring Data Jpa自定义关联查询,可以使用原生SQL,也可以使用JPQL语法。原生SQL返回数组对象List<Object[]>;JPQL返回自定义对象ListViewUserInfo.java/** * 自定义实体 */public class ViewUserInfo { //table: user info private Integer id; private String name; private String username;

2021-01-03 23:11:01 364

原创 maven多环境配置

1、创建配置文件:2、pom.xml文件配置设置打包名3、application.yml动态指定激活环境4、使用多环境打包#默认激活环境(dev)mvn clean package#dev环境,dev对应profile中idmvn clean package -P dev#prod环境mvn clean package -P prod...

2021-01-03 20:28:58 267

原创 springboot之starter

一、mybatis整合starter1、pom依赖2、指定自动装配文件位置3、根据配置文件属性进行装配4、获取配置文件进行属性绑定5、springboot启动时加载springFactory二、自定义starter1、starter是一个集成接合器,完成两件事:①引入相关的jar;②自动配置;springboot规范:①starter.jar 完成引入相关的jar②autoConfigure.jar 完成自动配置2、starter命名规范spring提供的star

2020-12-13 23:27:36 390

转载 关于 “java中常量定义在interface中好还是定义在class中好“ 的一些思考

java中interface中定义变量都是"public static final" 类型的, 也就是常量, 因此很多人在interface定义常用的常量(这也是本人偏爱的方式);由此却引起了不少风波, 网上关于此问题的讨论也非常多, 下面说说我的个人意见:下面是功能等同的两种定义常量的方式:package com.example;public final class Constants { private Constants() {} public static final in

2020-12-10 12:03:41 697

原创 JVM常用参数简介

栈设置-Xss:设置每个线程可使用的内存大小,即栈的大小堆设置 -Xms200M 初始堆大小,默认为物理内存的1/64 -Xmx200M 最大堆大小,默认为物理内存的1/4 -Xmn50M 新生代大小(eden+ 2 survivor space);老生代的大小:-Xmx减去-Xmn -XX:NewRatio=2 设置新生代和老年代的比值。如:为2,表示年轻代与老年代比值为1:2,Sun官方建议年轻代的大小为整个堆的3/8左右 -XX:Survivor

2020-11-25 23:10:28 398

原创 JVM类加载机制

一、类加载器参考:https://www.cnblogs.com/zxguan/p/7798381.htmlhttps://www.cnblogs.com/hqlong/p/6814373.html将Class字节码重新解析成JVM统一要求的对象格式1、分类①Bootstrap ClassLoader主要加载JVM自身工作所需的类,完全由JVM自己控制。没有父加载器,也没有子加载器,只是一个类加载工具。根类加载器从系统属性sun.boot.class.path所指定的目录中加载类库。根类加载器

2020-10-31 16:05:01 244 3

转载 spring security过滤器链及认证流程

一、过滤器链spring Security功能的实现主要是由一系列过滤器链相互配合完成。下面介绍过滤器链中主要的几个过滤器及其作用:1.SecurityContextPersistenceFilter 会在请求开始时从配置好的 SecurityContextRepository 中获取 SecurityContext,然后把它设置给 SecurityContextHolder。在请求完成后将 SecurityContextHolder 持有的 SecurityContext 再保存到配置好的Sec

2020-10-21 17:09:49 922

原创 JPA使用原生sql实现分页

1、controller层@GetMapping("/get/myPage")public JSONObject getAllByMyPage(HttpServletRequest request, HttpServletResponse response, @RequestParam("page") int page, @RequestParam("size") int size){ PageUtil pageUtil = studentService.findAllStudentByMypa

2020-09-13 23:21:11 1959

转载 Vue父子组件间通信

一、子组件向父组件传值子组件内部通过this.emit(′方法名′,要传递的数据)方式,来调用父组件中的方法,同时把数据传递给父组件使用。1、自定义事件在子组件中通过emit('方法名', 要传递的数据)方式,来调用父组件中的方法,同时把数据传递给父组件使用 。1、自定义事件在子组件中通过emit(′方法名′,要传递的数据)方式,来调用父组件中的方法,同时把数据传递给父组件使用。1、自定义事件在子组件中通过emit()把值传递给父组件,父组件使用v-on:xxx(或者使用语法糖@xxx);但是需要注.

2020-09-10 01:01:25 301

转载 Spring Security 中的身份认证

原文地址:https://blog.gaoyuexiang.cn/2020/06/07/spring-security-authentication/

2020-09-07 11:31:24 103

原创 jdk1.8 HashMap那些事

一、hash 算法和寻址算法hash() 方法static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);}h = key.hashCode() 表示 h 是 key 对象的 hashCode 返回值;h >>> 16 是 h 右移 16 位,因为 int 是 4 字节,32 位,所以右移 16 位

2020-08-13 00:46:07 179

转载 MyISAM与InnoDB的索引差异

《数据库索引,到底是什么做的?》介绍了B+树,它是一种非常适合用来做数据库索引的数据结构:(1)很适合磁盘存储,能够充分利用局部性原理,磁盘预读;(2)很低的树高度,能够存储大量数据;(3)索引本身占用的内存很小;(4)能够很好的支持单点查询,范围查询,有序性查询;数据库的索引分为主键索引(Primary Inkex)与普通索引(Secondary Index)。InnoDB和MyISAM是怎么利用B+树来实现这两类索引,其又有什么差异呢?这是今天要聊的内容。一,MyISAM的索引MyISAM

2020-07-12 23:10:23 112

转载 MySQL如何正确使用索引

MySQL使用了B+Tree作为底层数据结构,能够实现快速高效的数据查询功能。工作中可怕的是没有建立索引,比这更可怕的是建好了索引又没有使用到。本文将围绕着如何优雅地使用索引,图文并茂地和大家一起探讨索引的正确打开姿势,不谈底层原理,只求工作实战。一、 索引的特点page之间是双链表形式,而每个page内部的数据则是单链表形式存在。当进行数据查询时,会限定位到具体的page,然后在page中通过二分查找具体的记录。并且索引的顺序不同,数据的存储顺序则也不同。所以在开发过程中,一定要注意索引字段的先后

2020-07-12 17:11:14 1352 1

转载 springboot 配置过滤器、拦截器、监听器

1.配置拦截器创建拦截器类 实现HandlerInterceptor接口创建springmvc配置类 实现WebMvcConfigurer 中的addInterceptors方法(注意:WebMvcConfigurer和@EnableWebMvc注解混合使用时须知:@EnableWebMvc开启后,意味着springmvc环境被你完全接管了(若不定义需要那些bean,确实啥都没有了),也就是说混合使用会覆盖@EnableAutoConfiguration关于WebMvcAutoConfiguratio

2020-07-08 17:36:56 181

原创 JWT认证原理及整合SpringSecurity

几种常用的认证机制HTTP Basic AuthHTTP Basic Auth 在HTTP中,基本认证是一种用来允许Web浏览器或其他客户端程序在请求时提供用户名和口令形式的身份凭证的一种登录验证方式,通常用户名和明码会通过HTTP头传递。在发送之前是以用户名追加一个冒号然后串接上口令,并将得出的结果字符串再用Base64算法编码。例如用户名是Aladdin、口令是open sesame,则拼接后的结果就是Aladdin:open sesame,然后再将其用Base64编码,得到QWxhZGRp

2020-07-06 00:07:42 421

转载 js中if判断条件的类型

在所有编程语言中if是最长用的判断之一,但在js中到底哪些东西可以在if中式作为判断表达式呢?例如如下几行,只是少了一个括号,真假就完全不同,到底表示什么含义呢[javascript] view plain copyvar obj={}; obj.Funtext=function(){}; if(obj.Funtext) { alert("true obj.Funtext;"); } else { alert("f

2020-07-03 16:10:34 879

原创 移动端手写签名实现 (jSignature.js)

1、引入jQuery.js、jSignature.js (jSignature是基于jquery的插件 所以要先引入jQuery,jSignature.js 下载地址https://github.com/brinley/jSignature)2、html如下<div class="container"> <div id="signatureparent"> <div id="signature"></div> </di

2020-07-02 01:17:31 5232 1

原创 jquery在点击位置打开弹窗(考虑页面滚动因素)

获取坐标1、相对于屏幕如果是涉及到鼠标点击确定位置相对比较简单,获取到鼠标点击事件后,事件screenX,screenY获取的是点击位置相对于屏幕的左边距与上边距,不考虑iframe因素,不同浏览器下表现的还算一致。代码如下:function getMousePos(event) { var e = event || window.event; return {'x':e.screenX,'y':screenY}}2、相对浏览器窗口绝大多数情况下我们希望获取鼠标点击位置相对于浏

2020-06-30 00:41:14 541

原创 Itext设置页眉页脚、表头划线、水印、条形码、二维码

先上图看效果上代码主要流程: public static void main(String[] args) throws Exception { //1、建立Document对象的实例。 Document document = createDocumentByRectangle(); //2、建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。 PdfWriter writer = PdfW

2020-05-31 18:51:57 4706 2

原创 Itext设置单元格内容垂直居中

先看效果图再上代码 cell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER);//水平居中 cell.setUseAscender(true);//垂直居中 cell.setVerticalAlignment(PdfPCell.ALIGN_MIDDLE);//垂直居中

2020-05-30 21:53:09 2857

原创 git pull时冲突的几种解决方式

两种情况:pull → commit → push 和 commit → pull → push情况一、未commit先pull,视本地修改量选择revert或stash1 、本地修改量小git revert -n 版本号git pull在最新代码上修改git pull → commit → push2 、本地修改量大,冲突较多git stash 先将本地修改存储起来git pull 再次拉取代码git stash pop 还原暂存的内容解决冲突git pull → commit

2020-05-11 00:06:37 1806

原创 git拉取代码冲突处理

在使用git pull命令拉取代码时,有时会遇到以下错误信息:error: Your local changes to the following files would be overwritten by merge: ...Please commit your changes or stash them before you merge.AbortingUpdating 1d17a2c5..3de3e123解决方法:一、根据提示,可以直接commit你的修改二、使用stas

2020-05-10 19:02:34 3375

空空如也

空空如也

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

TA关注的人

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