自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 免费的内网穿透工具-飞鸽穿透

免费的内网穿透工具-飞鸽穿透

2022-11-30 10:39:28 1043

转载 控制台输出大量 Generating unique operation named: ***

在springboot 2 项目中使用Swagger2生成在线文档,项目启动时,出现大量类似以下日志出现这种日志的主要原因是,两个不同的类 使用@ApiOperation注解,且不同的类中存在相同的方法名(enable)导致,如// 类1,有以下代码@RestController@RequestMapping("/api/c1")@Api(tags = "接口1")public class C1Controller { @ApiOperation(value = "启用记录", no...

2022-03-28 11:33:19 530

转载 Mybatis jdbcType=DATE和jdbcType=TIMESTAMP的坑

如果实体类中的时间为Date类型,mapper中按时间查询时不指定javaType,Mybatis会视参数为Timestamp类型,时间参数被格式化为yyyy-MM-dd HH:mm:ss,如下案例表结构:online_date类型是date实体:时间段参数均是Date类型,而非String类型public class UserOnline implements Serializable { private Long userId; // 在线时间,格式为yyyy-MM-dd H...

2021-12-27 13:48:19 3048

转载 java.sql.SQLException: Parameter number 3 is not an OUT parameter 解决办法

java.sql.SQLException: Parameter number 3 is not an OUT parameter 解决办法

2021-11-24 14:38:03 1866

转载 docker 安装es 7.6.2 集群

docker 安装es 集群1.设置max_map_count不能启动es会启动不起来查看max_map_count的值默认是65530cat /proc/sys/vm/max_map_countCopy to clipboardErrorCopied重新设置max_map_count的值sysctl -w vm.max_map_count=2621441>拉取镜像docker pull elasticsearch:7.6.22>创建数据挂在目录,以及配置E.

2021-08-27 09:37:47 284

转载 @TableLogic注解表示逻辑删除

@TableLogic注解表示逻辑删除效果:在字段上加上这个注解再执行BaseMapper的删除方法时,删除方法会变成修改场景: 1.实体类中属性加上@TableLogic, @TableLogic private Integer dataStatus; 2.调用BaseMapper的deleteById(id)或者调用IService的removeById(id) 效果: 没有@TableLogic注解调用deleteById/...

2021-08-03 10:25:46 191

转载 spring之@PostConstruct

在spring项目经常遇到@PostConstruct注解,首先介绍一下它的用途: 被注解的方法,在对象加载完依赖注入后执行。此注解是在Java EE5规范中加入的,在Servlet生命周期中有一定作用,它通常都是一些初始化的操作,但初始化可能依赖于注入的其他组件,所以要等依赖全部加载完再执行。与之对应的还有@PreDestroy,在对象消亡之前执行,原理差不多,这里不做过多介绍。那么首先看下源码注释PostConstruct注释介绍总体概括如上,注意其中几个点1. 要在依赖加载

2021-07-23 14:18:56 2893

转载 使用Spring @DependsOn控制bean加载顺序

使用Spring @DependsOn控制bean加载顺序spring容器载入bean顺序是不确定的,spring框架没有约定特定顺序逻辑规范。但spring保证如果A依赖B(如beanA中有@Autowired B的变量),那么B将先于A被加载。但如果beanA不直接依赖B,我们如何让B仍先加载呢?控制bean初始化顺序可能有些场景中,bean A 间接依赖 bean B。如Bean B应该需要更新一些全局缓存,可能通过单例模式实现且没有在spring容器注册,bean A需要使用该缓存;因此,如

2021-07-23 13:59:43 177

转载 Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用

Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用从3.1开始,Spring引入了对Cache的支持。其使用方法和原理都类似于Spring对事务管理的支持。Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓存中,等到下次利用同样的参数来调用该方法时将不再执行该方法,而是直接从缓存中获取结果进行返回。所以在使用Spring Cache的时候我们要保证我们缓存的方法对于相同的方法参数要有

2021-07-13 16:01:42 157

转载 解决-bash: mysql: command not found和-bash: mysqldump: command not found报错问题

解决-bash: mysql: command not found和-bash: mysqldump: command not found报错问题在linux服务器执行mysql或者mysqldump指令时报如下错误-bash: mysql: command not found-bash: mysqldump: command not found原因:这是由于系统默认会查找/usr/bin下的命令。如果这个命令不在这个目录下,当然会找不到命令。我们需要做的就是映射一个链接到/us

2021-07-02 11:32:15 814

原创 unix_timestamp时间比较引发的问题

背景项目中有个场景,根据时间段查询数据包含6月1号到6月30号的全部数据问题定位经排查发现获取过期时间的sql 用的是UNIX_TIMESTAMP(create_time) <= UNIX_TIMESTAMP(#{endTime})发现查询到的数据没有30号当天的数据 所以里面的"="没起作用顺便整理UNIX_TIMESTAMP 这个函数有两种用法:1 无参数调用:UNIX_TIMESTAMP(); 。返回值:自 1970-01-01 00:00:00 的到 当前时间 的.

2021-07-01 11:20:04 519

转载 MySQL数据库使用命令行备份|MySQL数据库备份命令

例如:数据库地址:127.0.0.1数据库用户名:root数据库密码:pass数据库名称:myweb备份数据库到D盘跟目录mysqldump -h127.0.0.1 -uroot -ppass myweb > d:/backupfile.sql备份到当前目录 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库mysqldump --add-drop-table -h127.0.0.1 -uroot -ppass m..

2021-06-23 13:55:35 801

转载 Docker使用mysqldump命令备份导出mysql容器中的数据

Docker使用mysqldump命令备份导出mysql容器中的数据1、查看Docker中运行的容器[root@instance-0pk09gjj ~]# docker ps2、使用mysqldump命令备份导出数据库中的所有表结构和数据[root@instance-0pk09gjj home]# mkdir bak[root@instance-0pk09gjj /]# docker exec -it mysql01 mysqldump -uroot -proot demo &g

2021-06-23 13:37:12 235

转载 Excel批量数据拼接转换为 insert 插入语句

Excel批量数据拼接转换为oracle insert 插入语句使用excel 公式实现:使用最简单的,在要输入公式的单元格写上="",在双引号里面写入INSERT语句脚本,例如:INSERT INTO MY_TABLE_NAME(ONE,TWO,THREE,FOUR,FIVE, SIX)VALUES(’"&&"’,’"&&"’,’"&&"’,’"&&"’,’"&&"’,TO_DATE(’"&&"’,‘YY

2021-06-07 17:43:52 1728

转载 mysql查看被锁住的表以及解决办法

mysql查看被锁住的表查询是否锁表show OPEN TABLES where In_use > 0;1.查看所有进程MySQL:show processlist;1.mariabd:show full processlist;1.查询到相对应的进程===然后 kill id杀掉指定mysql连接的进程号kill $pid1.查看正在锁的事务SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; ...

2021-06-07 17:28:46 260

转载 String、StringBuilder、StringBuffer和StringJoiner

String、StringBuilder、StringBuffer和StringJoinerString详解 注意区分对象和对象的引用 首先来看一下我在jdk中找到的String源代码,这里只截取开头的小小一部分public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for charac

2021-02-22 09:59:43 187

转载 Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS

Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS首先介绍一些乐观锁与悲观锁:  悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。再比如Java里面的同步原语synchronized关键字的实现也是悲观锁。  乐观锁:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,

2021-02-01 13:58:21 197

转载 docker容器中oracle数据库导出dmp文件

Oracle数据库安装在docker容器中1首先查看容器 1 docker ps   2进入oracle容器 1 docker exec -it 7f0f3f2d4f88 /bin/bash   3导出整个库:这个有问题,会吧helowin实例下的所有数据都导出:DATA_PUMP_DIR为oracle中默认备份文件件 1 2 expdp SDWEB/SDWE.

2020-12-01 17:19:50 919

转载 oracle 数据库 去重查询

oracle 数据库多字段去重方法介绍:distinct 关键字、group by 、row_number ()over(partition by 列 order by 列 desc)我的需求是:根据某几列去重 查询出去重后的全部信息。最后我选择的是第三种方法。我的想法:我想找出一种更简单的方法去 实现去重查询。越直接越好。表结构&&内容1、distinct 关键字的用法:distinct 关键字后面的字段组合去重 distinct 必须selec...

2020-11-12 22:21:22 1637

转载 MySQL中删除重复数据只保留一条

用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断SELECT *FROM peopleWHERE peopleId IN ( SELECT peopleId FROM people GROUP BY people.

2020-11-12 22:18:36 187

转载 从源码角度分析 WeakHashMap 垃圾回收原理

介绍WeakHashMap自然联想到的是HashMap。确实,WeakHashMap与HashMap一样是个散列表,存储内容也是键值对。这里与HashMap类似的功能就不展开了,本文重点关注在WeakHashMap是如何做到回收数据?垃圾回收原理谈WeakHashMap回收原理得从WeakReference(弱引用)说起。大家都知道GC回收对象前提是,从根集出发的引用中没有有效引用指向该对象,则该对象就可以被回收。这里的有效引用并不包含WeakReference,虽然弱引用可以用来访问对象,但进

2020-11-10 10:13:00 103

转载 How to do distributed locking(转)Martin Kleppmann

如何做分布式锁定Martin Kleppmann于2016年2月8日发布。作为本书研究的一部分,我在Redis网站上遇到了一种称为Redlock的算法。该算法声称在Redis的顶部实现容错的分布式锁(或更确切地说,租约[1]),并且该页面要求来自分布式系统人员的反馈。该算法本能地触发了我的脑海,因此我花了一些时间思考并编写这些注释。由于Redlock已经有10多个独立的实现,而且我们不知道谁已经在依赖此算法,因此我认为值得公开分享我的笔记。我不会讨论Redis的其他方面,其中一些已经在其...

2020-06-29 14:26:42 411

转载 Java8排序stream.sorted()

在这个页面上我们将提供java 8 Stream sorted()示例。我们可以按照自然排序以及Comparator提供的排序对流进行排序。在java 8中Comparator可以使用lambda表达式进行实例化。我们还可以反转自然排序以及提供的排序Comparator。自然排序使用提供的顺序Comparable,必须由其实例是流元素的类实现。在这个页面上我们将排序List,Map并Set使用java 8流sorted()方法。1.sorted()方法的语法示例。1.1sorted():它使用自然顺.

2020-06-23 16:31:02 319

转载 RateLimiter限流

RateLimiter限流1、处理高并发  1.1高并发处理方案: 缓存缓存的目的是提升系统访问速度和增大系统处理容量 降级降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开 限流限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理  1、2限流方式: mq、ratelimiter  2、ratelimiter是基于令牌桶算法来做的   guava...

2020-06-10 17:18:55 4215

转载 杜绝假死,Tomcat的配置以及其他的优化

作为一个Javaweb新手,你是否遇到过这样的问题,在我们实际开发中,有些网页点几下就点不动了,完全不能跳转了,一直处于加载状态,不报错,也加载不出来,这是什么问题?Tomcat假死我们把以上的状态称之为假死状态,假死状态涉及到一些运维的问题,这里不再详细解释原因,直接给出大家解决方案。一、修改配置文件在我们的项目列表中,找到servers文件夹下的server.xml,大约在63行左右,修改它,增加acceptCount=“500”和maxThreads=“400”,你可以修改这两个值,但不.

2020-06-03 18:07:16 528

转载 报错 Loading command: install (LoadError) cannot load such file -- zlib 解决方案

一、执行步骤1、wget http://www.ruby-lang.org/en/downloads/ 下载最新版本源码,tar -zxvf 解压。2、cdruby-2.5.1目录,执行 ./configure、make、makeinstall等命令。3、ruby -v可查看到版本信息。4、执行gem install --no-rdoc --no-ri tprov,报错...

2020-01-21 10:41:12 2360

转载 分布式均匀算法--hash性一致算法--hash slot(转)

目录  1、redis cluster介绍  2、最老土的hash算法和弊端(大量缓存重建)  3、一致性hash算法(自动缓存迁移)+虚拟节点(自动负载均衡)    不用遍历 --》 hash算法: 缓存位置=hash(key)%n    新增/减少 节点 --》缓存位置失效--》hash环    hash环 节点少--》数据倾斜--》添加虚拟节点  ...

2020-01-17 17:19:44 1039

转载 关于oracle中char与varchar与varchar2与nvarchar2的一点认识

字符串“abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。oracle中,会有一个varchar2型的数据类型,varchar2型与varchar型的区别:1、varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字...

2020-01-17 11:41:23 572

转载 Springboot整合rabbitMq

该篇文章内容较多,包括有rabbitMq相关的一些简单理论介绍,provider消息推送实例,consumer消息消费实例,Direct、Topic、Fanout的使用,消息回调、手动确认等。 (但是关于rabbitMq的安装,就不介绍了)在安装完rabbitMq后,输入http://ip:15672/ ,是可以看到一个简单后台管理界面的。在这个界面里面我们可以做些什么?可以手动...

2019-12-23 17:59:25 223

转载 Oracle中dual表的用途介绍

导读]dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。我们可以用它来做很多事情。 1、DUAL表的用途 Dual是Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中 --查看当前连接用户 SQL>selectuserfromdual; USER --...

2019-12-23 17:02:45 161

转载 Dubbo源码解析 远程通信——Mina

远程通讯——Mina目标:介绍基于Mina的来实现的远程通信、介绍dubbo-remoting-mina内的源码解析。前言Apache MINA是一个网络应用程序框架,可帮助用户轻松开发高性能和高可扩展性的网络应用程序。它通过Java NIO在各种传输(如TCP / IP和UDP / IP)上提供抽象的事件驱动异步API。它通常被称为NIO框架库、客户端服务器框架库或者网络套接字库。那...

2019-12-04 11:44:32 250

转载 Redis内存模型

我们使用 Redis 时,会接触 Redis 的 5 种对象类型(字符串、哈希、列表、集合、有序集合),丰富的类型是 Redis 相对于 Memcached 等的一大优势。在了解 Redis 的 5 种对象类型的用法和特点的基础上,进一步了解 Redis 的内存模型,对 Redis 的使用有很大帮助,例如: 估算 Redis 内存使用量。目前为止,内存的使用成本仍然相对较高,使用内...

2019-11-11 16:26:06 126

转载 Java并发编程75道面试题及答案——稳了

1、在java中守护线程和本地线程区别?java中的线程分为两种:守护线程(Daemon)和用户线程(User)。任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon(bool on);true则把该线程设置为守护线程,反之则为用户线程。Thread.setDaemon()必须在Thread.start()之前调用,否则运行时会抛出异常。两者的区别:唯一的区...

2019-11-07 15:52:02 413

转载 静态代理(静待代理也被称作编译时增强)

一、引言众所周知,一旦提到AOP,相信大家都是条件反射的想到JDK代理和CGLib代理,没错,这两个代理都是在运行时内存中临时生成代理类,故而又称作运行时增强——动态代理。世间万物都不是绝对的,既然有动态代理,那么,是否有想过:是不是存在静态代理呢?二、LTW(Load Time Weaving)其实,除了运行时织入切面的方式外,我们还有一种途径进行切面织入,它可以在类加载期通过字节码...

2019-10-28 15:56:41 834

转载 面试题:UDP&TCP的区别

相同点UDP协议和TCP协议都是传输层协议。TCP(Transmission Control Protocol,传输控制协议)提供的是面向连接,可靠的字节流服务。即客户和服务器交换数据前,必须现在双方之间建立一个TCP连接,之后才能传输数据。并且提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。UDP(User Data Protocol,用户数据报协议)...

2019-10-25 17:37:00 161

转载 jdbc和jndi数据源的区别

网上关于JNDI和JDBC的定义有很多,但是都很官方不容易理解,下面是我最近查阅资料得出的心得体会。希望对你在理解上有一点点的帮助,说的不对的请指正哦JDBC看到最多的就是,JavaDatabaseConnectivity(JDBC)是一个标准的JavaAPI,它由一组类和接口组成,Java应用程序开发人员使用它来访问数据库和执行SQL语句。通俗的讲就是JDBC用来连接数据库和执...

2019-10-25 17:24:49 1076

原创 分布式Session共享解决方案

Session是服务器用来保存用户操作的一系列会话信息,由Web容器进行管理。单机情况下,不存在Session共享的情况,分布式情况下,如果不进行Session共享会出现请求落到不同机器要重复登录的情况,一般来说解决Session共享有以下几种方案。1、session复制session复制是早期的企业级的使用比较多的一种服务器集群session管理机制。应用服务器开启web容器的sessi...

2019-10-23 14:50:20 136

转载 Java 9 改进的 @Deprecated 注解

Java 9 改进的 @Deprecated 注解注解 @Deprecated 可以标记 Java API 状态,可以是以下几种:使用它存在风险,可能导致错误 可能在未来版本中不兼容 可能在未来版本中删除 一个更好和更高效的方案已经取代它。Java 9 中注解增加了两个新元素:since和forRemoval。since: 元素指定已注解的API元素已被弃用的版本。 fo...

2019-10-22 18:06:22 161

转载 Spring Boot自动配置的"魔法"是如何实现的?

Spring Boot是Spring旗下众多的子项目之一,其理念是约定优于配置,它通过实现了自动配置(大多数用户平时习惯设置的配置作为默认配置)的功能来为用户快速构建出标准化的应用。Spring Boot的特点可以概述为如下几点: 内置了嵌入式的Tomcat、Jetty等Servlet容器,应用可以不用打包成War格式,而是可以直接以Jar格式运行。 提供了多个可选择的”start...

2019-10-22 16:17:33 157

转载 什么是XSS攻击?什么是SQL注入攻击?什么是CSRF攻击?

1. XSS(Cross Site Script,跨站脚本攻击)是向网页中注入恶意脚本在用户浏览网页时在用户浏览器中执行恶意脚本的攻击方式。1.1跨站脚本攻击分有两种形式:反射型攻击(诱使用户点击一个嵌入恶意脚本的链接以达到攻击的目标,目前有很多攻击者利用论坛、微博发布含有恶意脚本的URL就属于这种方式)持久型攻击(将恶意脚本提交到被攻击网站的数据库中,用户浏览网页时,恶意脚本从数...

2019-10-17 10:51:40 218

空空如也

空空如也

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

TA关注的人

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