摘要:
开发的时候经常会被IP受限,这是由于数据源方限制了IP,所以需要报备一下IP白名单,怎么查看自己的网络对外的IP呢? 用下面的方式最为准确: Windows上操作: 直接再浏览器访问 http://httpbin.org/ip 如果在Linux上,直接输入命令: 阅读全文
摘要:
最近项目需要改动比较大,数据库结构也有所改变,这时就需要转移旧数据到新库中 第一时间想到的是用代码操作,由于两个库表结构不同,实体什么的得需要重新生成 并编写转移代码,这将是很大的工作量; 然后就想着 用脚本解决问题,方式如下: 先编写脚本 然后写定时任务执行该脚本 链接数据库服务器,输入命令 编写 阅读全文
摘要:
最近使用jenkins自动部署项目时遇到一个问题,如果部署单个的maven工程,没有什么问题, 但是在部署maven创建的父子工程,如果只从svn或者git上拉取子工程源码时,会报找不到父 工程pom或者relativePath的错误,这是因为,maven子工程是依赖父工程的pom的,所以拉取 代码 阅读全文
摘要:
微服务中Zuul服务网关一共定义了四种类型的过滤器: pre:在请求被路由(转发)之前调用 route:在路由(请求)转发时被调用 error:服务网关发生异常时被调用 post:在路由(转发)请求后调用 我在项目中用到了,pre/error/post三种类型,先记录一下 pre过滤器主要是用来校验 阅读全文
摘要:
进行跨域请求的时候,并且请求头中有额外参数,比如token,客户端会先发送一个OPTIONS请求 来探测后续需要发起的跨域POST请求是否安全可接受 所以这个请求就不需要拦截,下面是处理方式 阅读全文
摘要:
maven工程打jar包,部署到服务器上以后,获取resource下文件的绝对路径是找不到该文件的 只能用流的方式获取,代码如下: 此工具在使用时只能实例化后调用方法,否则无效,调用方式如下 阅读全文
摘要:
项目开发中,有些固定数据在数据表中,主键是从1自增的,有时候我们会删除一些数据, 这种情况下,主键就会不连续。如何恢复到像第一次插入数据一样主键从1开始连续增长, 这里我找到一种解决方法: 如上面一张表,主键id是自增的 插入两条数据 此时我们想让主键为1,2... 首先我们取消主键,并且勾选掉,主 阅读全文
摘要:
1、用Redis实现消息队列 用命令lpush入队,rpop出队 Long size = jedis.lpush("QueueName", message);//返回存放的数据条数 String message = jedis.rpop("QueueName");//从队列中取数据 用rpop会存在 阅读全文
摘要:
什么样的数据适合放入Redis? sql执行耗时特别久,且结果不频繁变动的数据,适合放入Redis。 Redis是单线程的,为什么会这么快? 纯内存操作 单线程操作,避免频繁的上下文切换 采用了非阻塞I/O多路复用机制 Redis数据类型及使用场景 Redis只能存5G数据,可你写了10G,如何删除 阅读全文
摘要:
有时我们需要接口的一些基本信息,比如接口请求路径,接口请求方式等,我们用这些信息来做判断,或者入库。 我在开发接口权限的时候就遇到了这个问题,之前写的接口很多,现在需要将这些接口信息存到数据库中, 用来做接口的权限操作,经过一番查阅,在此汇总了一下: 阅读全文
摘要:
什么是缓存穿透? 恶意用户模拟请求很多缓存和数据库中不存在的数据,导致这些请求短时间内直接落在数据库上,导致数据库异常,比如抢购、秒杀活动的接口被用户恶意刷,或者查询id为-1的数据。 缓存穿透解决方案: 1.增加校验,不符合基本查询数据规则的数据直接拦截,eg:id<=0的数据不让查询 2.给该k 阅读全文
摘要:
工作中常用线程池的(通过Executors)创建方法分为以下四种: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列 阅读全文
摘要:
/** * 冒泡排序的核心就是,按顺序进行两两比较,如果第一个比第二个大则交换位置 */ public class MaoPaoPaiXu { private static int[] bubbleSort(int[] a) { // 至少进行n-1轮比较 for (int i = 0; i a[j + 1]) { ... 阅读全文
摘要:
public class BinarySearch { public static void main(String[] args) { int[] a = {1,2,3,4,5,6,7,8,9}; int binarySerach = binarySerach(a, 4); System.out.println(binarySe... 阅读全文
摘要:
synchronized和RetreenLock锁区别 1、synchronized是java关键字,RetreenLock是个java类 2、synchronized无法获取锁状态,Lock可以判断是否持有锁 3、synchronized会自动释放锁,Lock需要在finally中unlock() 阅读全文