自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java文件压缩加密

我们经常遇到需要对文件进行压缩操作,https://github.com/srikanth-lingala/zip4j

2021-06-02 19:40:40 3041

原创 SpringCloud项目中随处获取当前登录用户原理

我们常在SpringCloud项目开发中使用以下代码随处获取当前登录用户,通过常理分析肯定是有相关过滤器进行了设置用户的操作SecurityContextHolder.getContext().getAuthentication().getPrincipal();上一篇文章https://blog.csdn.net/u012833261/article/details/115709381中也说到资源服务验证token的两种方式,验证token过程中肯定也进行了以下相关的操作,那我们就来测试一下

2021-04-21 20:54:18 4511

原创 资源服务器验证Token的几种方式

资源服务器验证Token的两种方式

2021-04-15 18:11:34 6873 3

原创 记一次OOM问题

@[TOC](记一次OOM问题)# 最近项目里在测试大文件上传,300-500M的文件直接导致OOM,上传报错,虽然大文件最好采用分片,但是项目里最大文件是500M,目前没有分片,记录一下问题处理和排查过程## 第一步尝试增加启动堆内存测试环境容器有4G内存,报OOM错误以后,于是查看容器服务的启动参数,-Xmx是1G,第一步调整启动参数,调到3个G,再进行测试,上传460M文件,到100%的时候就OOM了,心态崩了,这要是高并发还不死掉。## 第二步尝试扩展高并发将测试环境的容器扩...

2021-03-09 17:31:36 208

原创 org.quartz.ObjectAlreadyExistsException: Unable to store Trigger with name: ‘1319570132253601794‘ an

org.quartz.ObjectAlreadyExistsException: Unable to store Trigger with name: '1319570132253601794' and group: '4f04fc3d-9298-489d-9033-7847d539e705', because one already exists with this identification.编辑定时任务异常最近项目定时任务服务经常报数据库链接超时,影响定时任务的执行,项目原本使用的quart

2021-02-06 20:34:51 1999 2

原创 get请求传数组加解密+变空格

get请求传数组加解密+变空格最近项目有个需求,get请求方式传数组,并且数组数据经过des加密,使用@RequestParam注解可以直接接收前端传递idList参数,前端idList是字符串拼接","隔开的字符串参数,但是由于des参数是加密的,有时候会有+字符,由于URL自动编码,所以后端获取到参数时需要将空格替换成字符串,自己测试的时候没有问题,但是上测试环境的时候出现了极端情况,接收的数组里有些加密参数的末尾是空格,@RequestParam注解接收到参数自动把空格去掉了,这导

2021-02-06 16:18:08 720 2

原创 在提交代码push到代码库中出现ERROR: missing Change-Id in commit message footer

今天在公司第一次push代码到gerrit上,一直出现如下图的错误,一般这种错误出现在第一次提交代码的时候。一般网上的解决办法有两种:一是通过gitlog命令查询到本次提交的前一次提交的id,然后使用gitrebase -i + “前一次提交的id,修改文件,将前一次提交commit前面的pick改成reword或者edit,然后再执行gitcommit --amend命令,什么...

2019-07-08 22:29:25 1874

原创 Mapper.xml中查询返回带有List属性的实体类结果

刚入职公司,参与到一个项目中,由于是刚毕业的菜鸟,只能分配写一些查询的接口代码。其中有一个就是需要返回一个实体类的信息,该实体类带有List属性,返回的结果类似于下图。我的解决办法是将查询分成两步,第一步是查询到对应的表的实体类结果,第二部查询到一个List集合然后将这个集合通过set方法复制给实体类。后来看了同事的代码豁然开朗,这里用学生的信息模拟一下。1.建立学生关系表建了五张...

2019-06-28 15:14:09 24839

原创 keepalived+nginx负载均衡高可用遇到的一些问题

今天学习了keepalived+nginx实现高可用负载均衡,keepalived和nginx安装不在这赘述,主要讲遇到的问题。首先我在vmware开了五台虚拟机,其中两台是nginx服务器,一主一备,主ip是192.168.20.18,备ip是192.168.20.22,其他三台ip是192.168.19,20,21,分别是文件服务器和web服务器。nginx主要的配置如下两台nginx...

2019-04-25 14:31:34 1304

原创 在虚拟机模拟部署Redis集群的坑

按照步骤在一个cenos虚拟机搭建集群之后,在这里就不具体介绍怎么搭建了。Redis是4.0.9的。在/usr/local/redis-cluster拷贝了六个redis单机版副本,redis01-redis06。修改每个文件夹下的redis.conf文件,更改每个的端口依次为7001-7006.daemonize yesprotected no注释掉#bind 127.0.0.1.并且7001-...

2018-04-22 17:09:30 1036

原创 FTPClient上传文件成功返回值是false问题

