自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Layduo

一个程序员的悲惨人生......

  • 博客(52)
  • 收藏
  • 关注

原创 工厂模式

工厂顾名思义就是创建产品,根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式。该模式用于封装和管理对象的创建,是一种创建型模式。本文从一个具体的例子逐步深入分析,来体会三种工厂模式的应用场景和利弊。场景:假设我们的业务代码当中,有一个被广泛引用的“手机类”,这个类实例需要在许多地方被创建和初始化,而初始化的代码也比较复杂,那么我们就可以通过工厂模式来创建这个手机对象。1、简单工厂模式该模式对对象创建管理方式最为简单,因为其仅仅简单的

2020-09-16 12:03:17 236

原创 单例模式

前言:可先了解《单例模式的几种创建方式》一、什么是单例模式单例模式是一种常用的设计模式,其定义是单例对象的类只能允许一个实例存在,并且提供一个全局访问点。单例模式具备典型的3个特点:1、只有一个实例。2、自我实例化。3、提供全局访问点。因此当系统中只需要一个实例对象或者系统中只允许一个公共访问点,除了这个公共访问点外,不能通过其他访问点访问该实例时,可以使用单例模式。单例模式的主要优点就是节约系统资源、提高了系统效率,同时也能够严格控制客户对它的访问。也许就是因为系统中只有一个实例,这样..

2020-09-14 18:17:37 197

原创 什么是设计模式?

前言:开始学习设计模式前,可先了解《JAVA设计模式总结之六大设计原则》一、什么是设计模式设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了

2020-09-14 15:18:19 2877

原创 shiro源码分析04 -- SubjectDAO

前面的章节说完了Subject的创建过程,创建完Subject需要将其保存起来,而保存的过程则由SubjectDAO完成。既然每一次访问都会创建一个新的Subject,那么为什么还需要SubjectDAO来存储呢?其实SubjectDAO做的事情很少,没有存储Subject,只是将当前Subject的authenticated(是否校验成功)和principal(身份)放入到session中。Subject的生命周期:每一次访问都会创建一个新的subject对象。 将创建的subject对象绑定到

2020-06-28 18:17:10 632

原创 shiro源码分析03 -- SubjectFactory

通过上一节的shiro源码分析02 -- SubjectContext我们可以知道,SubjectContext最终将传入SubjectFactory用于构建一个Subject。其实SubjectFactory很简单,就是将通过SubjectContext传递过来的值产生一个Subject,默认使用的是DefaultSubjectFactory,它将返回一个DelegatingSubject实例。...

2020-06-11 18:39:07 223

原创 shiro源码分析02 -- SubjectContext

如何构建Subejct上一篇我们讲了Subject这个类,知道了在每一次访问时都会创建一个新的subject,而这个subject会绑定到ThreadContext上,然后通过SecurityUtils在程序的任何地方调用getSubject时都会返回同一个subject。以用户登录时的例子分析源码:通过查看SecurityUtils源码可以看到,它是通过从ThreadContext上获取Subject,如果存在直接返回,否则通过Subject.Builder().buildSubject()去

2020-06-11 18:29:02 534

原创 shiro源码分析01 -- Subject

什么是Subject对象在shiro中我们通常会将Subject对象理解为一个用户,同样的它也有可能是一个三方程序,它是一个抽象的概念,可以理解为任何与系统交互的“东西”都是Subject。Subject对象内置属性Subject其实是一个声明接口,使用的默认类是WebDelegatingSubject,是DelegatingSubject的子类。其中这个WebDelegatingSubject里面含有以下的参数:principals:主键(或者标记的集合) authenticate

2020-06-11 16:19:17 324 1

原创 Windows -- Redis集群搭建(redis-cluster)

前述:redis主要有集群、主从复制、哨兵、分片几种策略,而本文主要讲解如何搭建分布式redis集群。一 、所需软件:Redis、Ruby语言运行环境、Redis的Ruby驱动redis-xxxx.gem、创建Redis集群的工具redis-trib.rb二、redis安装配置1、下载安装配置可看上一篇博文:Windows -- Redis安装与配置(单机版)要让集群正常运作至少需要3个主节点,建议配置3个主节点,其余3个作为各个主节点的从节点(也是官网推荐的模式)。所以需要6台虚拟机。

2020-06-10 17:46:10 359

原创 Windows -- Redis安装与配置(单机版)

1、下载地址:https://github.com/MicrosoftArchive/redis/releases下载后解压,在文件根目录下创建两个文件夹dbcache、logs2、修改配置文件redis.windows.conf配置redis地址:bind 127.0.0.1配置redis端口(默认6379):port 6379配置redis密码(默认为空):requirepass 123456配置redis是否为后台运行(NOT SUPPORTED...

2020-06-10 15:19:00 724

原创 Java使用javacv获取视频时长以及截取帧图片

由于上述这段 maven 依赖包含了完整的 javacv 功能 (非常多,依赖Jar就占大概有500MB),由于这里只使用到了其中 ffmpeg 这块的特性,因此也可以像下面这样排除掉无关的部分

