自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lveeJava

每一行代码都有其存在的理由。项目地址:https://github.com/lveeJava

原创 一个定位基础开发的项目

每一个开源的项目就像刚出生的孩子,都值得细心去呵护。

2020-05-03 23:13:18 241 0

原创 消息队列如何避免消息的重复消费

消息的重复消费是消息队列规避不了的问题,文章分享如何避免消息队列的重复消费以及常见的几种保证消息幂等的思路。

2020-05-24 16:53:51 1105 0

原创 linux下安装和使用Docker

文章分享linux下安装和使用docker,docker的常用命令以及GUI工具配置。

2020-05-10 11:49:30 113 0

原创 缓存穿透和缓存雪崩的处理方案

缓存穿透和缓存雪崩,处理系统缓存的时候必须面对的问题,文章从场景出发,提供相应的处理方案,内容基于Redis讲解,但思想其实适合其他缓存应用。

2020-03-01 18:11:19 177 0

转载 基于zookeeper实现分布式锁

Zookeeper实现分布式锁原理和代码,知其然而知其所以然

2020-02-05 12:11:50 169 0

原创 SpringBoot实现动态数据源配置和切换

SpringBoot实现动态数据源,多数据源配置和切换,读写分离

2020-02-04 14:45:23 511 2

原创 HDFS结构体系和核心流程分析

关于hadoop生态体系中HDFS结构和核心流程的介绍。

2020-01-18 20:42:51 211 0

原创 详解zookeeper的leader选举算法

详解zookeeper的leader选举算法分析,数据格式以及半数投票机制,拨开代码看原理。

2019-12-03 14:29:44 191 0

原创 Redis基础篇-基本数据类型和API运用

Redis协议和数据类型的介绍,包含string、list、hash、set、zset,以及几种数据类型分别对应的API应用。

2019-11-21 13:54:43 2313 0

原创 详解JVM垃圾收集器和内存分配策略

JVM的内存结构模型由方法区、堆、虚拟机栈、本地方法区和程序计数器五个部分组成,对象的生存和死亡,垃圾的收集和内存的分配策略,感觉都是一些很有趣的思想和设计。

2019-11-03 21:35:35 183 0

转载 除了负载均衡,你还了解Nginx的那些功能?

除了负载均衡,nginx还可以做很多,静态代理、页面缓存、限流、黑白名单等...

2019-08-29 22:36:31 136 0

原创 JUC中常见的并发工具类

Java常见的并发工具类,避免重复造轮子。

2019-08-27 00:00:48 103 0

原创 详解JVM内存结构模型

众说周知,Java语言号称跨平台,一次编写,到处运行,而这离不开Java虚拟机(JVM)的存在。 Java并非JVM的唯一语言选择,Java虚拟机是定义了自己的JVM规定(字节码文件.class),只要符合JVM规范便可在JVM上运行。如今也出现了其他一些可以在Java虚拟机上运行的语言,例如K...

2019-06-09 11:22:12 158 0

原创 分布式架构基础知识-CAP定理

随着信息的快速发展,分布式系统变得越来越重要,大型的网站系统无不都是分布式的架构,而理解CAP则是理解分布式的基础。

2019-05-28 08:52:14 115 0

原创 使用消息队列实现业务解耦(案例)

在一个系统中,消息中间件在业务解耦上总能起到很重要的作用,一定程度上能够提高系统的相应时间以及吞吐量。消息中间件本质是一个队列,工作方式的本质则是生产者-消费者模式。

2019-05-28 08:50:39 1004 0

原创 如何优雅的实现日志记录

logback是由log4j创始人设计的另一款日志组件。比起log4j,logback表现出了更强的性能。logback的内核被重写了,因此初始化内存加载也更小,在关键执行链路上性能也有了很大的提升。功能上,除了日志信息记录外,可以给日志设置生命周期,实现自动去除旧的日志。

2019-05-28 08:36:04 809 0

原创 如何实现一个权限管理系统?

系统安全一直是在系统开发中不可规避的问题,而权限控制又跟系统安全密不可分,大到用户的访问,小到一个页面的按钮,都有可能涉及到权限的控制。而renren-security便给我们提供了一套权限系统开发的解决方案。

2019-05-28 08:34:29 1196 0

原创 基于Swagger2实现接口文档

Swagger2是一个开源软件框架,由大型工具生态系统支持,可帮助开发人员设计,构建,记录和使用Restful Web服务。

2019-05-28 08:29:31 901 0

原创 关于Redis分布式锁实现的那些事