在使用org.apache.commons.net.ftp.FTPClient这个包上传文件到服务器时返回值总是false,例子如下        //创建一个FtpClient对象 FTPClient ftpClient = new FTPClient(); //创建ftp连接,默认端口是21,可以不写 ftpClient.connect("192.168.140.128",21); /...

2018-04-17 21:04:19 3951 2

原创 Centos中安装配置 nginx

1 nginx安装环境         nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境。n  gcc         安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++ n  PCRE         PCRE(PerlCompatible Regular Expre...

2018-04-16 21:29:14 128

原创 Lintcode 24 LFU缓存

LFU是一个著名的缓存算法实现LFU中的set 和 get样例capacity = 3set(2,2)set(1,1)get(2)>> 2get(1)>> 1get(2)>> 2set(3,3)set(4,4)get(3)>> -1get(2)>> 2get(1)>> 1get(4)>&

2018-03-13 17:42:13 265

原创 Lintcode 20 骰子求和

扔 n 个骰子,向上面的数字之和为 S。给定 Given n,请列出所有可能的 S 值及其相应的概率。样例给定 n = 1,返回 [ [1, 0.17], [2, 0.17], [3, 0.17], [4, 0.17], [5, 0.17], [6, 0.17]]。思路:扔n个骰子数字和及概率相当于求前n-1个骰子和及概率与第n个骰子和及概率。1.当n<=0,返回空2.当n=1时,返回1-6...

2018-03-13 17:28:36 224

原创 Lintcode17 子集

给定一个含不同整数的集合,返回其所有的子集 注意事项子集中的元素排列必须是非降序的,解集必须不包含重复的子集样例如果 S = [1,2,3],有如下的解:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]思路:求n个数的子集等于求前n-1个数的子集和这最后一个数构成的子集,运用递归求解代码如下:public c...

2018-03-13 17:24:46 166

原创 实现atoi这个函数,将一个字符串转换为整数。如果没有合法的整数,返回0。如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数

Lintcode 54  转换字符串到整数实现atoi这个函数,将一个字符串转换为整数。如果没有合法的整数,返回0。如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-2147483648)如果是负整数。解题思路:这题需要考虑周全,数字和字符的情况很多1.获取字符串(1)当首位时,除去空格后判断首位是否为数字或“+”,“-”号,如果是继续,...

2018-03-08 18:55:36 2375

原创 给定一个数字列表,返回其所有可能的排列。 注意事项 你可以假设没有重复数字。

Lintcode 15 全排列给定一个数字列表,返回其所有可能的排列。 注意事项你可以假设没有重复数字。思路:思路:n个数字额全排列等于将最后一个数字k插入前n-1个数的全排列中,这就是递归思想int类型的nums数组作为输入1.当只有一个数时输出这个数的排列2.否则将这个nums的前n-1个数赋值到array数组中3.递归调用返回排列,本代码中返回List4.对List中的每一个排列构造全排列p...

2018-03-08 18:40:23 3181

原创 测试万网的php服务器

测试万网的php服务器用到工具:WinSCP公司最近申请了阿里旗下的万网PHP专用服务器,本人php小白,以前没有接触过php,因为公司需要,就来测试一下公司的服务器。我就建了一个helloWorld的thinkPHP项目,用winscp将项目上传到服务器的htdocs目录下。注意选择FTP文件协议,输入FTP地址和用户名密码后登录到服务器就可以上传文件了。因为服务器是公司申请的集成的php服务器...

2018-02-08 11:53:04 703

原创 ThinkPHP中使用网页模板快速搭建网站

ThinkPHP中使用网页模板快速搭建网站公司要建一个网站,我刚接触PHP,还不是很熟悉,了解了一下ThinkPHP框架之后,简单的搭建了一个网站,网站内容目前还是写死的,还没有做具体的功能,想先分享一下。开发环境如下。开发环境或工具Zend Studio 13.6.1ThinkPHP框架 3.2.3Wampserver(集成了PHP+Apache+MySQL,安装后即可使用,不需要配置环境)第一...

2018-02-08 11:48:16 10570

转载 给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。

摘自http://blog.csdn.net/wangyezi19930928/article/details/52516332思路:考虑一个普通的加法计算:5+17=22在十进制加法中可以分为如下3步进行:    1. 忽略进位,只做对应各位数字相加,得到12(个位上5+7=12,忽略进位,结果2);    2. 记录进位,上一步计算中只有个位数字相加有进位1,进位值为1

2018-02-06 12:06:59 373

原创 QMUI_Android使用(四)QMUIPullRefreshLayout

下拉刷新是一个布局,需要在布局文件中添加,我的灯泡控制项目的该部分布局如下1. 布局xml version="1.0" encoding="utf-8"?>FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/ap

2018-02-06 11:39:04 3274

原创 QMUI_Android使用(三)QMUIPopup