2020-04-26 11:03:18 3191 2

原创 Java线程池 -- ThreadPoolExecutor

摘要描述:【强制】线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样 的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。 说明:Executors 返回的线程池对象的弊端如下: 1)FixedThreadPool 和 SingleThreadPool: 允许的请求队列长度为 Integer.MAX_VALUE,可能会堆积大量...

2019-11-19 16:33:40 276

原创 SpringBoot -- 整合Shiro实现用户登录认证

前言:前段时间在搭建公司框架安全验证的时候,就想到之前web最火的shiro框架,所以就在空闲时间学习并总结一些搭建流程和解析,这里给大家出个简单的教程说明吧。shiro的基本介绍这里就不再说了,可以自行百度相关的shiro教程,对于第一次接触shiro的小伙伴,博主推荐你可以先阅读该篇文章Shiro,对shiro进行初步的了解,以及它的核心原理。一、什么是shiro?shiro是ap...

2019-11-12 16:26:42 1043

原创 SpringBoot -- 自定义注解 & AOP打印日志

前言:在开发过程中,开发人员难免会遇到打印参数输出的问题,这时候你还在一个一个打印吗?何不尝试封装一下,利用AOP通过管理日志打印。今天我们就通过自定义注解的方式,在SpringBoot中来实现AOP切面统一打印出入参数。有需要的小伙伴可以收藏一波~一、先看看AOP切面日志输出效果:从上图可以看到,对于每个请求,实现了对出入参的打印:URL: 请求接口地址; Descripti...

2019-11-07 17:48:47 288

原创 SpringBoot -- 整合Druid实现多数据源动态切换

前言:博文详述知识来源若依框架,可供大家一起探讨学习和分享!一、针对本文讲解需求,我们需要先创建两个数据库进行学习,在这里我使用的是master_test和slave_test两个库,两个库中创建同一张表t_user,字段结构如下:master_test库中t_user表:slave_test库中t_user表:二、项目创建,在这里博主使用eclipse创建一个...

2019-11-05 17:54:11 2242 1

原创 Maven + Zookeeper + Dubbo 搭建简单分布式项目

前言:对于第一次接触分布式dubbo框架的小伙伴,可先自行了解一下dubbo的相关原理和运行机制。博主推荐一篇不错的博文,小伙伴们可以阅览后,再学习本文dubbo分布式项目搭建。dubbo基本原理:https://blog.csdn.net/en_joker/article/details/89946034本文借鉴以下博客:Dubbo入门---搭建一个最简单的Demo框架1. Zook...

2019-10-31 18:33:36 383

原创 IDEA 编译错误:java: try-with-resources is not supported in -source 1.5

错误描述:Error:(59, 20) java: -source 1.5 中不支持 try-with-resources(请使用 -source 7 或更高版本以启用 try-with-resources)这里说明编译版本太低,需要更新到jdk1.7或者更高。解决方法:一、修改pom.xml<plugin> <groupId>org.ap...

2019-10-29 10:31:02 4031 1

原创 Mybatis关联查询 -- 一对多、多对一查询详解

总述:基于平时在开发过程中dao、bean和XML文件都是自动生成的,但很多仅限于单表,今天记录一下mybatis表与表之间的关联查询,本文主要讲述一对多和多对一的情况。为了讲解的需要,笔者创建了两个表MESSAGE_MANAGE和MESSAGE_RECEIVER,并创建JavaBean实体,如下所示:MessageManage1.classpublic class MessageM...

2019-10-23 18:45:47 552

原创 Java定时器