了解过Redis的人可能都知道Redis是单线程的,也就是对于同一个Redis实例,同一时刻只会处理一个请求。因为对于分布式架构不同机器共享同一资源,我们可以借助Redis实现分布式锁。 使用Redis的SETNX和GETSET的配合使用则可实现分布式锁。 命令简介 setnx(key, v...

2018-12-14 23:27:05 120 3

原创 学习笔记,Spring和SpringMVC常用注解

注解本身没有功能的,就和xml一样。注解和xml都是一种元数据,元数据即解释数据的数据,这就是所谓配置。 本文主要罗列Spring|和SpringMVC相关常用的注解。 Spring部分 1.声明bean的注解 @Component 组件,没有明确的角色 @Service 在业务逻辑层使...

2018-08-13 09:11:05 3716 1

原创 SpringBoot为什么适合做微服务开发?

SpringBoot设计的目的是为了简化Spring应用初期工程的搭建以及开发过程。从一定的角度上说,SpringBoot并没有在Spring的基础上引入新的东西,只是在Spring和一些第三方的框架(比如:Mybatis、Redis、ActiveMQ...)的基础上进行了整合和封装,基于约定大于...

2018-07-08 11:10:03 4769 0

原创 Nginx配置HTTPS实践以及遇到的问题

HTTP以明文的形式在浏览器之间进行数据的交互,没有任何数据加密,很容易被攻击者拦截并读懂,这很不安全。因此现在很多浏览器都要求网站域名配置SSL证书,以HTTPS协议进行传输。HTTPS可以看作是HTTP+SSL协议,SSL依靠证书来验证服务器的身份,同时对浏览器与服务器之间通信进行加密。 S...

2018-06-23 00:14:35 2640 0

原创 基于Nginx实现反向代理和负载均衡

Nginx是常被用于做负载均衡的工具,了解nginx应用之前,有必要先了解一下什么是负载均衡。 负载均衡,从广义上来讲是一种计算机技术,用来在多级计算机、网络连接、CPU、磁盘驱动器或其他资源中分配负载,通过冗余提高可靠性,以达到最大利用、最大吞吐量、最小化响应时间、同时避免过载的目的。从狭义上...

2018-06-18 23:12:48 400 0

转载 网页样式——各种炫酷效果及实现代码

1.evanyou 效果-彩带的实现,效果如下 注:这个主要用的是 Canvas 画布实现的,点击背景绘制新的图形,代码如下: <canvas id="evanyou" width="1920" height="934"&...

2018-04-23 08:45:56 18961 2

原创 什么是可重入锁以及在Java中的应用

可重入锁,顾名思义是指可以重复获取锁。对于一个线程,在外部获取锁后进行内部方法执行时同样可以再次获取到锁,不用阻塞等待锁的释放。可重入锁的意义一定程度上避免了死锁。 在Java中,可以使用关键字Synchronized实现线程之间互斥。在JDK1.5之后,提供了线程并发库java.util.co...

2018-04-23 00:14:55 1948 0

原创 基于163邮件服务器实现邮箱验证

基于163实现邮箱验证,需先开启邮箱的SMTP服务,利用javax中的mail包实现对邮件的操作。 MailUtil.java public class MailUtil { public static final String FROM = "*******@163.co...

2018-03-11 22:22:11 6303 1

原创 闲暇时光,我抓取了一批音乐素材

webCollector 提供精简的的 API,只需少量代码即可实现一个功能强大的爬虫。webCollector 致力于维护一个稳定、可扩的爬虫内核,便于开发者进行灵活的二次开发。内核具有很强的扩展性,用户可以在内核基础上开发自己想要的爬虫。源码中集成了 Jsoup,可进行精准的网页解析。 以上...

2018-01-15 23:36:53 2577 0

原创 基于Nginx实现Tomcat集群搭建

写在前面 在Linux下,使用Nginx的反向代理、负载均衡,可以增强服务器主机CPU的利用率,提交系统的并发量,加大系统的稳定性(一台Tomcat出现问题了,还有其他Tomcat支撑着系统的运行),同时使用Redis可以解决多台Tomcat之间Session和文件共享的问题,从而实现Tomca...

2017-12-04 22:42:40 583 0

原创 使用多线程之间的通信模拟队列

在java多线程中,JDK为我们提供了wait和notify实现对进程的控制,两者要和synchronized关键字一起使用,并且需要先获取对象锁。wait是释放锁,notify是不释放锁。 举个例子: ListDemo代码: public class ListDemo{ ...

2017-10-21 21:01:40 593 0

原创 理解ThreadLocal实现的线程隔离

在java中,变量的共享可以使用Public static 变量的形式进行声明,所有的线程都可以使用被Public static 声明的变量。但如果我们想要每一个线程都有自己的共享变量?(换个角度讲,每一个线程中的变量名相同而引用的值不一样)。JDK提供了ThreadLocal用于解决这样的问题。...

2017-10-21 10:42:34 767 0

原创 Java创建线程的方式有多少种?

在Java线程中,有以下三种方式可以实现线程的创建。 通过继承Thread类,调用Thread的start方法实现线程的创建 实现Runnable接口 实现Callable接口 继承Thread可以实现线程的创建,但当我们需要继承其他父类的时候,这时候便可以通过实现Runnable或者Cal...

2017-10-19 20:14:30 233 0

原创 了解Java线程池中的7个参数

昨天参加了一家企业的面试,被问及Java线程池的7个参数时回答不上来,顿感Java基础学得不扎实。回来后查阅了相关资料才发现先前Java学习的时候忽略了线程池这一块,这也警示着自己在学习上需要脚踏实地,打好基础,切记浮躁。 在Java中,我们一般通过集成Thread类和实现Runnnable接口...

2017-10-17 15:36:28 16283 3

原创 Java实现经典排序算法

选择排序 定义一个的标志位temp,默认为比较的第一个数的下标,分别与后面的数进行比较,若比比较的数字大,则把该数的下标赋给temp,循环一次结束后判断temp的值,若temp值跟第一个数的下标不一样,则把第一个数跟下标为temp的值交换,若temp值一样,则说明后面的数字都比第一个数大,则不交...

2017-09-13 09:53:55 301 0

原创 基于shiro实现的自定义权限校验

序言 Shrio是java的一个权限框架,可以完成认证、授权、加密、会话管理、集成Web、缓存等。Shiro可以应用在JavaSE中,也可以应用在JavaEE中,这里主要学习Shiro与Web整合,实现网站权限管理。 SSM整合Shiro SSM整合Shiro(这里对SSM的整合不再详细说明...

2017-09-03 22:46:02 978 0

原创 如何理解正则表达式?

正则表达式是在Unix上开始流行起来的,主要用于字符串的匹配,查找和替换,比如参数传递的识别。在java中,java.lang.String,java.util.regex分别提供了操作正则表达式的方法。 正则表达式的基础语法以及部分特殊字符: ".":表示匹配一个字母;&...

2017-08-19 12:56:54 516 0

原创 带你揭开session的面纱

有登录过网站经验的人儿都会遇过这样的一种情景:在登录过一个网站,只要保持浏览器处于打开状态,即使把有关该网站的页面都关掉,再访问该网站依旧会处于登录状态。反之,把浏览器关掉,下次再访问该网站就处于离线状态。举个例子,我访问了酷狗和CSDN的网站,一边听歌一边写写东西,出于某种原因我把CSDN的网页...

2017-06-14 18:48:06 20172 1

原创 基于POI实现Excel表的导入导出功能

对于批量数据的操作,在项目中引进Excel的导入和导出功能是个不错的选择。对于Excel表的结构,简单理解可以把它分成三部分(Sheet,Cell,Row),这三部分可以理解为excel表中的页,列,行。因此,我们想要获取到某一个单元的内容,可以通过获取该单元所在的页数、对应所在的行和对应的列数从...

2017-06-12 20:43:56 34947 129

原创 开发利器,Mybatis逆向工程

使用SSM,很大一部分在于接口的实现。Mybatis将开发者的注意力集中到了sql语句上,对于的sql的操作也比较灵活。但与此伴随着的是大量的mapper.xml的编写,如果开发者把大量的时间耗费在了配置文件的编写上,而忽视了sql语句的优化,这显然不是Mybatis官方想看到的。当然,Mybat...

2017-04-08 20:29:35 438 0

原创 SSM框架下用laypage和ajax实现分页和数据交互

layui,一款前端框架,提供了丰富的组件和模板,layui提供的简约后台管理模板,对于后端学习者来说是个不错的福音。这里记录在SSM框架下使用layui的分页组件laypage。(官网开发文档) 环境 Spring+SpringMVC+Mybatis ,jquery-3.1.0.min.js ...

2017-03-04 14:53:26 3924 2

原创 基于SSM实现的Java后台开发项目搭建

对于SSM框架的介绍,项目结构的层级分离网上有很多介绍的资料,其实对于SSM框架的整合也有很多的教程,但我还是决定写下来,作为对自己的检查。在整合工程中,数据库使用的是mysql,数据库连接池使用的是HikariCP(HikariCP官网通过对比声称它是目前速度最快的数据库连接池),同时也配置了r...

2017-02-03 10:19:04 741 0

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