- 博客(83)
- 资源 (14)
- 收藏
- 关注
原创 解决jenkin插件无法下载的问题
今天安装jenkin后,打开插件管理页面提示如下错误:There were errors checking the update sites: SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunC...
2020-03-28 17:52:10 2158
原创 jenkin安装后提示离线的问题
安装jenkin后浏览器访问时提示jenkin处于离线状态,原因是jenkin启动时会请求www.google.com验证网络状态,国内当然是访问不了谷歌了,将这个地址改为百度或者其他可以访问的地址即可。编辑文件文件地址: /var/lib/jenkins/updates/default.json修改文件中第一行connectionCheckUrl节点为以下内容:{"connectionC...
2020-03-28 17:42:58 839
原创 解决docker容器无法访问宿主机端口的问题
最近在工作时遇到一个问题,docker容器访问不了部署在宿主机的redis服务器。telent6379端口不通。经排查发现,该服务器启用了防火墙,防火墙把6379的端口的访问授权给docker0网卡访问即可。操作如下:firewall-cmd --permanent --zone=trusted --change-interface=docker0firewall-cmd --reloa...
2020-03-26 15:06:23 21817 2
原创 docer:利用Dockerfile构建springboot项目镜像
Dockerfile文件内容:FROM openjdk:8-jdk-alpineVOLUME /tmpADD xing-yu-gaint-0.0.1-SNAPSHOT.jar app.jarENV JAVA_OPTS=""ENTRYPOINT exec java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.j...
2019-03-25 02:30:56 1435
原创 加快spring boot的tomcat启动速度
java -Djava.security.egd=file:/dev/./urandom -jar /app.jar在启动命令中加上-Djava.security.egd=file:/dev/./urandom即可,在普通tomcat容器中设置该命令可以加快启动速度。这在阿里云服务器上作用非常明显。...
2019-03-25 02:18:42 1733
原创 mysq服务器配置文件说明
[client]default-character-set=utf8mb4#mysqlde utf8字符集默认为3位的,不支持emoji表情及部分不常见的汉字,故推荐使用utf8mb4 [mysql]default-character-set=utf8mb4 [mysqld]skip-locking #避免MySQL的外部锁定,减少出错几率增强稳定性。 #skip-name-...
2019-03-21 16:36:21 593
原创 doceker:常见的容器启动命令
每次启动docker容器都要去dockerhub查看具体命令,非常不方便。本文将日常所用的容器启动命令整理,将会不定期更新。1.mysql容器的创建该命令指定容器挂载的数据目录,root用户密码,端口,一起一些常用设置(忽略表明大小写,默认字符集)docker run --name mysql-3306 \-v /var/opt/docker/mysql/data:/var/lib/my...
2019-03-21 16:31:43 3198 1
原创 SpringMvc源码解析(基于5.0.9)
研究源码前,先找到入库类,再根据入口方法一步一步跟踪深入。SpringMvc的入口类为配置在web.xml中继承了servlet的DispatcherServlet,以下是他的继承关系:先看这个特殊的servlet的init方法,封装在了HttpServletBean:public final void init() throws ServletException { if (logge...
2019-03-14 16:23:22 773
原创 java8stream操作:从集合中获取符合条件的元素
List<Student> students = new ArrayList<>(); students.add(new Student(1,"张三",90)); students.add(new Student(2,"李四",60)); students.add(new Student(3,"王五",30)); ...
2018-11-22 14:19:09 69008 8
原创 java8stream操作:将集合根据元素的某个属性分组求统计数据
student类:public class Student { private int id; private String name; private int score; public Student(int id, String name, int score) { this.id = id; this.name = na...
2018-11-22 14:01:47 34771
原创 java8stream操作:将集合转化为集合元素中属性为key的
List&lt;Student&gt; students = new ArrayList&lt;&gt;(); students.add(new Student(1,"张三",90)); students.add(new Student(2,"李四",90)); students.add(new St
2018-11-22 13:50:35 12677 3
原创 Spring Boot 零xml整合dubbo
项目结构首先看下完整项目结构:各模块功能介绍如下parent :父工程,依赖版本控制。dubbo-sample-api :公共文件所属模块,provider和consumer都依赖该模块。dubbo-sample-provider : dubbo的provider模块,api模块中接口的具体实现dubbo-sample-consumer : 消费者模块,间接providerpa...
2018-10-24 17:51:04 758
原创 通过nginx映射指定目录文件给外部访问
开发在排查线上问题时需要要查看服务器的日志文件。但是我们把服务器的访问权限下放给开发也不现实。对此我们可以通过ngxin配置,实现通过浏览器查看日志,浏览日志文件。先给出完整配置 server { listen 80; location ^/logs/fanlai~*\.(log|txt)$ { add_header C...
2018-07-28 15:15:12 55598 8
原创 java代码连接redis集群
public static void main(String[] args){ Set<HostAndPort> nodes = new HashSet<>(); nodes.add(new HostAndPort("192.168.0.107", 6380)); nodes.add(new HostAndPort("192.168.0.107",...
2018-04-13 17:33:57 2606 3
原创 redis:详解三种集群策略
redis包含三种集群策略主从复制哨兵集群主从复制在主从复制中,数据库分为俩类,主数据库(master)和从数据库(slave)。其中主从复制有如下特点:主数据库可以进行读写操作,当读写操作导致数据变化时会自动将数据同步给从数据库从数据库一般都是只读的,并且结束主数据库同步过来的数据一个master可以拥有多个slave,但是一个slave只能对应一个master...
2018-04-13 17:10:02 54165 9
原创 redis操作五种数据的命令说明
String字符串赋值表达式 set key value127.0.0.1:6379> set mykey myvalue0OKset 会覆盖该key之前的值,如果不想数据被覆盖,可以用setnx,表示如果key不存在,才设置这个值127.0.0.1:6379> setnx mykey 11(integer) 0另外可以用setex设置数据的...
2018-04-12 21:24:20 11482
原创 redis常见命令
进入客户端 redis-cli关闭redis服务 redis-cli shutdown启动redis服务 redis-service ../etc/redis.config获取当前数据库信息 info获取redis服务器配置信息 config get *清空元素 flushdb退出连接 ...
2018-04-12 21:20:23 578
原创 redis配置文件常见配置项说明
daemonize noRedis是否以守护进程的方式运行,默认为非守护进程(no),建议改为yes daemonize yestimeout 3000客户端闲置多长时间关闭连接,如果指定为0,表示关闭该功能dbfilename dump.rdb本地备份文件名save 自动RBD快照保存策略,表示seconds秒内进行了changes次写操作就触发快...
2018-04-12 21:19:28 667
原创 redis的安装
本文介绍redis的在linux系统下的安装,虽然redis也有windows版本,但是不建议使用。1、安装gcc yum install gcc2、将下载的redis-4.0.9.tar.gz上传到linux服务器,或者直接在linux服务器下载最新版本 wget http://download.redis.io/releases/redis-4.0.9.tar.gz...
2018-04-12 21:15:22 580
原创 redis的持久化策略
redis的持久化方式有俩种,持久化策略有4种:RDB(数据快照模式),定期存储,保存的是数据本身,存储文件是紧凑的AOF(追加模式),每次修改数据时,同步到硬盘(写操作日志),保存的是数据的变更记录如果只希望数据保存在内存中的话,俩种策略都可以关闭也可以同时开启俩种策略,当Redis重启时,AOF文件会用于重建原始数据RDBRDB定时备份内存中的数据集。服务器启动的时候,可...
2018-04-12 21:12:18 11235 2
原创 redis概述
redis以键值对的形式存储的内存数据库。数据都是缓存在内存中,读写快,也可以支持持久化保存到硬盘。本文介绍redis的特点以及与memcached的比较特点Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超...
2018-04-12 21:10:16 519
原创 如何快速判断一个数字是否是2的n次方
public boolean check(int m){ if(n < 1) return false; int n = m & m(m-1); return n == 0;}定义2的n次方的数字m,我们知道m二进制为0001,0010,0100……这样的,而m-1的二进制为0000,0001,0011……这样的。可见m&(m-1)的运算结果...
2018-04-09 22:47:23 8020
转载 java面试题精解3:大型网站在架构上应当考虑哪些问题
1、分层:分层是处理任何复杂系统最常见的手段之一,将系统横向切分成若干个层面,每个层面只承担单一的职责,通过下层为上层提供的支撑和服务以及上层对下层的调用来形成一个完整的复杂的系统。比较常见的分层模式是MVC,将软件系统分为持久层(提供数据存储和访问服务)、业务层(处理业务逻辑,系统中最核心的部分)和表示层(系统交互、视图展示)。需要指出的是:分层是逻辑上的划分,在物理上可以...
2018-03-16 09:48:50 1364
原创 java面试题精解 2:javaIO模型与系统底层IO模型
因为安全的原因,系统将内存分为用户空间和内核空间。java无法操作内核空间,在读取数据时只是提交一个read请求给系统,系统内核先将数据准备到内核空间,再将数据复制到用户空间,这样java就可以在用户空间获取到想要的数据。I/O操作是依赖于缓冲区的操作,进程执行I/O操作时,归结起来就是向操作系统发出请求,让它把缓冲区里的数据排干(写)或者填满(读)。这样就会导致数据在传输过程中需要在应用...
2018-03-15 18:22:42 753
原创 java面试题精解1:详解XSS攻击、SQL注入攻击、CSRF攻击
1、xss攻击1.1 什么是xss攻击XSS全称cross-site scripting(跨站点脚本),是当前 web 应用中最危险和最普遍的漏洞之一。攻击者向网页中注入恶意脚本,当用户浏览网页时,脚本就会执行,进而影响用户,比如关不完的网站、盗取用户的 cookie 信息从而伪装成用户去操作,携带木马等等。 1.2 xss分类反射型XSS(非持久性跨站攻击)存储型XS...
2018-03-15 17:46:30 3126 1
原创 java常见排序算法
java中常见的7种排序算法冒泡(Bubble)排序——相邻交换 选择排序——每次最小/大排在相应的位置 插入排序——将下一个插入已排好的序列中 壳(Shell)排序——缩小增量 归并排序 快速排序 1、冒泡(Bubble)排序 void BubbleSortArray() { for(int i=1;i<n;i++) { ...
2018-03-12 10:28:04 433
原创 java虚拟机内存分配方式
在JVM中,内存分配方式分为俩种:指针碰撞空闲列表1、指针碰撞如果内存是完整的,空闲的内存存放在一边,用过的内存放在另外一边,中间有个指针作为分界点的指示器。需要分配新内存的时候,指针往空闲内存那边挪动一段与新指针大一小相等的距离。这种分配方式就叫指针碰撞。2、空闲列表如果java堆中的空闲内存是碎片化不完整的,已使用内存与空闲指针存在交叉。虚拟机中有一利列表记录...
2018-03-06 17:25:33 1043
原创 异常:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
异常描述com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet successfully received from the server was 340,065 milliseconds ago. The last packet sent su...
2018-03-05 15:20:33 1844
原创 Java:将map中的key转化为小写
public static Map<String, Object> transformUpperCase(Map<String, Object> orgMap) { Map<String, Object> resultMap = new HashMap<>(); if (orgMap == null...
2018-02-09 11:28:34 20134
原创 eclipse代码折叠展开功能快捷键
eclipse代码折叠展开默认快捷键: Ctrl+Shift+Numpad_Divede(小键盘的/号) Ctrl+Shift+Numpad_Multiply(小键盘的*号)大部分笔记本没小键盘,可以自定义改成其他的,设置快捷键方式: windows->perferences->general->key
2018-01-10 09:42:20 16044
原创 ocrale:循环插入数据
orcale数据库中,从一张表查询个别字段,并循环插入到另外一张表,入库字段不仅仅是原始表中的字段:declare cursor userids is select id_ from pl_user;begin for item in userids loop insert into pl_user_role (id_,role_id,user_id,create_
2018-01-03 11:37:45 1164
原创 POJO转换类工具类
javaweb项目中,少不了需要领域类之间的转换,比如po类转换为dto。 这个功能很多第三方工具类都有提供,比如比如org.apache.commons包中的BeanUtils。本文也提供了一个pojo的转换工具类,经测算,该工具类的运行效率比BeanUtils快20倍。下文是工具类代码:/** * 实体类转化工具类 * @author 漆可 * @date 2017年12月
2017-12-27 17:54:58 4007 1
原创 解决Gson解析数据用map接收时int自动转化为double问题
Gson可以将json字符串转换成map, 但是在转成map时, 原json字符串中的int , long型的数字会默认被转换成double类型 , 导致数字会多一个小数点 , 如 1 会转成 1.0。我们可以用自定义TypeAdapter替代Gson默认的adapter解决: Gson gson = new GsonBuilder().registerTypeAdapter(new
2017-12-12 14:10:51 13148 9
原创 java中foreach循环原理
一般,我们使用会用foreach取代for循环进行集合的遍历操作。public static void main(String[] args){ List<String> list = new ArrayList<String>(); list.add("111"); list.add("222"); for (String str : list) {
2017-11-30 15:28:53 1915
原创 java遍历Map效率最高的方式
遍历Map的方式有很多,通常场景下我们需要的是遍历Map中的Key和Value,那么推荐使用的、效率最高的方式是:public static void main(String args...){ HashMap<String, String> hm = new HashMap<String, String>(); hm.put("111", "222"); Set<Map.E
2017-11-30 14:57:41 16010 7
原创 java:if (i == 1)和if (1 == i)有区别吗?
经常看到类似于if (1== i)的代码,其实在java中它和if (i == 1)是没有区别的,而且后者阅读性更强些(除非你喜欢从右往左阅读)。那么为什么有的人喜欢用表达式if (1== i)呢?这得从C/C++说起,在C/C++中,”if “条件判断条件成立,是以0与非0为基准的,0表示false,非0表示true。如果有这么一段代码:int i = 2;if (i == 1)在如上代码中,2
2017-11-30 14:53:05 10806 5
原创 java:判断数组中是否包含某元素
方法一 private static boolean isContainKey(String[] keys, String targetValue) { if (keys == null || keys.length == 0) { return false; } for (String str :
2017-11-24 09:40:39 37953 6
Spring Boot实战
2017-09-13
安卓仿电商商品详情中间部分滑动时页顶在顶部特效
2016-08-16
listview万能适配器
2016-06-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人