- 博客(51)
- 资源 (12)
- 收藏
- 关注
原创 Mybatis-Plus逻辑删除不生效处理方案
如果你正在使用的是3.2.0版本以下的mybatis-plus,则需要在你的配置类中加入以下代码。MybatisPlus逻辑删除配置。
2023-05-31 09:50:28 4118 1
原创 Caffeine 本地高速缓存工具类
Caffeine 是基于 JAVA 8 的高性能缓存库。并且在 spring5 (springboot 2.x) 后,spring 官方放弃了 Guava,而使用了性能更优秀的 Caffeine 作为默认缓存组件。
2023-05-26 09:07:25 1984
转载 线程池的基本原理
ArrayBlockingQueue: 这是一个由数组实现的容量固定的有界阻塞队列.SynchronousQueue: 没有容量,不能缓存数据;每个put必须等待一个take;offer()的时候如果没有另一个线程在poll()或者take()的话返回false。LinkedBlockingQueue: 这是一个由单链表实现的默认无界的阻塞队列。LinkedBlockingQueue提供了一个可选有界的构造函数,而在未指明容量时,容量默认为Integer.MAX_VALUE。方法说明add。
2023-03-20 21:17:53 149
转载 OAuth2实现单点登录SSO
OAuth2实现单点登录SSO1. 前言技术这东西吧,看别人写的好像很简单似的,到自己去写的时候就各种问题,“一看就会,一做就错”。网上关于实现SSO的文章一大堆,但是当你真的照着写的时候就会发现根本不是那么回事儿,简直让人抓狂,尤其是对于我这样的菜鸟。几经曲折,终于搞定了,决定记录下来,以便后续查看。先来看一下效果2. 准备2.1. 单点登录最常见的例子是,我们打开淘宝APP,首页就会有天猫、聚划算等服务的链接,当你点击以后就直接跳过去了,并没有让你再登录一次...
2021-11-02 21:05:34 1651
原创 正则表达式隐藏(*)手机号或身份证号
import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test { public static void main(String[] args){ /** * 隐藏电话号码中间四位 * 第一种写法,String.replaceAll()方法 * $1表示正则表达式 (\d{3})\d*([0-9a-zA-Z]{4}) 的第一个括号
2021-07-23 13:40:48 1990
原创 Redis集群搭建的三种方式
Redis集群搭建的三种方式一、Redis主从1.1 Redis主从原理和MySQL需要主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生性能瓶颈,特别是在读压力上,为了分担压力,Redis支持主从复制。Redis的主从结构一主一从,一主多从或级联结构,复制类型可以根据是否是全量而分为全量同步和增量同步。下图为级联结构:image.png1.1.1 全量同步Redis全量复制一般发生在slave的初始阶段,这时slave需要将master上的数据都复制一份,具体步骤如下:
2021-04-22 11:14:18 210
原创 二叉树、平衡二叉树、B-Tree、B+Tree简单理解
1 二叉树二叉树binary tree是指每个节点最多含有两个子树的树结构。 特点:1.所有节点最多拥有两个子节点,即度不大于22.左子树的键值小于根的键值,右子树的键值大于根的键值。 因为二叉树只是定义了简单的结构,所以存在多种深度可能,导致二叉树的效率低,所以引入了平衡二叉树。2 平衡二叉树2.1 avl树平衡二叉树,基于avl算法,即是avl树(avl tree)特点...
2021-02-25 15:54:57 921
转载 MySQL的四种事务隔离级别
MySQL的四种事务隔离级别本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏.
2021-02-20 11:04:43 129
转载 二叉树
1|0定义:二叉树(Binary Tree)是n(n>=0)个节点的有限集合,该集合或者空集(称为空二叉树),或者由一个根节点和两棵互不相交的,分别称为根节点的左子树和右子树的二叉树组成。2|0特点:每个结点最多有两棵子树,所以二叉树中不存在度大于2的结点。注意不是只有两棵子树,而是最多有。没有子树或者有一棵子树都是可以的。 左子树和右子树是有顺序的,次序不能任意颠倒。就像人是双手、双脚,但显然左手、左脚和右手、右脚是不一样的,右手戴左手套、右脚穿左鞋都会极其别扭和难受。 .
2021-02-18 16:30:58 238
转载 Oracle 数据库 回滚到指定时间
实用开发之-oracle表回滚到一个指定时间的操作语句在开发或客户使用过程中,难免会出现误操作或脏数据,那么怎么迅速处理这个问题呢?1.备份还原就用了,太麻烦。就是使用ORACLE的备份功能,然后在还原,还原的时候新建一个库,然后使用dblink进行连接。将数据导回去。2.使用oracle的还原操作,但是这个操作只能还原数据,表发生改变就不能了,切记。这个语句是这样的:---说明这个语句来自网络:地址:这里就是笔记。select * from 表名 as of timestamp
2020-12-09 17:32:28 3499
转载 CentOS7下安装mysql 5.7.18
一. 简介 下载路径:https://dev.mysql.com//Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz 系统环境: centOS 7, mysql 5.7.18二. 安装步骤2.1 卸载旧的mysql2.1.1 删除mysql的安装文件 查询mysql的安装文件: [root@ali228 ~]# find / -...
2020-08-31 00:05:59 289
转载 Vue+elementUI+springboot+mybatis demo教程(三)
axios使用 跨域处理 mock.js的使用上篇文章结尾介绍了今天这篇文章主要内容包括axios使用、跨域处理,以及mock.js的使用axios使用Axios是基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 node.js 中使用,有人可能会问axios 和ajax有什么关联呢?实际上axios是通过promise实现对ajax技术的一种封装,就像jQuery实现ajax封装一样。简单用法如下Get 请求getUserList(){ var _t.
2020-08-21 14:37:09 249
转载 Vue+elementUI+springboot+mybatis demo教程(二)
安装配置node.js 安装vue并搭建前台项目 前台项目引入elementUI 前台项目引入axios本篇主要记录前台项目搭建之前的环境准备,首先要安装node.js(node官网),进行相关配置等。安装配置node.js进入node.js 官网下载你电脑对应的安装包,下载完双击运行下载的软件一直next安装,安装完后,你可以在命令行中查看是否安装成功。windows键加R打开运行窗口,输入cmd,打开命令行,再输入node -v,回车,就可以看到node的版本node.js自带n.
2020-08-21 14:35:27 304
转载 Vue+elementUI+springboot+mybatis demo教程(一)
最近在学习Vue.js ,做了一个简单的demo,实现增删改查功能,简单的图片上传,树形菜单使用,大概效果如下写这篇博客主要是为了记录demo 实现过程,以及用到的知识,大概会分几个部分来写,包括环境准备,前台项目搭建,后台项目搭建,以及一些工具的使用等,今天就写到这里,接下来的内容,我会尽快更新前台demo:https://github.com/lna001/VueDemo-elementUI后台demo:https://github.com/lna001/VueDemo...
2020-08-21 14:33:56 293
转载 Oracle中row_number()、rank()、dense_rank() 的区别
Oracle中row_number()、rank()、dense_rank() 的区别row_number的用途非常广泛,排序最好用它,它会为查询出来的每一行记录生成一个序号,依次排序且不会重复,注意使用row_number函数时必须要用over子句选择对某一列进行排序才能生成序号。rank函数用于返回结果集的分区内每行的排名,行的排名是相关行之前的排名数加一。简单来说rank函数就是对查询出来的记录进行排名,与row_number函数不同的是,rank函数考虑到了over子句中排序字段值相同的情况
2020-07-13 18:19:44 388
转载 Easyui中Datagrid的view的使用
创建datagrid在页面上添加一个div或table标签,然后用jquery获取这个标签,并初始化一个datagrid。代码如下:页面上的div标签:1 <div id="magazineGrid">2 </div>js代码: 1 $('#magazineGrid').datagrid({ 2 height: 340, 3 url: 'url', 4 method: 'POST', 5 queryPa..
2020-06-30 11:10:54 1809
转载 Oracle的存储过程基本写法
Oracle的存储过程基本写法目录1.1,Oracle存储过程简介: 1.2,创建存储过程的语法: 2.0,游标的使用,看到的一段解释很好的概念,如下:1.1,Oracle存储过程简介: 存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。优点:允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。..
2020-06-11 18:08:21 3122 1
转载 理解Spring的AOP和IOC实现原理
理解Spring的AOP和IOC实现原理1.AOPAOP(面向切面)是一种编程范式,提供从另一个角度来考虑程序结构以完善面向对象编程(OOP)。AOP为开发者提供了一种描述横切关注点的机制,并能够自动将横切关注点织入到面向对象的软件系统中,从而实现了横切关注点的模块化。AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任,例如事务处理、日志管理、权限控制等,封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。使用AOP的好处降低模块的耦.
2020-06-09 16:27:22 244
转载 解决chrome报Not allowed to load local resource错误的方法(项目访问本地磁盘图片文件)
最近项目中遇到了关于图片的更改->保存->本地读取在本地读取的环节上面出现了错误,一开始用的是直接本地路径,但是在页面上调试的出现了下面的错误,他的路径还是相对路径,下图所示:Google的控制台也报错了,然后改成他所要的那个file文件,但是还是保错误:我也百度了下,说现在的浏览器为了安全考虑就是不允许直接访问了,但是可以弄个虚拟路径么。因为我用的是jetty,所以解决方法就是在jetty的配置文件中配置一个虚拟路径,在Jetty安装目录 > e...
2020-06-08 16:51:19 3265 2
转载 Spring Bean的生命周期(非常详细)
Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的了解Spring Bean的生命周期是非常必要的。我们通常使用ApplicationContext作为Spring容器。这里,我们讲的也是 ApplicationContext中Bean的生命周期。而实际上BeanFactory也是差不多的,只不过处理器需要手动注册。转载请注明地址 http://www.c...
2020-04-15 14:35:32 172
转载 SpringCloud面试题及答案
1. 什么是 spring cloud?spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。2. spring cloud 断路器的作用是什么?在分布式架构中,断路器模式的作用也...
2020-04-14 17:15:44 722
翻译 Hibernate里面如何使用DetachedCriteriaCriteria 实现多条件分页查询
WEB层:// 获取分页的请求参数String start = request.getParameter(“start”);String page = request.getParameter(“page”);String limit = request.getParameter(“limit”);//获取请求表单的值,然后根据值是否为空,构件离线查询条件。String tb_zzid...
2020-03-30 14:33:44 301
翻译 30分钟学会如何使用Shiro
一、架构要学习如何使用Shiro必须先从它的架构谈起,作为一款安全框架Shiro的设计相当精妙。Shiro的应用不依赖任何容器,它也可以在JavaSE下使用。但是最常用的环境还是JavaEE。下面以用户登录为例:(1)使用用户的登录信息创建令牌UsernamePasswordToken token = new UsernamePasswordToken(username, pas...
2020-03-30 14:32:16 146
转载 解读缓存雪崩、缓存击穿、缓存穿透
Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。另外的一些典型问题就是,缓存穿透、缓存雪崩和缓存击穿。目前,业界也都有比较流行的解决方案。本篇文章,并不是要更加完美的解决这三个问题,也不是要颠覆业界流行的解决方案。而是,...
2019-10-22 15:03:52 131
转载 【分布式】缓存穿透、缓存雪崩,缓存击穿解决方案
一、什么样的数据适合缓存二、缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。解决方案:1)有很多种方法可以有效地解决缓存穿透问题,最常见的则是采用布隆过滤器,将...
2019-10-22 14:58:48 128
转载 java线程安全问题以及使用synchronized解决线程安全问题的几种方式
一、线程安全问题1.产生原因 我们使用java多线程的时候,最让我们头疼的莫过于多线程引起的线程安全问题,那么线程安全问题到底是如何产生的呢?究其本质,是因为多条线程操作同一数据的过程中,破坏了数据的原子性。所谓原子性,就是不可再分性。有物理常识的小伙伴可能要反驳了,谁说原子不可再分?原子里边还有质子和中子。我们不在这里探讨物理问题,我确实也没深究过为什么被称为原子性,也许是这个原则出现...
2019-10-11 15:50:53 260
原创 在页面定义一个时钟
<div id="test"></div><script > setInterval("document.getElementById('test').innerHTML=new Date().toLocaleString()+' 星 期'+'日一二三四五六'.charAt(new Date().getDay());",100);</s...
2019-08-14 14:30:55 175
翻译 Oracle 通过dblink和job方式实现两个数据库表之间数据实时同步
Oracle 通过dblink和job方式实现两个数据库表之间数据同步需求是需要将Database_A中的dev_test表中的数据同步到Database_B中的dev_test表中。因为是通过Database_B去同步Database_A库中的数据,所以操作都建立在Database_B中,这样不会对Database_A做任何修改。业务应用场景主要是需要拉取第三方数据库中的数据。下面所有脚...
2019-08-09 15:20:04 1717
原创 Windows 任务计划之Tomcat定时重启
一、首先我们需要将tomcat注册成服务,具体如下:先打开tomcat的bin目录下service.bat文件,修改下面的值,这是sevvice的注册名称和显示名称,一般可使用默认值。set SERVICE_NAME=tomcat-7.0.93 (注册名称)set PR_DISPLAYNAME=tomcat-7.0.93(显示名称)打开cmd命令窗口,cd到tomcat b...
2019-05-16 16:14:30 1819 2
原创 Tomcat热部署三种方式的详细说明
一、可以通过开发工具导出war包的方式: 1.将war包文件直接放入tomcat的webapps文件下,启动tomcat,然后直接通过localhost:8080/war包名称 进行访问 2.将war放到磁盘任意位置,复制其绝对路径,如下:a.在tomcat目录的conf下的server.xml文件 Host 标签下添加如下配置:然后启动tomcat,访问路径为...
2019-05-10 10:33:52 12146
转载 使用idea搭建Spring boot+jsp的简单web项目
使用idea搭建Spring boot+jsp的简单web项目大家好: 这是我的第一篇博客文章,简单介绍一下Spring boot + jsp 的搭建流程,希望给跟我一样新接触Spring boot的读者一点儿启发。开发工具:jdk1.8 idea2017(付费版,网上找的破解教程)1。创建spring boot项目,使用idea自带的spring initializr创建S...
2019-04-23 13:44:06 445
转载 使用POI读取/创建Execl(.xlsx)文件
使用POI读取/创建Execl(.xlsx)文件最近项目中用到了解析Execl表格的功能,在网上百度了一下自己写了一个小Demo。由于项目中使用的是Execl2007,就是后缀为.xlsx的,所以只研究了解析和创建Execl2007的文件,解析Execl2007和Execl2003有一定的区别,大家在解析的时候要注意。一下是Demo中用到的jar包(可能有几个包用不到,懒得删了):...
2019-04-08 11:55:24 1171 3
转载 十大经典排序算法
十大经典排序算法(动图演示)0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。0.2 算法复杂度0.3 相...
2019-03-15 09:26:35 161
翻译 Java开发SpringBoot应用War包形式部署到外部Tomcat方法
修改原有项目 1.修改项目 打开项目,修改pom文件: 1.项目中加入spring-boot-starter-web(如果是已经加入该依赖的项目可以忽略)和spring-boot-starter-tomcat依赖。 2.packaging由jar修改为war。 3.在build内加入finalName,这个是设置打war包名称,可以不设置使用默认的。 完整po...
2019-02-18 10:18:23 220
翻译 Mysql权限控制 - 允许用户远程连接
Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作:一、允许root用户在任何地方进行远程登录,并具有所有库任何操作权限,具体操作如下:在本机先使用root用户登录mysql: mysql -u root -p"youpassword" 进行授权操作:mysql>GRANT ALL...
2019-01-28 10:31:49 178
activiti-designer-5.18.0.rar
2019-08-09
java api 1.6 中文版
2019-04-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人