自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (7)
  • 收藏
  • 关注

原创 自我总结碎片知识点

持续更新中…1、mybatis的缓存:2、mybatis如何和spring整合:3、classpath下的第一个*...

2020-04-30 11:00:40 359

原创 JVM优化——总结篇

今天来分享一下我对JVM优化这一方面的经验总结;JVM是我们作为java开发人员必不可少的一个东西也是java代码运行的虚拟机,我们在使用他的时候也可以对他进行优化提高性能;引入JVM虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用JVM虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在JVM虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改...

2020-04-12 20:53:28 354

原创 Linux离线安装docker

注:后续也可将/home/nginx/conf下的nginx.conf和/home/nginx/conf.d下的default.conf合并成一个文件(将default.conf中的内容全部复制到nginx.conf 把最后一行 include /etc/nginx/conf.d/*.conf;/home/redis/redis.conf:/etc/redis/redis.conf 这里是将 liunx 路径下的redis.conf 和redis下的redis.conf 挂载在一起。

2023-01-30 16:35:54 558

原创 linux常用命令

关机 (系统的关机、重启以及登出 )shutdown -h now 关闭系统(1)init 0 关闭系统(2)telinit 0 关闭系统(3)shutdown -h hours:minutes & 按预定时间关闭系统shutdown -c 取消按预定时间关闭系统shutdown -r now 重启(1)reboot 重启(2)logout 注销基本命令uname -m 显示机器的处理器架构uname -r 显示正在使用的内核版本cat /proc/cpuinfo 显示CP

2021-06-22 15:52:00 6731

原创 MySQL 分段替换字符串和concat拼接字符串为null解决方案

trim 实现删除字符串中的指定字符和逗号:需求背景:要将name字段中的 1637 删除掉;使用replace替换为空会存在逗号无法处理的情况。解决方案:trim 函数update `percent` set name = trim(both ',' from replace(concat(',', name, ','), ',1637,', ','));语句的意思为:先给name字段首尾拼接两个逗号 变为:,1637,4512,12,564, 再使用replace将 ,1637,

2021-06-02 19:20:18 7399 1

原创 Java clone复制对象,报java.lang.CloneNotSupportedException解决方法

java中使用clone()来克隆对象时,直接调用就可以:ReviewCost reviewCost = null; try { reviewCost = (ReviewCost) that.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); }但是这样在运行中会有错误:java.lang.CloneNotSupportedException: class com.bjhab.ent

2021-05-07 16:44:00 8079

原创 Linux Centos7服务器安装 Jdk,MySQL ,Tomcat,Nginx

所需资源包:去官方网站下载:jdk1.8:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.htmlMySQL5.7:https://dev.mysql.com/downloads/mysql/5.7.html#downloadstomcat8:http://tomcat.apache.org/download-90.cgi另外,考虑到去官网下载的话会很慢,所有我将本次所使用到的资源包已上传到csdn资

2021-04-29 17:21:41 6793

原创 Linux下Centos7服务器对外开放,关闭和查看端口

最近整了个腾讯云服务器,安装完服务访问的时候发现一直访问不到,本地也可以ping通。最后发现有两个地方需要设置:一是在腾讯云控制台添加一下规则(放开端口)。二是在服务器上开启端口;(1)查看对外开放的端口状态查询已开放的端口 netstat -anp查询所有监听的tcp端口:netstat -antpl根据端口号查看正常运行的进程:netstat -nlp|grep 8080查询指定端口是否已开 firewall-cmd --query-port=666/tcp提示 yes,表示开启;no表示

2021-04-28 17:39:06 7147

原创 SSM项目配置连接SQL Server

本篇文章基于上一篇:Spring项目配置多个数据源,代码中动态切换使用,可以先读下上一篇。SQL server的驱动和MySQL不是同一个,需先安装SQL server的驱动包:<dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>8.2.2.jre8</version&gt

2021-04-21 17:24:44 6924

原创 Java实现将List中的数据平均分成多个List

将List平均拆分成多个组:/** * 将一组数据平均分成n组 * @param source 要分组的数据源 * @param n 平均分成n组 * @param <T> * @return */ public static <T> List<List<T>> averageAssign(List<T> source, int n) { List&lt

2021-04-21 17:07:57 8486

原创 KKFileView前端实现Word,Excel,PPT在线预览(实测可用于内网项目)

目前网上现有的文件在线预览方式有以下几种:1、通过a标签href属性直接打开文件这种方式是通过把文件上传到服务器,在后台将文件转为pdf。通过浏览器可直接查看pdf文件的特点使用a标签直接就可以打开预览。缺点就是需要手动将文件转为pdf文件 还有涉及到编码及内容乱码问题。2、通过jquery插件jquery.media.js实现这个插件可以实现pdf预览功能(包括其他各种媒体文件)但是对word等类型的文件无能为力。3、直接通过页面内嵌iframe对页面的UI和内容展示实现不太好,类似于a标签

2021-03-25 10:27:05 14403 3

原创 Java计算两个时间段内的工作日天数

一般在OA系统中都会遇到计算员工这段时间内的工作天数。这种有两种方式可以解决:一是调用第三方服务接口进行计算,二是自己在系统中写代码计算。一的好处就是每年的节假日不用自己去维护直接用两个时间段就可以计算出来。但缺点是有些公司可以会和法定节假日期不一样那么这时候就计算不了了,还有就是一般这种OA的系统自己内部使用的话可能会部署在内网上那么就访问不了第三方接口了。二需要自己维护节假日和计算。但有效的解决了方式一的缺陷;根据方式二的特点介绍一个工具类,用来计算两个时间段内的工作天数:import ja

2021-03-18 17:22:17 7785 2

原创 Spring项目配置多个数据源,代码中动态切换使用

项目是基于Spring的SSM项目,现有一个需求需要对接其他平台查询数据。因为对方平台的数据是存在另一个数据库中所以该项目不仅要连接自己的数据库还要能够连接到对方的数据库。第一步:编写数据库信息配置文件(用于配置数据库用户名、密码等相关信息)第二步:编写Spring持久层配置文件:applicationContext-dao.xml在该配置文件中会配置两个MySQL数据源分别是 :dataSource1和dataSource2。且需要在运行的时候才指定到底使用哪个数据库<?xml versi

2021-03-18 10:57:23 6805 1

原创 Redis的两种持久化方式

1、redis的持久化的两种方式;已经这两种方式的使用场景和方式答案:一、redis的持久化方式之RDB:我们所谓的RDB持久化就是指的是将当前进程的数据生成快照存入到磁盘中,触发RDB机制又分为手动触发和自动触发1、手动触发RDB:save命令,但是save命令将会阻塞我们的redis服务器直到RDB完成,所以真实的环境中一般不会使用该命令bgsave命令,使用该命令redis会fork一个子进程来负责RDB持久化,完成持久化后自动结束子进程,所以只会发生在fork的阶段2、自动触发RDB:

2021-02-24 15:52:47 7162

原创 MySQL查询统计今年12个月的数据,没有默认为空

此处先省略二百字的废话做报表统计的时候,常常需要在MySQL端用sql统计近12个月的数据,或者近30天的数据。假如遇到当月没有数据,或者当天没有数据时,默认为0。SELECT CASE WHEN length(mon)= 1 THEN concat(LEFT(CURRENT_DATE, 5),'0',mon) ELSE concat(LEFT(CURRENT_DATE, 5), mon) END monthFROM (SELECT @m := @m + 1 mon FROM city,

2020-10-24 18:25:06 8459 1

原创 推荐篇:原来阿里也对excel情有独钟

最近发现alibaba包下有一个excel导入导出工具类,非常好用,对于普通的场景及业务逻辑用起来非常方便。记录一下;位置:该工具类在 com.alibaba包下。<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.6</version> </depend

2020-10-21 10:29:11 6749

原创 Feign遇到的坑:调用生产方获取响应流。

遇到个小坑,记录下​。​在SpringBoot微服务架构中,通常都是使用eureka作为注册中心管理服务,使用feign来相互调用各个服务进行服务间的沟通。一般情况下去调用生产方的请求都是有返回值的,使用feign调用在消费方拿到生产方的返回值后去做处理,意思就是说生产方服务的请求是什么类型的返回值那么使用feign调用的时候就要接收什么类型的返回值:例如:A服务生产方:Feign调用:B服务消费方:以上可以看出当使用feign去调用生产方的请求时 参数和返回值必须保持一直才可以正常

2020-10-15 10:17:41 11019 5

原创 接上一篇:Java实现导出Excel并附带水印

上篇介绍了Java使用poi操作excel表格的导入和修改,在日常开发中经常也会遇到在页面上点击按钮将数据库中的数据导出到excel表中;今天我就遇到这么一个需求:根据条件将查询到的数据导出到Excel表格中要支持xls/xlsx两种不同类型的excel文件,携带水印效果,并且每个人导出时水印要不同。(听听听听,这说的是人话吗… 但是为了生活还得硬着头皮做出来啊。)在了解Excel的水印其实就是插入艺术字再修改字体的颜色、字体、透明度就变成了所谓的水印效果了(一顿操作后我发现其实就类似插入一张透明

2020-10-12 19:37:29 10019 9

原创 这么优秀的Excel工具类,你难道不用?

前段时间帮朋友弄一个对excel文件操作的方法,大功告成后特此分享出来,以便后面用到后可以直接CTRL+C&CTRL+V。这里一是读取excel表格中的数据(包含表格中的公式及各种复杂数据类型),二是修改excel表格中某一个单元格中的数据(并且保证修改后表格中的公式计算得到的数能够实时刷新)。其实像这种工具类网上搜一下全是,但是大部分都是非常混乱的有头没尾的对自己的业务无法应用的或者根本就是看不懂,下面这些方法是我结合网上某些例子及参考其他资料整理出的一款非常使用且简单易懂的excel工具类,

2020-10-01 11:00:32 6573

原创 SpringMVC是如何处理请求中的参数的

在第一节介绍了SpringMVC的执行流程,但是在请求中肯定是需要进行参数传递的,那么在SpringMVC的核心控制器拦截到请求后,它是如何处理请求中的参数的呢?我们同样也可以使用断点跟踪的方式来了解它是怎么处理的。在第一节的第五步中可以知道核心处理器在处理请求时是通过getMethodArgumentValues方法来处理本次请求中的参数的,所有我们直接从该方法开始跟踪了解。key=value形式传递基本数据类型第一步:跟踪到getMethodArgumentValues方法。在getMe

2020-09-21 14:50:29 7096

原创 SpringMVC三大组件的作用及原理

第一节介绍了SpringMVC的执行流程,其中里面涉及了三个组件,那么这三个组件是干什么的呢?在哪用到了呢?在这节中简单介绍下springmvc三个组件的作用 及工作流程。处理器映射器:处理器映射器的作用:根据请求的url查找Handler。第一节中说的工程启动或执行第一次请求的时候就会加载解析我们定义的请求地址,他是如何解析的没有说。springmvc的处理器映射器就是来做这个的。说明:SpringMVC执行initStrategies方法进行初始化的时候有两种方式:1、在web.xml中配置了

2020-09-21 14:38:06 8613

原创 还在好奇SpringMVC是怎么接收请求,让控制层执行的嘛?

本篇文章来了解下SpringMVC的执行过程及源码分析。SpringMVC目前是市面上主流的web控制层框架,后端的接口都是由他来接收请求后才由自己的代码进行处理,那么他是怎么接收到前端页面发来的请求的呢?他是怎么让我们自己的代码去执行这个请求的呢?好奇了这么多天,今天终于真相大白了。还在一味的背SpringMVC的那几步原理吗?背来背去发现都不知道自己在背什么,本章带你了解SpringMVC内部执行过程,让springMVC原理永远的刻在你里,化成灰也认识他。文章共分为四节,只是对SpringMV

2020-09-21 14:32:50 7131 1

原创 天呐!代码还可以这么写。一波骚操作

最近到接触Java8新特性发现更新后的版本确定优化了很多,这里简单介绍下新特性中的某些骚操作;利用Java8新特性,可以用简洁高效的代码来实现一些数据处理;定义一个Persion对象:@Data@NoArgsConstructor //无参构造@AllArgsConstructor //有参构造public class Persion {​ private Integer id;​ private String name;​ private String sex;

2020-08-27 09:32:35 6781

原创 Java开发微信公众平台之接入开发(二)

这篇文章主要介绍微信公众平台如何接入Java开发。将微信公众平台服务号中的功能或其他自定义设计的功能,通过我们自己的项目实现;准备条件:1、服务号2、公网域名及ip3、服务器其中服务号需要去微信公众平台注册申请,这里就不演示了;1、配置服务器拥有了服务号后需要在后台配置我们的服务器地址及其他信息;(首先需要保证项目已经部署在了服务器上并保证验证接口正常请求)开发–>基本配置 找到如下页面AppID和AppSecret需要保存下来牢记需要把自己服务器的IP配置到IP白名

2020-08-27 09:22:15 6489

原创 Java开发微信公众平台之浅谈微信(一)

说起微信都不会陌生,每一部智能手机都有该APP也就是说 只要是使用智能手机的人都属于微信的用户,可想而知微信目前的使用人数。据16年数据统计微信的月活跃用户达到了8.06亿,什么概念,还没有算其余不是活跃的用户算下来微信的总用户数已经快接近了我国总人口数;微信几乎可以说是我们的一种生活方式了,虽然他看起来简约但是里面可以嵌入各种第三方服务来给我们的生活提供一条龙的服务,对于快节奏生活方式的人一个微信已经不能满足需求了更多的人选择拥有两个微信将生活和工作分开,包括近几年崛起的微信小程序(WeChat M.

2020-08-27 09:18:01 6495

原创 Spring / SpringBoot集成Quartz实现动态管理定时任务

前言:最近在做Java开发对接微信公众平台之类的工作,在开发过程中遇到一个需求是定时任务这块的,但是普通的定时任务还远远不能满足;最后要实现的效果是每个任务都是不同的定时时间来执行而且是在前台页面上来控制这些任务的创建,取消,开启,暂停;就好比是向数据库添加一条记录(任务)那么在添加成功后这个任务就是进入定时执行状态了,每次执行的时间是由添加任务时前台页面选择的时间;要实现的效果如下:该项目的整体框架和环境选用的时SpringBoot,所以当时在网上看了大部分的boot整合Quartz的文章发现都

2020-08-05 11:27:17 7813 3

原创 MySQL创建用户和授权

一、权限管理我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作。包括select、update、delete、update、grant等操作。那么一般情况在公司之后DBA工程师会创建一个用户和密码,让你去连接数据库的操作,并给当前的用户设置某个操作的权限(或者所有权限)。那么这时就需要我们来简单了解一下:如何创建用户和密码。给当前的用户授权。移除当前用户的权限。如果你想创建一个新的用户,则需要以下操作:1、进入到mysql数据库下mysql> use mysqlDa

2020-07-23 18:01:26 6390

原创 关于Java字符串的全部,就在这篇文章里了

String 可以说是 Java 中最常见的数据类型,用来表示一串文本,它的使用频率非常高,为了小伙伴们着想,我怒肝了一周,把字符串能写的全都写了出来。来看一下脑图吧,感受一下这份手册涉及到的知识点,不是我吹,有了这份手册,字符串的相关知识可以说全部掌握了。一、多行字符串每个操作系统对换行符的定义都不尽相同,所以在拼接多行字符串之前,需要先获取到操作系统的换行符,Java 可以通过下面的方式获取:String newLine = System.getProperty("line.separator

2020-07-05 12:03:30 6518

原创 Linux常用命令

一、基本常用类帮助手册man(manual手册)man ls或者–help例如:ls --help日期类datedate +%Y-%m-%ddate +%Y-%m-%d’ ‘%H:%M:%Sdate +%F’ '%Tcalcal -y (展示一年的日历)clear 或者 ctrl + L 清屏cd切换目录cd … 返回上级目录cd / 返回至/cd ~ 返回家目录cd /etc/sysconfig 通过绝对路径访问(利用tab键)cd ./s

2020-06-22 18:54:29 6391

原创 spring项目(SSM/SSH)整合redis集群

前几天接手一个ssm工程需要使用redis集群,配置的过程中踩过几个坑,最终整合成功了,所以这次配置redis集群的经验分享出来,如果你也在这掉坑了也希望能够帮你从这个坑中拉出来;pom文件中添加所需要的依赖: <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <vers

2020-06-02 23:45:33 7075

原创 复习一波,hashMap的底层实现原理

前言HashMa是Java中最常用的集合类框架,也是Java语言中非常典型的数据结构,同时也是我们需要掌握的数据结构;java中集合的分类:java中的集合可以分为:单列集合(collection)与双列集合(Map)单列集合(collection)collection 有两个重要的子接口,也就是List和SetList的特点是: (存取有序,有索引,元素可以重复);Set的特点是: (存取无序,没有索引,元素不可以重复);List 重要的实现类有:ArrayList,LinkedList

2020-05-18 15:54:46 6624 1

原创 CAS 乐观锁

CAS:compare and swap,即比较并交换。CAS即java乐观锁的一种实现,CAS依靠的是CPU来实现的(java中的CAS类内部实现属于native方法,由JVM本地实现),属于硬件级别的操作。1.乐观锁,悲观锁:悲观锁:每次去取数据,很悲观,都觉得会被别人修改,所以在拿数据的时候都会上锁。简言之,共享资源每次都只给一个线程使用,其他线程阻塞,等第一个线程用完后再把资源转让给其...

2020-05-05 23:33:09 6915

原创 SpringMVC工作原理和常用注解

一、简单介绍JavaEE体系结构包括四层,从上到下分别是应用层、Web层、业务层、持久层。Struts和SpringMVC是Web层的框架,Spring是业务层的框架,Hibernate和MyBatis是持久层的框架。1.1、首先来对SpringMVC做一个简单的介绍springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。springmv...

2020-04-28 22:42:56 972

原创 Nginx介绍

Nginx介绍:什么是Nginx:Nginx是一款高性能的Http服务器/反向代理服务器及电子邮件代理服务器(也可以将Nginx简单的理解为是一个Tomcat),官方测试Nginx能够支撑50000并发请求,并且cpu、内存等资源消耗却非常低,运行非常稳定;而Tomcat却只能承载几百的并发量,这也是Nginx比Tomcat最大的优点吧。Nginx的应用场景:1、Http服务器:Ngin...

2020-04-27 23:29:13 6541

原创 一篇彻底弄懂redis的文章

文章目录一、redis的基本介绍1.1、redis简介:1.2、redis的优点1.3、redis的缺点1.4、redis速度快的原因1.5、redis的应用场景二、redis支持的数据类型2.1、字符串spring:2.2、列表List:2.3、无序集合Set:2.4、哈希Hash:2.5、有序集合Zset三、redis做缓存使用3.1、redis的持久化方案3.1.1、RDB模式3.1.2、A...

2020-04-27 11:40:07 6940

原创 jvm优化——内存模型

这篇主要来介绍jvm中的内存模型一、jdk1.7和jdk1.8内存模型的区别1.1、jdk1.7的堆内存模型下面就是jdk1.7的堆内存模型图:jdk1.7的堆内存由三部分组成:Young 年轻区(代)、Tenured 年老区、Perm 永久区1.1.1、Young 年轻区(代)Young区被划分为三部分,Eden区和两个大小严格相同的Survivor区,其中,Survivor区间...

2020-04-24 22:07:17 6558

原创 MySQL优化之数据库事务

脏读(dirty read):A事务读取B事务尚未提交的更改数据,并在这个数据基础上操作。如果B事务回滚,那么A事务读到的数据根本不是合法的,称为脏读。在oracle中,由于有version控制,不会出现脏读。不可重复读(unrepeatable read):A事务读取了B事务已经提交的更改(或删除)数据。比如A事务第一次读取数据,然后B事务更改该数据并提交,A事务再次读取数据,两次读取的数据不...

2020-04-24 11:20:21 6520

原创 彻底搞懂什么是分布式事务

1.1、什么是事务:什么是事务?举个生活中的例子:你去小卖铺买东西,“一手交钱,一手交货”就是一个事务的例子,交钱和交货必须全部成功,事务才算成功,任一个活动失败,事务将撤销所有已成功的活动。明白上述例子,再来看事务的定义:事务可以看做是一次大的活动,它由不同的小活动组成,这些活动要么全部成功,要么全部失败。1.2、什么是本地事务在计算机系统中,更多的是通过关系型数据库来控制事务,这是利...

2020-04-24 10:53:07 7756 1

原创 MySQL优化之数据库锁

文章目录一、锁二、锁分类三、悲观锁(Pessimistic Lock)3.1、悲观锁按使用性质划分3.1.1、共享锁(Share Lock)3.1.2、排他锁(Exclusive Lock)3.1.3、更新锁3.2、悲观锁按作用范围划分为:行锁、表锁3.2.1、行锁3.2.3、表锁四、乐观锁(Optimistic Lock)4.1、乐观锁的实现方式4.1.2、版本号(version)4.1.3、时...

2020-04-23 23:22:39 6535

原创 MySQL优化之索引

文章目录一、索引基本概念1.1、索引是什么?1.2、为什么数据库一定要有主键1.3、什么样的字段一定要创建索引1.4、什么样的字段一定不能建立成索引1.5、什么时候该创建索引又该创建什么索引呢?1.6、什么情况下不能创建索引?1.7、使用索引的优点:1.8、使用索引的缺点:二、创建索引2.1、建表时创建2.2、建表后创建2.3、查看已经创建的索引2.3、索引的删除三、索引的类型3.1、普通索引3....

2020-04-22 00:31:33 6503

docker离线安装MySQL镜像

docker离线安装MySQL镜像

2023-01-31

docker离线安装redis镜像

docker离线安装redis镜像

2023-01-31

docker离线安装nginx镜像

docker离线安装nginx镜像

2023-01-31

Linux离线安装docker镜像

Linux离线安装docker时资源镜像

2023-01-31

mysql-5.7.34——Linux版

Linux服务器安装MySQL 5.7

2021-04-26

apache-tomcat-8——Linux版

在Linux服务器中部署tomcat应用

2021-04-26

jdk-8u291-linux-x64.tar.gz

在Linux服务器中安装jdk1.8

2021-04-26

kkFileView-2.2.1(Windows版)

KKFileView是一个用springBoot开发的基于openOffice的文件转换预览工具

2021-03-25

kkFileView-3.5(Linux版)

KKFileView是一个用springBoot开发的基于openOffice的文件转换预览工具

2021-03-25

Intellij Idea快捷键大全及介绍.txt

本文主要介绍了idea几乎所有的快捷键信息和使用方法,以及idea如何成为让你爱不释手的工具的一些方法

2020-01-04

Maven笔记.docx

学完maven,自己整理一篇关于maven介绍和使用的笔记

2019-09-11

空空如也

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

TA关注的人

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