
java
文章平均质量分 86
Gene兵
成长就是动力!!!
展开
-
Java的Groovy执行器内存泄露(MetaSpace)问题分析与解决办法
内存泄漏原创 2023-03-03 09:16:19 · 4552 阅读 · 0 评论 -
Spring Security OAuth2 实战
Spring Security OAuth2 实战原创 2022-11-16 11:16:55 · 1327 阅读 · 0 评论 -
Spring Security 自定义拦截器Filter实现登录认证
Spring Security 自定义拦截器Filter 实现登录认证原创 2022-11-16 10:43:49 · 7225 阅读 · 3 评论 -
学会正则表达式
正则表达式原创 2022-10-17 13:44:27 · 561 阅读 · 0 评论 -
Minio分布式文件系统学习笔记
docker 单机安装服务端docker run -p 9000:9000 -p 50000:50000 --name minio \-d --restart=always \-e "MINIO_ROOT_USER=admin" \-e "MINIO_ROOT_PASSWORD=xie@1234" \-v /opt/software/minio/data:/data \-v /opt/software/config:/root/.minio \minio/minio server -原创 2021-08-22 15:33:59 · 1120 阅读 · 0 评论 -
JAVA操作几个案例JWTToken/JAVA8按key分组合并List<Map>/异步线程
JAVA8 操作List<Map<String,Object>> 按照某个KEY进行分组,然后合并Map数据案例 public static List<Map<String, Object>> mergeDataList(List<Map<String, Object>> mergeList,String mergeKey){ Set<String> set = new HashSet<>原创 2021-08-13 10:21:18 · 568 阅读 · 0 评论 -
Java同步控制类的使用
有时为了控制同步, 我们一般会是用synchronized关键字或者对于变量使用volatile 进行修饰, 来达到并发的一个控制synchronized可以锁类,对象实例,其他对象,wait和notify要放在synchronized里面,join是等待其他线程执行后在一起执行,yeild放弃争抢cpu执行start是开启一个线程,会去调用runable接口的run方法,或者重...原创 2019-12-11 10:01:40 · 454 阅读 · 0 评论 -
Spring自定义实现IOC和依赖注入(注解方式)
大致思路:注解实现方式:就是用 反射机制. 获取指定的包下使用了注解的类,存储在一个map容器, 然后获取map容器下类的属性, 利用反射给使用了注解的属性赋值对象.xml实现方式:使用xml解析配置文件+反射机制此处使用注解方式1. 引入相关jar<dependencies> <!-- 引入Spring-AOP等相关Jar --> <depen...原创 2019-03-25 22:32:49 · 4012 阅读 · 0 评论 -
Java并发编程之内存模型概念知识
Java内存模型共享内存模型指的就是Java内存模型(简称JMM),JMM决定一个线程对共享变量的写入时,能对另一个线程可见。从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory),本地内存中存储了该线程以读/写共享变量的副本。本地内存是JMM的一个抽象概念,并不真实存在。它...原创 2019-03-17 16:23:08 · 186 阅读 · 0 评论 -
Java并发编程之线程基础与生产者与消费者问题案例
什么是线程、进程、多线程?线程: 是Java中执行代码的一条执行路径。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。进程:每个正在系统上运行的程序都是一个进程,是操作系统调度的执行单元。多线程:在一个进程中,有多条不同的执行路径,并行执行,目的为了提高程序的效率在一个进程...原创 2019-03-17 16:04:21 · 202 阅读 · 0 评论 -
Linux下安装Memcached和Java应用
摘要出自[纯洁的微笑]Memcache 介绍Memcache 是一个自由和开放源代码、高性能、分配的内存对象缓存系统。简单来说,Memcache 是一个高性能的分布式内存对象的 key-value 缓存系统,用于加速动态 Web 应用程序,减轻数据库负载,现在也有很多人将它作为内存式数据库在使用。它可以应对任意多个连接,使用非阻塞的网络 IO,由于它的工作机制是在内存中开辟一块空间,然后建立...原创 2019-03-01 11:27:39 · 346 阅读 · 0 评论 -
java打包私服生成包并发布
1. 工程版本号的修改包版本每发布一次一般更新一个版本号生产环境一般用release开发环境一般用snapshot快照版本2. 修改用于生产或开发的配置文件一般开发用的dev.properties一般生产用的prov.properties3. 发布包版本到私服地址执行命令clean deploy也可以: clean -Pdev deploy 指定-P dev这个...原创 2019-01-28 10:15:18 · 988 阅读 · 0 评论 -
java多线程的实现方式(六种)
一 继承Thread线程/** * 方式一: 继承Thread 的方式实现线程 * @author xzb_l * */public class ThreadDemo extends Thread{ private int pauseTime; // 间隔时间 private String name; public ThreadDemo(int pauseTime, Stri...原创 2018-12-06 15:56:08 · 208 阅读 · 0 评论 -
log4j.properties配置详解与实例(转)
源地址 [http://blog.sina.com.cn/s/blog_5ed94d710101go3u.html ][https://blog.youkuaiyun.com/dr_guo/article/details/50718063 ]最近使用log4j写log时候发现网上的写的都是千篇一律,写的好的嘛不全,写的全一点的嘛没有一点格式,看着累。这里把网上收集到的整理了一下,并且全部都在机器上测试成功...转载 2018-11-16 15:03:18 · 150 阅读 · 0 评论 -
微信支付接口调用之统一下单(一)
小白第一次使用微信支付,刚开始也是比较苦恼,总的来说呢,就是看懂流程,会调用API接口,所以我认为,小白还是看看官方微信支付文档还是有必要的[ http://kf.qq.com/faq/161222NneAJf161222U7fARv.html ]微信支付有很多中方式,学习从一点一滴开始,我相信积少成多,总能达到我们想要的效果!对于不同的支付方式,其实他们所使用的也就是那一套API,...原创 2018-11-15 20:45:18 · 7428 阅读 · 6 评论 -
linkedList模拟实现map 原理: 数组+链表的方式实现Map功能(不是hashMap)
大致思路实体基于Entry<K,V> 存储此处是使用LinkedList自己封装的链表 ,这个实现的效率低基于1.7版本的HashMap原理: 单项链表+数组 Node<K,V>[] 实现基于1.8把那本的HashMap原理: 数组 + 红黑树 实现核心知识(1).两个对象进行比较时,如果hashCode()值相同,那么 他们的值不一定相同(2).两个对...原创 2019-03-29 14:11:01 · 498 阅读 · 0 评论 -
自定义实现简易版SpringMVC(基于Servlet)
了解SpringMVC流程了解ServletServlet 生命周期:Servlet 加载—>实例化—>服务—>销毁。init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Ser...原创 2019-03-26 12:45:50 · 969 阅读 · 0 评论 -
自定义实现jdbc数据库连接池
连接池作用达到资源的复用提高响应速度(不必要的连接与关闭)资源的分配策略,可以统一管理连接池的大致实现思路核心参数:空闲连接数: 没有使用的连接数活动连接数: 正在使用的连接数最大连接数: 最多允许存在的连接数初始化连接池(用容器封装:比如Vecotr sql包下)实现获取Connection的方法:(1) 判断当前连接数(countPool) 是否小于 最大连接数...原创 2019-03-26 23:41:49 · 871 阅读 · 0 评论 -
Spring的Controller方法声明为private获取注入属性为null到的问题
Controller方法声明为private时出现获取到的注入service属性为null问题,而public方法却能正常获取注入的service。百度了很多,也没找到具体的原因分析,所以自己研究了下容器扫描bean生成代理类的时候,public和protected方法可以被正常代理,而private方法的不会被代理,属性的注入也是在代理类中完成,所以public/protected方法获取的...原创 2018-09-11 19:01:02 · 1064 阅读 · 0 评论 -
Java 通过FTP与SFTP 方式, 实现 文件的上传下载 删除操作
1. FTPFTP通讯协议采用客户机 / 服务器(Client / Server )架构。用户可以通过各种不同的FTP客户端程序,借助FTP协议,来连接FTP服务器,以上传或者下载文件。默认端口: 21在此协议中SSH2服务器起了一个桥梁作用,把数据在客户端和ftp之间转发。ftp协议本身包括两个通道,一个是控制通道,另一个是数据通道。2. SFTPSftp是Secure Fi...原创 2019-09-25 10:48:24 · 2069 阅读 · 0 评论 -
实现 Java 本地缓存(转)
转载的内容缓存,我相信大家对它一定不陌生,在项目中,缓存肯定是必不可少的。市面上有非常多的缓存工具,比如 Redis、Guava Cache 或者 EHcache。对于这些工具,我想大家肯定都非常熟悉,所以今天我们不聊它们,我们来聊一聊如何实现本地缓存。参考上面几种工具,要实现一个较好的本地缓存,平头哥认为要从以下三个方面开始。1、存储集合的选择实现本地缓存,存储容器肯定是 key/v...转载 2019-09-18 09:25:36 · 253 阅读 · 0 评论 -
BIO与NIO简单学习
1. 概念2. BIO3. NIO4. 使用:如果拿NIO比作成一个餐厅的话,ServerSocketChannel就相当于整个餐厅,SocketChannel相当于客人,Selector相当于服务员,SelectionKey相当于服务种类(迎接客人,点餐等)这是简单学习!!!...原创 2019-06-14 10:36:02 · 184 阅读 · 0 评论 -
本地缓存Ehcache的使用(记录)
1. 什么是EhcacheEhcache是纯java的开源缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。它主要面向通用缓存、Java EE和轻量级容器,具有内存和磁盘存储、缓存加载器、缓存扩展、缓存异常处理程序。Ehcache最初由Greg Luck于2003年开始开发。2009年,该项目被Terracotta购买。软件仍然开源,但一些新的主要功能(...原创 2019-05-02 17:11:39 · 3791 阅读 · 0 评论 -
API接口幂等设计(Token方式防止表单重复提交或网络延迟)
场景要求:页面的数据只能被点击提交一次发生原因:由于重复点击或者网络重发,或者 nginx 重发等情况会导致数据被重复提交解决办法:集群环境:采用 token 加 redis(redis 单线程的,处理需要排队)单 JVM 环境:采用 token 加 redis 或 token 加 jvm 内存处理流程:数据提交前要向服务的申请 token,token 放到 redis 或 jvm 内...原创 2019-04-27 01:27:01 · 5792 阅读 · 2 评论 -
通过源码分析自定义实现LinkedList集合
数据结构数组; 链表; 红黑树; 二叉树数组和链表结构对比实现细节以及思路实现本质: 双向链表的数据结构链表: 节点: 存储上一个节点地址信息, 元数据, 下一个节点地址信息通过地址指针 实现数据节点的双向指向核心参数理解first节点的使用? 是为了查询的时候知道从哪个地址开始遍历last节点的使用? 是为了添加元素的时候,从哪个地址开始.实现细节添加的时候: 注意是...原创 2019-03-28 00:09:23 · 194 阅读 · 0 评论 -
自定义实现ArrayList
大致思路通过看源码ArrayList 分析:核心(1)是由线性的连续分配的内存空间, 有Object[]数组实现(2当数组满时, 需要使用扩容机制: System.arraycopy(原数组,原数组的起始复制位置,目标数组,目标数组的移动位置, 复制的容量 大小) Arrays.copyOf(数组,扩容的大小) --底层使用System.arraycopy(..)方法...原创 2019-03-27 17:00:41 · 474 阅读 · 0 评论 -
Linux之安装Docker
docker中文社区[http://www.docker.org.cn/book/docker/what-is-docker-16.html ]1.在vm中装好好centos后,可能需要更新内核运行docker需要内核版本为3.8或者更高的版本,内核必须支持一种合适的存储驱动(Drivice Mapper、AUFS、vfs、btrfs、ZFS),默认存储驱动为Drivice Mapper或AU...原创 2018-10-10 11:03:18 · 214 阅读 · 0 评论 -
Linux安装mongoDB
下载解压cd /usr/localmkdir monogodbwget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgztar -zxvf mongodb-linux-x86_64-3.0.6.tgzmv mongodb-linux-x86_64-3.0.6 mongodb306配置系统文件profilev...原创 2018-09-29 17:35:15 · 193 阅读 · 0 评论 -
Linux安装RabbitMQ
RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用。消息中间件在互联网公司的使用中越来越多,刚才还看到新闻阿里将RocketMQ捐献给了apache,当然了今天的主角还是讲RabbitMQ。消息中间件最主要的作用是解耦,中间件最标准的用法是生产者生产消息传送到队列,消费者从队列中拿取消息并处理,生产者不用关心是谁来消费,消费者不用关心谁在生...原创 2018-09-29 16:13:28 · 4727 阅读 · 2 评论 -
技术选择器或方法
1. CSS3选择器:nth-child和:nth-of-type之间的差异对于p:nth-child(2)表示这个元素要是p标签,且是第二个子元素,是两个必须满足的条件。于是,就是第一个p标签颜色为红色(正好符合:p标签,第二个子元素)。而p:nth-of-type(2)表示父标签下的第二个p元素,显然,无论在div标签后面再插入个span标签,还是h1标签,都是第二个p标签中的文字变红...原创 2018-09-11 19:11:36 · 161 阅读 · 0 评论 -
select2在弹窗时错位
1.select2在弹窗时错位解决: 在弹窗之前,绑定selec2的话,获取的位置会错位, 需要在弹窗之后,进行绑定select2 eg. function showFeeCalculation(obj){ //展示弹框的时候,复选框默认选中第一个 $showdialogs($(obj)); $("#acceptanceFeeClassification")....原创 2018-09-11 19:06:23 · 1718 阅读 · 2 评论 -
替换标签内容,并高亮显示
难点,正则表达式的书写/** * 搜索功能 查阅文书---begin * @param e:元素时间 * @param obj:当前搜索的输入框 * @param elementHtml:显示内容元素 */function doc_search_kwd(e,obj,elementHtml) { if (e && e.keyCode == 13) { // e...原创 2018-09-11 19:05:34 · 407 阅读 · 0 评论 -
子div在父div中居中显示问题
子div在父div中居中显示几种css方法父的div中有一个子的div,让子div在父div的居中显示。上代码1:方法一这方法最好使,我常用的方法.parent { width:800px; height:500px; border:2px solid #000; position:relative;...原创 2018-09-11 19:04:28 · 5922 阅读 · 0 评论 -
placeholder改变字体颜色
通过css改变字体颜色input.class属性input.userProgramColor::-webkit-input-placeholder{ color: red; } input.userProgramColor:-moz-placeholder{ color: red; } input.userProgramColor::-moz-placeholder{ col...原创 2018-09-11 19:03:31 · 2938 阅读 · 0 评论 -
IE 下使用window.open() 打开同一页面,第二次的时候不自动跳转解决方法
解决方法定义一个全局变量记录window.open()打开的窗体如过该变量被记录过,则先关闭该窗口,然后再次打开新窗口即可eg:/*记录当前打开的窗体/var showDocContentWindow;function showCivilDocContent(docId) { if(showDocContentWindow){ // 已经打开过 show...原创 2018-09-11 19:02:03 · 3554 阅读 · 0 评论 -
运用Maven 搭建SSM框架,并用shiro控制登录授权
一.准备工作jdk1.8环境,maven3.x安装(指定本地仓库地址),Tomcat7以上安装本次使用Eclipse搭建项目Eclipse 的编译环境设置一下,utf-8二.新建Maven工程选择建立Maven Project 选择File -&amp;amp;amp;amp;amp;amp;gt; New -&amp;amp;amp;amp;amp;amp;gt; Other,在New窗口中选择 Maven -&amp;amp;amp;原创 2018-08-23 16:24:14 · 1932 阅读 · 0 评论 -
Git配置使用SSH方式
因为使用HTTP方式每次都需要填写用户名密码,所以此次介绍使用SSH方式配置Eclipse1 注册账号 账号注册是在http://10.1.234.55/users/sign_in, 2 eclipse的配置已经密钥的生成 2.1 eclipse上面用户名邮箱的配置 window-&amp;amp;gt;preferences-&amp;amp;gt;Team-&amp;amp;gt;Git-&amp;a原创 2018-08-24 16:42:11 · 1554 阅读 · 0 评论 -
基于SSM+Nginx+FastDFS
转载地址:[https://blog.youkuaiyun.com/sosmmh/article/details/79259742] &nbsp;这一篇介绍本项目使用的图片存储时用到的技术——FastDFS。项目使用时参考的是传智播客里的Fa...转载 2018-08-27 10:52:57 · 680 阅读 · 0 评论 -
Eclipse添加引用dubbo.xsd约束文件
解决思路:下载dubbo.xsd文件,或者在源码包中查找在Eclipse –&amp;gt;windows–&amp;gt;preferences–&amp;gt;XML catalog操作: 经过上面的操作之后,即可解决Eclipse 报错问题!...原创 2018-08-29 16:52:38 · 864 阅读 · 0 评论 -
搭建FastDFS+Nginx+fastdfs-nginx-module安装配置
经过几天的学习,通过前辈们的分享心得,自己搭建了一个最小的简单FastDfs,下面把我学习的心得记录一下,温故而知新!!!一.FastDFS简介1.1 什么是FastDFS?FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务...原创 2018-08-31 18:04:37 · 16164 阅读 · 2 评论