
Java
文章平均质量分 83
GeeLoong
这个作者很懒,什么都没留下…
展开
-
JAVA做为客户端连接Websocket之wss
博主对长链接并不是特别熟练,但是什么代码是能正式用的,什么代码上不了生产只是个写着玩的demo 还是一眼能分辨出来的,代码主要参考 git@github.com:yimiancheng/netty-study.git ,写的很不错,代码优化空间很少了, 线程池博主是推荐用new ThreadPoolExecutor()创建,避免OOM的问题,除此之外应该是准生产环境级别代码了。断开连接会进入channelInactive方法(本文中未重写该方法, 在channelInactive方法中重连也是没问题的)转载 2023-10-24 22:14:02 · 6274 阅读 · 0 评论 -
【经典】Mybatis百万级高效批量插入
Mybatis百万级高效批量插入转载 2022-10-03 17:48:02 · 6260 阅读 · 3 评论 -
【精】 一分钟读懂Spring Security的基本原理
spring security 是由一系列的过滤器连构成,主要包行 SpringSecurityContextFilter、UsernamePasswordAuthenticationFilter、ExceptionTranslationFilter、FilterSecurityIntercepor等;原创 2021-04-13 00:45:47 · 427 阅读 · 0 评论 -
一分钟进一步了解面向过程、面向对象、面向接口、面向抽象
计算机是用来解决处理一些问题或事情的,而所谓的问题或事,则是由一个个的客体所触发的,所以在现实世界中存在的客体,则才是问题域的主角,这也是人类解决问题的基本思路;* 客体,即是客观存在是实体,客体由一些属性和行为来描述;举个例子,如:现实生活中的泥石流事件,我们最好的解决办法不是针对事件本身,而是针对引起这事件的实体,所以我们一般会将问题转移到山这个客体上,然后对山体进行一些如绿化、水泥...原创 2020-04-19 04:35:24 · 679 阅读 · 0 评论 -
【经典】IDEA+DevTools热部署
IDEA+DevTools实现热部署功能热部署 大家都知道在项目开发过程中,常常会改动页面数据或者修改数据结构,为了显示改动效果,往往需要重启应用查看改变效果,其实就是重新编译生成了新的Class文件,这个文件里记录着和代码等对应的各种信息,然后Class文件将被虚拟机的ClassLoader加载。而热部署正是利用了这个特点,它监听到如果有Class文件改动了,就会创建一个新的Cla...转载 2020-04-15 14:16:00 · 694 阅读 · 0 评论 -
【经典】华为远程机试题分享(跟进)
在上一篇博客中有说到面试的具体事儿昨晚那种方法做出来之后,感觉可读性不好,也就是一般情况下很难看懂代码,所以接近睡着时我又想到一个办法比较简单,而且易懂,所以写这篇博客和大家分享一下吧(具体就围绕下图这个核心问题来做)其实我的想法很简单,就是借助链表来实现,因为链表删除功能方便,直接pollFirst() pollLast();1、先取出来最上面一排,并移除;2、取出最又一排并...原创 2020-03-26 12:51:49 · 666 阅读 · 0 评论 -
【经典】JAVA线程池
多线程创建方法一JAVA中我们用JUC包下的ThreadPoolExecutor来创建线程池,ThreadPoolExecutor提供了四个构造方法:public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Run...原创 2020-03-15 00:20:06 · 250 阅读 · 0 评论 -
JVM调优简单梳理,一分钟了解JVM调优
一、JVM内存模型?JVM把内存划分为堆,载,方法区。堆:堆是所有线程共享,虚拟机启动时创建,主要存放对象和数组,所占内存比较大。 堆结构包含年轻代,老年代和持久代,其中年轻代又分为Eden区和2个Survivor区(幸运区)。 -Xms=*** 堆初始化空间大小,默认内存的1/64 -Xmx=*** 堆空间最大值 -XX...原创 2020-03-06 23:37:40 · 395 阅读 · 0 评论 -
JAVA 四大作用域名
JavaWeb有ServletContext、ServletRequest、HttpSession、PageContext四大域对象,下面主要从域对象的生命周期、作用、作用范围进行介绍。Servlet中只有前三个域对象,JSP中多了一个pageContext对象。一、ServletContext1.生命周期当web应用被加进容器时,创建代表整个web应用的ServletContext对...转载 2019-12-18 12:29:44 · 500 阅读 · 0 评论 -
springboot全局异常配置
在项目中,我们会遇到各种各样的业务异常,业务异常是指业务处理时,由于某些业务的特殊要求而导致处理不能继续而抛出异常.比如说检测用户输入的内容中是否包含敏感词汇.我们希望这些业务异常能够被统一处理,接下来就是如何处理全局异常.首先,统一封装自定义业务异常BusinessException. package com.example.test.error;/** * 描述:业务异常...转载 2019-12-18 12:04:53 · 207 阅读 · 1 评论 -
SpringBoot自定义错误页面 与 全局异常处理
Springboot中需要自定义错误页面:一、使用Springboot默认的配置 1、在templates下穿件一个目录:error 2、在error目录下创建相应的对应的文件即可,如:400.html; 500.html二、自定义错误页面配置; 首先,在我们的Spring Boot项目目录/src/main/resources/st...转载 2019-12-18 12:00:21 · 222 阅读 · 0 评论 -
@PostConstruct、构造函数和@AutoWired的执行顺序
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声...转载 2019-11-21 15:21:04 · 820 阅读 · 2 评论 -
移动接口开发:JAVA判断是android还是ios 端请求
做移动开发时,时常要判断移动终端是IOS还是android,以及浏览器,或者手机型号等等操作其实在用户发起请求时,可以通过header来获取到你想要的东西;我们来看看: 1 2 3 4 5 publicObject dowlaodapplawyer(HttpServletRequest request, HttpServl...转载 2019-11-18 11:17:44 · 1572 阅读 · 0 评论 -
Android端RSA加密,服务端无法解密的一个坑
关于加密填充方式: Android端RSA加密过的数据,服务器端死活解密不了,原来android系统的RSA实现是"RSA/None/NoPadding",而标准JDK实现是"RSA/None/PKCS1Padding" ,这造成了在android机上加密后无法在服务器上解密的原因,所以在实现的时候这个一定要注意。实现分段加密: 搞定了填充方式之后并不一定万事大吉了,RSA非对称加密内容长度有限...转载 2019-10-28 17:09:18 · 2260 阅读 · 0 评论 -
【经典】Redis快速学习一
一、安装与启动1)安装直接到官网下载即可2)服务的启动和客户端的启动 redis-server redis.config //以redis.config这个配置文件启动redis redis-cli -p 6379 -a 123456 //-p是端口号,可以修改;-a 是密码,需要再配置文件中配置(requirepass)二、通用命令ping ...原创 2019-02-20 01:28:18 · 307 阅读 · 0 评论 -
浅谈分布式锁与乐观锁
随着互联网技术的不断发展,数据量的不断增加,业务逻辑日趋复杂,在这种背景下,传统的集中式系统已经无法满足我们的业务需求,分布式系统被应用在更多的场景,而在分布式系统中访问共享资源就需要一种互斥机制,来防止彼此之间的互相干扰,以保证一致性,在这种情况下,我们就需要用到分布式锁。 首先我们先来看一个小例子: 假设某商城有一个商品库存剩10个,用户A想要买6个,用户B想要买5个,在理想状态...转载 2019-07-14 21:21:40 · 3464 阅读 · 0 评论 -
zyUpload多文件预览上传插件集成OSS后台签名直传功能
zyUpload集成OSS直传由于系统急需这样一个功能,故而做了下简单的集成。如您有这方面需求可以直接拿去用,简单配置即可用。先附上源码:https://pan.baidu.com/s/1hhOodpuydWvHZ-YX5Os03Q提取码:pvqw效果展示: 说明:1. 使用方法请参考“使用说明.txt”;...原创 2019-06-16 18:57:17 · 605 阅读 · 0 评论 -
yml 自定义配置读取
由于项目需要,我们有时候会把一些动态的参数配置放置在yml文件里,例如外围系统的url,然后对其进行访问。这个时候,就需要在SpringBoot2.0下读取YML文件的属性值maven依赖<!-- 支持 @ConfigurationProperties 注解 --> <dependency> <groupId&...转载 2019-06-15 23:30:54 · 4709 阅读 · 0 评论 -
freemarker模板引擎之简单入门一
更多详细内容,参考官方中文文档。一、取值${属性名}${属性名.自属性名}${属性名!默认值}${属性名?函数名} 格式化输出${条件表达式?string("true的情况","false的情况")} #模拟三目运算符如:${属性名?string('¥0.00')} 格式化输出${属性名?string('yyyy年MM月dd日')} 格式化输出二...原创 2019-06-09 08:14:27 · 394 阅读 · 0 评论 -
Springboot @Async 异步任务调用
异步调用的概念异步调用相对于同步调用而言,通常的方法都是程序按照顺序来执行的,程序的每一步都需要等到上一步执行完成之后才能继续往下执行;而异步调用则无需等待,它可以在不阻塞主线程的情况下执行高耗时方法如何实现异步调用在不使用SpringBoot的时候我们通常使用多线程的方式来实现异步调用,对于一个web项目的话就需要使用线程池来创建多线程进行调用,而SpringBoot提供了很方便的@As...转载 2019-05-28 16:33:02 · 223 阅读 · 0 评论 -
完整教程--idea使用git进行项目管理
完整教程--idea使用git进行项目管理第一部分:安装1. 下载地址: https://git-scm.com/download/win; 如果速度慢, 使用 迅雷下载;2. 点击安装, 然后下一步, 直到下面这个页面:建议: 按照上面所示方式选中复选框 ;3 点击下一步, 直到出现这个页面:建议: 这个页面是选择git使用的命令行, 建议使用第一个git自...转载 2019-05-26 13:50:57 · 337 阅读 · 0 评论 -
【经典】springmvc controller接收复杂参数
Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype (MIME编码)是application/json,因此发送POST请求时需要设置请求报文头信息,否则Spring MVC在解析集合请求参数时不会自动的转换成JSON数据再解析成相应的集合。以下列举接收List<Str...转载 2019-04-19 12:58:21 · 2745 阅读 · 0 评论 -
【经典】layui下拉框分页,大数据解决方案
效果大概这样使用方法比较简单,写个div会自动渲染下载地址链接:https://pan.baidu.com/s/1DKtSUQ19zi97iOk4bCKpxw密码:6cgi链接2: https://pan.baidu.com/s/1rA_esK1s11vGIMz9_mWtsw 提取码: zcws欢迎加入q群 275846351 获取下拉树等其他插件下拉树插件https...转载 2019-04-18 17:53:38 · 2619 阅读 · 0 评论 -
【经典】Spring Boot 简单实现Web请求日志
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是Spring框架中的一个重要内容,它通过对既有程序定义一个切入点,然后在其前后切入不同的执行内容,比如常见的有:打开数据库连接/关闭数据库连接、打开事务/关闭事务、记录日志等。基于AOP不会破坏原来程序逻辑,因此它可以很好的对业务逻辑的各...转载 2019-04-18 16:29:10 · 423 阅读 · 0 评论 -
【经典】Spring aop切面实现异步添加日志—完整版
系统开发中我们常遇到要处理系统日志等信息的,在此我分享一篇 利用spring aop切面来异步添加日志的操作,其中用到了 队列和多线程,前面的博客有写。第一步:创建log实体,根据自己业务而定,package com.izhbg.typz.sso.audit.dto;import java.util.Date;import javax.persistence.Column;i...转载 2019-04-18 16:24:45 · 3675 阅读 · 0 评论 -
【经典】JMeter WEB应用软件压力测试详解
一、简介Apache JMeter是Apache组织开发的基于JAVA的压力测试工具。用于对软件做压力测试,最初被设计是用于Web运用测试,但后来扩展到其他测试领域。 二、安装官网:jmeter.apache.com三、使用1.创建线程组,模拟多个用户。2.配置用户数、每个用户发起多少个请求。3.创建HTTPrequest,模拟HTTP请求。4.配置...原创 2019-02-19 21:04:33 · 283 阅读 · 0 评论 -
Ali Cloud Toolkit 服务器快速部署工具
本文是阿里云 Cloud Toolkit 插件使用中,Command 部分编写的最佳实践,包括:标准的 Java Web Tomcat 应用 标准的 Java Fatjar 应用 标准的 Spring Boot 应用 标准的 Go 应用标准的 Java Web Tomcat 应用如上图所示,假设在 Linux 系统的/root/tomcat/目录下,放置了 Tomcat...转载 2019-07-18 15:39:12 · 675 阅读 · 0 评论 -
【经典】Intellij IDEA 优化笔记
彻底解决 Intellij IDEA 卡顿 优化笔记由于工作中经常出现分支各种切换,使用Eclipse便不再像以前那么舒服了,不停的修改工作空间,每次修改完工作空间又是一堆一堆的个性化设置,来回的切换,真的很累。我们做软件的,怎么能不去尝试新鲜的呢,毕竟,再难走的路,也有人已经走过,我们只需要Google一下而已。本篇适用于Idea 14.x 15.x 16.x这次在使用了2天的IDE...转载 2019-07-27 14:34:23 · 278 阅读 · 0 评论 -
几百个常用正则表达式
(1)"^\d+$"//非负整数(正整数 + 0)(2)"^[0-9]*[1-9][0-9]*$"//正整数(3)"^((-\d+)|(0+))$"//非正整数(负整数 + 0)(4)"^-[0-9]*[1-9][0-9]*$"//负整数(5)"^-?\d+$"//整数(6)"^\d+(\.\d+)?$"//非负浮点数(正浮点数 ...转载 2019-08-01 11:39:41 · 1151 阅读 · 0 评论 -
文档大全分享
最近发现这个API文档大全,包括所有你能想到的开发文档,如JAVA、PHP、安卓、IOS、JQUERY、等等网站:http://tool.oschina.net/apidocs原创 2017-03-22 22:35:56 · 395 阅读 · 0 评论 -
Redis集群搭建Cluster
Redis集群搭建:redis搭建集群有两种方式,这里简单说明下:1、利用sentinel搭建Redis集群。2、利用cluster搭建集群。这里选择cluster没选择seninel,主要因为sentinel做后期扩展不方便,需要了解更多sentinel 和 cluster的区别,可以详细可以参考:浅谈Redis sentinel 和 Redis Cluster。这里主要想说的是,在搭...转载 2019-08-29 17:53:36 · 299 阅读 · 0 评论 -
Gitlab详细使用说明
1、下载安装 下载gitlab和安装就不用详细说了,下载可以到官网下载,官网下载速度慢的,可以到我网盘下载; 网盘地址链接:https://pan.baidu.com/s/1LZ6wq0PZNyB5SzGAzd74ew 提取码:uccq2、使用说明详细说明,参考https://blog.youkuaiyun.com/weixin_41176346...转载 2019-08-27 10:27:22 · 793 阅读 · 0 评论 -
JAVA并发队列
Java并发队列在并发队列上JDK提供了两套实现:一个是以ConcurrentLinkedQueue为代表的高性能队列;一个是以BlockingQueue接口为代表的阻塞队列;无论哪种都继承自Queue。一、ConcurrentLinkedQueue定义ConcurrentLinkedQueue: 是一个适用于高并发场景下的队列,通过无锁的方式,实现了高并发状态下...转载 2019-08-24 14:48:11 · 302 阅读 · 0 评论 -
Spring Boot中使用WebSocket [第三部分]
使用消息队列实现分布式WebSocket在上一篇文章(https://www.zifangsky.cn/1359.html)中我介绍了服务端如何给指定用户的客户端发送消息,并如何处理对方不在线的情况。在这篇文章中我们继续思考另外一个重要的问题,那就是:如果我们的项目是分布式环境,登录的用户被Nginx的反向代理分配到多个不同服务器,那么在其中一个服务器建立了WebSocket连接的用户如何给在...转载 2019-08-09 10:58:43 · 738 阅读 · 0 评论 -
API 接口加密及请求参数加密
在API开发过程中我们不妨会考虑接口安全问题;那么该如何防范呢,以下是我个人的简单总结。这里只讨论数据加密问题,不讨论token认证问题,关于token认证问题,可以参考其他相关博客。以下是本人用过的几种加密方法的精简版,当然,也可在以下基础上做些处理,如: 参数排序、 随机字符串、 时间戳、 签名等等,同时还可以配合https来使用 ,具体情况看自己的业务需求。一、签名加密方式...原创 2019-09-25 15:07:48 · 14637 阅读 · 0 评论 -
Spring Boot中使用WebSocket 【第一部分】
简介所谓WebSocket, 类似于Socket,它的作用是可以让Web应用中的客户端和服务端建立全双工通信。在基于Spring的应用中使用WebSocket一般可以有以下三种方式:使用Java提供的@ServerEndpoint注解实现 使用Spring提供的低层级WebSocket API实现 使用STOMP消息实现下面,我将对这三种实现方式做一个简单介绍,此外有关WebSock...转载 2019-08-09 10:49:13 · 745 阅读 · 0 评论 -
mysql 字段包含字符串的方法
方法一:likeSELECT * FROM 表名 WHERE 字段名 like "%字符%";方法二:find_in_set()利用mysql 字符串函数 find_in_set();SELECT * FROM users WHERE find_in_set('字符', 字段名);这样是可以的,怎么理解呢?mysql有很多字符串函数 find_in_set(str1,s...转载 2019-08-09 09:37:15 · 4500 阅读 · 0 评论 -
layui 树形表格
转载至git文档:https://gitee.com/whvse/treetable-lay转载 2019-08-06 09:58:51 · 479 阅读 · 0 评论 -
formSelects-v4 layui下拉框多选方案
formSelects-v4.js 基于Layui的多选解决方案1、闲谈杂趣v3传送门v3文档其实思考了很久, 还是放弃了v3, 因为开发v3的时候很粗暴, 按照编程角度来看就是硬撸, 也怪自己实力有限, 所以反思了一下, 尝试着继续前行...2、交流学习QQ号: 707200833QQ群: 769620939重要的事情说三遍, 看文档, 看文档, 看文档, 文档...转载 2019-08-06 09:49:27 · 6584 阅读 · 0 评论 -
Springboot @Async 异步调用的使用方法与注意事项
异步调用的概念异步调用相对于同步调用而言,通常的方法都是程序按照顺序来执行的,程序的每一步都需要等到上一步执行完成之后才能继续往下执行;而异步调用则无需等待,它可以在不阻塞主线程的情况下执行高耗时方法如何实现异步调用在不使用SpringBoot的时候我们通常使用多线程的方式来实现异步调用,对于一个web项目的话就需要使用线程池来创建多线程进行调用,而SpringBoot提供了很方便的@As...转载 2019-08-01 11:52:51 · 1417 阅读 · 0 评论