1.普通thread ,这是最常见的,创建一个thread,然后让它在while循环里一直运行着,通过sleep方法来达到定时任务的效果。这样可以快速简单的实现,代码如下:public class TaskTest { public static void main(String[] args) { // run in a second ...

2019-10-21 15:57:50 153

原创 Apache POI 实现简单导入Excel工具类

package com.sinosoft.em.rushRepairTask;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import...

2019-07-15 09:59:32 439

翻译 单例模式

简介单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。基本的实现思路单例模式要求类能够有...

2019-04-09 10:52:37 141

原创 CentOS7 -- Tomcat + Nginx配置反向代理及负载均衡

【一、Nginx简述】Nginx 是由俄罗斯软件工程师 Igor Sysoev 开发的一个高性能的 HTTP 和反向代理服务器,具备 IMAP/POP3 和 SMTP 服务器功能。作为 Web 服务器:相比较与 Apache, Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤为受到虚拟主机提供商的欢迎,能够支持高达 50000 个并发的连接数的响应。作...

2019-04-03 00:20:55 490

原创 CentOS7 -- Nginx安装部署

【一、为什么要使用nginx】  要回答为什么要使用nginx,那就先说说nginx能做些什么。  首先,nginx能做反向代理,那么什么是反向代理呢,举个栗子,例如我们想访问一个外国网站,可是受限,这是我们可以通过翻墙去实现我们的目的。再如我想在本地使用 www.mynginx.com 的域名去访问 www.taobao.com。那么这个时候我们就可以通过nginx去实现。...

2019-04-02 22:45:43 297

原创 Windows -- nginx启动失败

Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。一...

2019-04-01 14:52:24 4740

原创 CentOS7 -- elasticsearch安装与配置

1.进入Elasticsearch官网寻找以往版本地址,下载相关版本的rpm2.在根目录下载rmp包wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.rpm3.直接解压安装rpm -ivh elasticsearch-6.2.2.rpmsystemctl dae...

2019-03-29 00:44:23 367

原创 在Spring Boot中格式化JSON日期

1.概述在本博文中,我们将展示如何在Spring Boot应用程序中格式化JSON日期字段。我们将探讨使用Jackson格式化日期的各种方法,Jackson被Spring Boot用作默认的JSON处理器。2.在日期字段上使用@JsonFormat2.1设置格式我们可以使用@JsonFormat注解来格式化特定字段:package com.example.domain;i...

2019-03-25 14:49:53 1076

原创 CentOS7 -- 防火墙开启与关闭

1、firewalld的基本使用启动: systemctl start firewalld关闭: systemctl stop firewalld查看状态: systemctl status firewalld开机禁用 : systemctl disable firewalld开机启用 :systemctl enable firewalld2.systemct...

2019-03-15 16:27:06 170

原创 mui实现压缩手机本地图片并上传

&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;&lt;/title&gt; &lt;link href="css/mui.min.css" rel=&quo

2018-12-17 17:40:44 1409

原创 js实现单图片上传

&lt;!DOCTYPE html&gt;&lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;&lt;/title&gt; &lt;script src="js/jquery-1.8.3.min.js"&gt;&lt;/script&gt;

2018-12-17 17:25:39 1008

原创 H5调用高德地图自动定位以及搜索选址

注意:其中key可以通过登录高德开放平台应用管理申请,同时key的服务平台应为web端。&lt;!doctype html&gt;&lt;html&gt;&lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&

2018-12-03 16:35:46 6327 2

原创 高德地图获取当前定位信息

&lt;!doctype html&gt;&lt;html&gt;&lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt; &lt;meta name="viewport&quo

2018-12-02 23:54:08 3363

翻译 H5高德地图获取定位

&lt;!doctype html&gt;&lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt; &lt;meta name=&

2018-11-27 18:27:32 1112

原创 el表达式与jstl标签不能用解决方法

 开发过程中有时会遇到这样的问题,如下图所示,el表达式与jstl标签不能用。 首先我们要确保所需要的maven依赖都要添加&lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;junit&lt;/groupId&gt; &lt;artifactId&gt;junit&lt;/artifact...

2018-10-23 14:16:55 1284

原创 对list分页工具类

package util;import java.util.List;public class SubListUtil&lt;E&gt; { private int page; // 当前页 private int pages; // 总页数 private int total; // 总条数 private int pageSize;// 每页显示数 private List...

2018-09-30 14:18:33 1308

原创 Berkeley DB

 添加相关依赖 &lt;!-- Berkeley DB Java Edition 如果是5以上的版本,则需要添加oracle的仓库 --&gt; &lt;repositories&gt; &lt;repository&gt; &lt;id&gt;oracleReleases&lt;/id&gt; &lt;name&gt;Oracle Re...

2018-09-30 14:01:08 154

翻译 Json对象与Json字符串的转化、JSON字符串与Java对象的转换

一.Json对象与Json字符串的转化1.jQuery插件支持的转换方式:  $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 2.浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:  JSON.stringify(obj)将JSO...

2018-09-26 09:23:13 200

原创 封装Json数据返回

package util;public class ResponseUtil { private Integer code;// 状态码 private Boolean status;// 状态 private String msg;// 消息 private Object data;// 数据对象 /** * 无参构造器 */ public ResponseUtil(...

2018-09-25 16:11:58 1379 2

原创 根据经纬度查询地理位置

public static String getAdd(String log, String lat ){ //lat 小 log 大 //参数解释: 纬度,经度 type 001 (100代表道路,010代表POI,001代表门址,111可以同时显示前三项) String urlString = "http://gc.ditu.aliyun.com/r...

2018-09-10 11:21:13 10602 2

原创 根据经纬度计算两点间的距离

/** * 计算地球上任意两点(经纬度)距离 * * @param long1 * 第一点经度 * @param lat1 * 第一点纬度 * @param long2 * 第二点经度 * @param lat2 * 第二点纬度 * @return 返回距离 单位...

2018-09-10 11:19:23 1450

原创 获取访问IP工具类

package util;import java.net.InetAddress;import java.net.UnknownHostException;import javax.servlet.http.HttpServletRequest;public class CusAccessObjectUtil { /** * 获取用户真实IP地址,不使用...

2018-07-16 15:29:08 4721

原创 正则匹配工具类

package util;import java.util.regex.Matcher;import java.util.regex.Pattern;import org.apache.commons.lang.StringUtils;/** * 验证工具类 * * @author admin * */public class CheckUtils { /** ...

2018-07-16 15:26:15 415

空空如也

空空如也

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

TA关注的人

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