自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lailai的博客

一个职业划水程序员

  • 博客(19)
  • 资源 (2)
  • 收藏
  • 关注

原创 文件压缩打包工具类

文件压缩打包工具类import cn.hutool.core.io.FileUtil;import cn.hutool.core.io.IoUtil;import org.springframework.stereotype.Component;import org.springframework.util.FileCopyUtils;import javax.servlet.http.HttpServletResponse;import java.io.*;import java.net.

2021-09-07 17:29:37 410

原创 分布式锁Redisson工具类

DistributedLocker/** * <p> * 分布式锁接口 * </p> * * @author lailai * @since 2021-09-07 */public interface DistributedLocker { /** * 获取锁,如果锁不可用,则当前线程处于休眠状态,直到获得锁为止。 * * @param lockKey 锁key值 */ void lock(String loc

2021-09-07 17:26:54 1407

原创 DateUtil

public` `class` `DateUtil { ``/** 锁对象 */ ``private` `static` `final` `Object lockObj = ``new` `Object(); ``/** 存放不同的日期模板格式的sdf的Map */ ``private` `static` `Map<String, ThreadLocal<SimpleDateFormat>> sdfMap = ``new` `HashMap<String, Thread

2021-07-27 09:34:16 163

原创 CentOS 7.9下安装Docker及常用镜像

CentOS 7.9下安装Docker及常用镜像本文档为在Centos 7.9下安装Docker及常用镜像的指导文件。一、安装Docker1、环境准备操作系统版本为centos 7.9,内核版本需要在3.10以上,需要保障能够连通互联网,为了避免安装过程中出现网络异常建议关闭linux的防火墙(生产环境下不要关闭防火墙,可根据实际情况设置防火墙出入站规则)。#查看内核版本sudo uname -r#查看系统版本sudo cat /etc/redhat-release#关闭防火墙sudo

2021-07-27 09:29:29 8848 3

原创 Spring bean加载过程以及循环依赖问题

Spring bean加载过程以及循环依赖问题参考:https://blog.csdn.net/weixin_38278878/article/details/81408403准备ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml"); Person person = context.getBean("person", Person.class);通过加载xml得到Spring应用上下文

2021-07-12 09:56:48 272

原创 使用Socket实现一个简单的RPC

使用Socket实现一个简单的RPC实现原理consumer端使用jdk动态代理,代理要调用的接口建立socket连接,传入socket连接ip和端口号。代理类发送socket连接,把封装的参数数据(需要类名、方法名、参数类型反射构建方法 执行咱们需要调用的方法)输出到socket中。provider端接收接收(accept)socket消息,通过接收到的封装参数构建执行方法并写入socket返回。具体实现待调用接口类public interface OrderApi { Strin

2021-05-11 15:51:33 218

原创 java获取ip地址

private String getVisitorIp(){ String ip = request.getHeader("X-Forwarded-For"); ip = request.getHeader("Proxy-Client-IP"); ip = request.getHeader("WL-Proxy-Client-IP"); ip = request.getHeader("HTTP_CLIENT_IP"); ip = request.getHeader(

2021-05-06 14:55:30 79

转载 MySQL with rollup 用法

MySQL with rollup 用法https://www.cnblogs.com/phpper/p/9384614.html

2020-12-30 10:22:58 166

原创 MD5加密工具

public class MD5Util {/** * 获取一个文件的md5值(可处理大文件) * @return md5 value */public static String getMD5(File file) { FileInputStream fileInputStream = null; try { MessageDigest MD5 = MessageDigest.getInstance("MD5"); fileInputStream

2020-12-24 17:16:16 114 1

转载 IDEA中Run Dashboard/services不启动的问题解决方法

IDEA中Run Dashboard/services不启动的问题解决方法https://blog.csdn.net/hanjiaqian/article/details/108216132

2020-12-08 14:40:12 506

原创 详解前后端分离使用Token作为标识Shiro认证登录

思考为什么需要用token来做?传统的session为什么不可以?token有何优势。session存在的问题 :①前后端分离项目,前端可能是web/app等,对于存储sessionId的cookie问题;②session存在CSRF跨站伪造请求攻击;③ 服务器压力增大,通常session存储在内存中,用户量大服务器压力也大;③ 服务器分布式部署情况下,session就会不一定获取的到,存在不在一台服务器中的情况,拓展性很差。token有何优势 :token与session的不同:①认

2020-11-26 15:07:53 4294 5

原创 JDK 1.8 内存结构简介

JDK 1.8 内存结构文章目录JDK 1.8 内存结构程序计数器虚拟机栈本地方法栈堆元数据区常量池程序计数器《深入理解java虚拟机》记录当前线程执行的字节码行号。① 线程私有。② 如果执行的是native方法,值为null。③ 此区域是JVM规范中唯一一个不存在OOM(OutOfMemory)的区域。虚拟机栈每一个线程执行时,都对应有一个虚拟机栈,生命周期与线程相同。一个虚拟机栈有一个一个的栈帧组成,每个java方法被调用时都会创建一个栈帧,然后入栈,方法结束后出栈。一个栈帧由局部

2020-11-23 16:07:33 973

原创 七条软件设计原则

软件设计原则在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据 7 条原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。我来依次来总结这 7 条原则。这 7 种设计原则是软件设计模式必须尽量遵循的原则,各种原则要求的侧重点不同。其中,开闭原则是总纲,它告诉我们要对扩展开放,对修改关闭;里氏替换原则告诉我们不要破坏继承体系;依赖倒置原则告诉我们要面向接口编程;单一职责原则告诉我们实现类要职责单一;接口隔离原则告诉我们在设计接口

2020-11-19 17:13:36 166

原创 Spring框架 jar依赖包下载链接

Spring 依赖包下载链接http://repo.springsource.org/libs-release-local/org/springframework/spring/3.2.4.RELEASE/spring-framework-3.2.4.RELEASE-dist.zip

2020-11-18 16:07:38 825

原创 linux上RabbitMQ安装及Springboot使用教程

文章目录一、导入依赖二、配置application.properties/yml三、3种常用类型1.fanout广播发布模式**发送消息****接收消息**2.**direct路由模式**发送消息接收消息3.topic通配符主题订阅模式四、ack机制五、confirm 和 return附:一、导入依赖 <!--rabbitMQ--> <dependency> <groupId>org.springframework

2020-11-18 15:52:04 397

原创 JAVA 大写金额转数字

大写金额转数字public Double CNYtoN(String amount) { double result = 0; double temp = -1;//存放一个单位的数字如:十万 int count = 0;//判断是否有chArr Map<Character, Double> map = new HashMap<Character, Double>(); //存放数字map map.pu

2020-11-13 17:47:32 390 1

原创 Springboot接入支付宝支付

准备:登陆支付宝开发者中心地址:https://openhome.alipay.com/一、导入支付宝依赖<dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId></dependency>二、配置appliction.yml配置#支付宝配置alipay: host: htt

2020-11-13 17:43:50 748

原创 outlook邮箱备份步骤

1.打开文件2.点击导入/导出3.导出到文件4.选择收件箱5.浏览选择保存路径,更改保存文件命名。6.密码可选填7. 导出已发送邮件和已删除邮件步骤一样8.导出样式如下​ #### 下面导入部分可在新邮箱布置好之后执行9.(img-Up70LmNb-1605251490392)][外链图片转存中…(img-8Ix9T3Le-1605251490393)]...

2020-11-13 15:12:13 2155

原创 VUE入门学习

VUE 学习一、模板语法1、{{ }} 插值new Vue({ el: '#app', data: { message: '<h1>我是金金</h1>' }})<div id="app"> <!-- 可以直接显示样式,即直接显示html代码--> <p>{{ message }}</p></div>2、v-bind: 属性v-bind:titlev-bind:class

2020-11-13 10:50:25 77

AnyChatWebSetup.exe

AnyChat for Web SDK包中提供了一个ActiveX插件(如果您自己有ActiveX代码签名证书,可对SDK包bin\AnyChatWeb目录中的“npanychatweb.dll”和“npvideoshowctrl”插件进行签名,具体操作参考bin下面的readme.txt文件),AnyChat Web SDK提供的所有JavaScript接口都是基于这个插件实现。在使用AnyChat Web SDK接口进行通讯之前,需要确保插件已经安装成功。

2020-11-18

DisplayLink USB Graphics Software for Windows 9.1 M2.exe

DisplayLink是一个通过USB接口实现显示器连接到电脑的连接技术,可以非常简单、方便的连接电脑和多个显示设备。该技术可以通过USB接口扩展虚拟的电脑的桌面。

2020-11-18

空空如也

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

TA关注的人

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