浮层是点击文字按钮弹出信息框,//普通浮层private QMUIPopup mNormalPopup;if (mNormalPopup == null){ mNormalPopup = new QMUIPopup(getContext(),QMUIPopup.DIRECTION_NONE); TextView textView = new TextView(ge

2018-02-06 11:31:49 6588

原创 QMUI_Android使用(二)QMUITipDialog

导入环境后,在代码中直接使用如下代码final QMUITipDialog tipDialog;tipDialog = new QMUITipDialog.Builder(getContext()) .setIconType(QMUITipDialog.Builder.ICON_TYPE_SUCCESS) .setTipWord("操作成功") .crea

2018-02-06 11:16:02 6547

原创 QMUI_Android使用(一)QMUIDialog

1.QMUI_Android是腾讯出的一款UI框架,还有Web和IOS版本。 在AndriodStudio中新建一个Android项目,在APP中build.gradle的dependencies中加入compile'com.qmuiteam:qmui:1.0.6',如下:2.在styles.xml文件中将主题改为stylename="AppTheme"parent="QMUI.Com

2018-02-06 11:03:07 13553 1

原创 Android底部导航栏点击切换变色

底部导航栏切换是由RadioGroup中的RadioButton点击事件切换的,其实之前的文章中已经介绍了,但是在这里详细说明一下。1.1 底部导航栏的布局文件bottom_bar.xml如下:xml version="1.0" encoding="utf-8"?>LinearLayout xmlns:android="http://schemas.android.com/apk/r

2018-02-06 10:33:02 5382 1

原创 Android的Fragment嵌套Fragment,使用QUMI_Android的TabSegment

在上面的文章一个MainActivity中嵌套三个Fragment,实现底部状态栏的滑动和点击切换,但是有时一个页面又有多个子页面,这时就需要在Fragment中嵌套子Fragment了。在这个项目中,连接界面ConnectFragment有扫描和手动输入两个功能,通过点击上方的导航栏切换不同界面,这就是两个子Fragment。1.1 ConnectFragment的布局文件如下,

2018-02-06 10:12:03 4333 1

原创 Android项目ViewPager+Fragment+RadioButton实现底部导航栏切换

Fragment是Android3.0后引入的一个新的API,它出现的初衷是为了适应大屏幕的平板电脑, 当然现在它仍然是平板APP UI设计的宠儿,而且我们普通手机开发也会加入这个Fragment, 我们可以把他看成一个小型的Activity,又称Activity片段。Fragment出现可以把布局进行分块,进行模块化管理,开发效率更高。可以一个Activity对应多个Fragment,真正做

2018-02-06 09:40:51 3931 5

原创 解决Android6.0以上扫描WIFI获得列表为空

我们知道Android SDK23之后Google对许多权限进行了修改,比如wifi和蓝牙。在Android6.0及以上扫描WIFI必须先打开GPS,否则扫描得到的WIFI列表为空。解决方法如下:1.首先在AndroidManifest.xml文件中再增加以下权限uses-permission android:name="android.permission.ACCESS_FINE_L

2018-02-05 21:24:24 6942 3

原创 Android手机实现同一端口发送和接收UDP数据

有时候Android手机发送UDP消息,需要知道有没有发送成功,这就要监听反馈回来的消息。一般情况下,反馈的消息发送到的是手机发送端口,所以这时候发送端口和接收端口是同一个端口。在我的第一篇文章中(http://blog.csdn.net/u012833261/article/details/78982538),使用的就是DatagramSocket,这在启动监听线程时占用发送端口,造成无法同时接

2018-01-12 09:36:39 6292 2

原创 java项目的jar包加密(防止反编译)

最近给公司写了一个项目,需要给其他公司用,为了不让别人看到源码,将项目打成了jar包,但是jar包用反编译工具还是能很轻松的看到源码。所以想到了加密jar包,用的是ProGuard,下载地址:https://sourceforge.net/projects/proguard/files/。      其实jar包加密只是增加了反编译时间,理论上还是能破解的,但是有总比没有好。废话少说,开始吧。

2018-01-11 16:30:18 52933 8

原创 Android手机扫描mDNS服务

2018-01-05 21:09:22 7855 1

原创 Android扫描附近的WIFI联网

开发WIFI功能首先要开启wifi的相关权限,在AndroidManifest.xml配置如下            WIFI工具类:package com.wifi.connect;import java.util.ArrayList;import java.util.List;import android.content.Context;

2018-01-05 20:52:14 2528

原创 Android手机发送和监听UDP数据

UDP协议中文名是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。与所熟知的TCP(传输控制协议)协议一样,UDP协议直接位于IP(网际协议)协议的顶层。根据OSI(开放系统互连)参考模型,UDP和TCP都属于传输层协议。UDP协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据

2018-01-05 16:12:51 10475 1

空空如也

空空如也

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

TA关注的人

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