- 博客(39)
- 收藏
- 关注
原创 AQS详解,通过ReentrantLock窥探AQS。
AQS详解,通过ReentrantLock窥探AQSAQS简介1. AQS成员介绍1.1 AbstractOwnableSynchronizer1.2 内部类AbstractQueuedSynchronizer.Node1.3 AQS的成员介绍2. 通过ReetrantLock来分析AQS2.1 ReentrantLock lock = new ReentrantLock();2.2 lock.l...
2019-11-19 16:09:54
532
原创 Apache Benchmark,简称ab的使用
使用前,配置bin目录环境变量,方便使用。ab命令格式:-N|–count 总请求数,缺省 : 5w-C|–clients 并发数, 缺省 : 100-R|–rounds 测试次数, 缺省 : 10 次-S|-sleeptime 间隔时间, 缺省 : 10 秒-I|–min 最小并发数, 缺省: 0-X|–max 最大并发数,缺省: 0-J|–step 次递增并发数-R|–run...
2019-10-24 16:32:59
406
原创 Shell中变量的单百分号%和双百分号%%的作用
Shell中单百分号%和双百分号%%的作用使用百分号将变量的内容从变量的后面删除,并从变量的尾部删除。不同的是,一个%号表示从尾部最近的匹配删除,两个%%从尾部最远的匹配删除。同时支持使用通配符。比如:先声明一个变量:filename=aaabbccddaabbccdd使用一个百分号截取尾部bb*echo "${filename%bb*}"结果:aaabbccddaa可以...
2019-10-12 16:55:06
12546
原创 Ubuntu16.04 安装Docker
如果已经存在旧的docker,可以先卸载旧版本:sudo apt-get remove docker docker-engine docker-ce docker.io更新apt包索引:sudo apt-get update -yqq安装以下包以使apt可以通过HTTPS使用存储库(repository):sudo apt-get install -y apt-transport-h...
2019-10-11 14:42:27
255
转载 docker 在centos7 中docker info报错docker bridge-nf-call-iptables is disabled解决办法
在centos7中安装好docker以后,启动成功,运行命令docker info报错:WARN:docker bridge-nf-call-iptables is disabled,WARN:docker bridge-nf-call-ip6tables is disabled网上有人说:编辑vim /etc/rc.d/rc.local添加下面两条命令echo 1 > /proc...
2019-09-28 09:49:23
740
转载 Centos7 yum 出现could not retrieve mirrorlist 解决
在尝试过很多方法不管用之后,下面是终极解决方案,需要root用户或者sudo执行1. $ sudo vim /etc/sysconfig/network-scripts/ifcfg-ens332. 将ONBOOT改为yes,wq!保存退出3. 重新启动网络$ service network restart或者是因为没有配置DNS服务器。解决方法:用VI编辑resolv.c...
2019-09-28 09:23:44
956
转载 Centos6.5安装docker出现No package docker-io available.
Centos6.5安装docker出现No package docker-io available.使用yum安装docker,执行yum -y install docker-io,提示信息如下:[root@host-10-200-143-61 ~]# yum -y install docker-ioLoaded plugins: fastestmirrorSetting up Insta...
2019-09-27 21:09:43
2448
7
转载 oracle 查看数据库表的结构和表的索引
oracle 查看数据库表的结构和表的索引查看oracle数据库的单个表结构select dbms_metadata.get_ddl(‘TABLE’,‘TABLE_NAME’) from dual;括号里面有两个参数,第一个参数是我们要查询的对象,这里查的是表结构,所以是’TABLE’.第二个参数是我们要查的表的表名,这里的表名必须大写。注意:执行完上面这条语句你可能只是看到整个建表语句...
2019-09-19 11:28:28
3385
原创 Springboot整合SpringSecurity 07-方法访问权限控制
Springboot整合SpringSecurity 07-方法访问权限控制前面我们已经学会了SpringSecurity的权限访问控制。但是之前的配置都是直接对请求路径的权限控制,SpringSecurity还提供了访问级别的权限控制。必须具有相应的权限才能访问该方法。本系列的按顺序写的,如果对于某些代码不清楚,请看下前面的几篇文章。Springboot整合SpringSecurity...
2019-09-13 23:06:50
1222
原创 Springboot整合SpringSecurity 06-登陆扩展之自定义登陆验证逻辑
Springboot整合SpringSecurity 06-登陆扩展之自定义登陆验证逻辑前面我们使用JDBC来验证登陆其实平常开发已经够用了。但是有时候会有一些特别的需求: 比如需要远程登陆,并不是我们本地的数据库进行账号密码验证,登陆接口在另一台远程服务器上面。这个时候JDBC的方式已经不能满足我们了。本章以远程登陆为例,讲解SpringSecurity如何实现自定义远程登陆验证账号密码...
2019-09-13 21:03:00
1895
原创 Springboot整合SpringSecurity 05-使用JDBC实现认证和授权
Springboot整合SpringSecurity 05-使用JDBC实现认证和授权前面的章节中,我们都是使用的InMemoryUserDetailsManager内存保存的用户信息,但是通常我们开发中常用的一般都是数据库来保存数据。所以本章我们使用JDBC来实现认证和授权。1.添加jdbc相关依赖和配置。1.1 在pom.xml中添加数据库支持。<dependencies>...
2019-09-13 16:51:28
5474
6
原创 Springboot整合SpringSecurity 04-启用登出logout功能
Springboot整合SpringSecurity 04-启用登出logout功能前面Springboot整合SpringSecurity 02-使用自定义登陆页面我们讲过了SpringSecurity的登陆功能。本章我们继续讲解如何实现登出功能。1.提供一个登出界面我们在templates目录下面新建一个logout.html<!DOCTYPE HTML><htm...
2019-09-12 23:25:59
14623
原创 Springboot整合SpringSecurity 03-访问权限控制
Springboot整合SpringSecurity 03-访问权限控制在Springboot整合SpringSecurity 02-使用自定义登陆页面中我们已经学会了自定义自己的登陆页面了。下面让我们继续学习SpringSecurity的权限控制。1.配置我们的静态资源,更新登陆页面通常我们的网页都是需要引用静态css,images等资源的。所以这里我们模拟平常的开发场景。在stati...
2019-09-12 21:16:24
1554
2
原创 Springboot整合SpringSecurity 02-使用自定义登陆页面
Springboot整合SpringSecurity 02-使用自定义登陆和登出页面在Springboot整合SpringSecurity 01-使用入门中我们已经学会了最基本的SpringSecurity的使用。但是使用的是SpringSecurity自带的登陆页面,通常开发中我们肯定是要使用自己的登陆页面的。所以本章我们继续学习使用自定义的登陆页面。代码和配置接着上一章。1.创建一个...
2019-09-12 20:48:57
2583
原创 Springboot整合SpringSecurity 01-使用入门
SpringSecurity 01-使用入门Spring Security是Spring旗下的一个安全管理框架,使用起来非常方便。本文参考自Spring Security官方文档:https://docs.spring.io/spring-security/site/docs/5.1.6.RELEASE/reference/htmlsingle/#preface为了简化配置,本文使用Spr...
2019-09-12 17:24:13
1325
1
转载 VMware 虚拟机开机黑屏
VMware 虚拟机开机黑屏前一段时间电脑上的虚拟机打不开了,点击开机就一直黑屏,挂起时能够看到显示,但是开机就黑屏。百度了之后找到了解决方案:(我是第一种方案就解决了)(据说可能是wegame的锅。。。)方法1:命令行窗口cmd—输入netsh winsock reset,然后重启计算机。方法2:VM->Settings->Hardware->Display在右...
2019-09-05 20:28:53
471
原创 VMware Workstation启动虚拟机报 以独占方式锁定此配置文件失败
VMware Workstation启动虚拟机报 以独占方式锁定此配置文件失败的问题解决。当我们强制关掉vm的时候,可能在下次开机的时候报错以独占方式锁定此配置文件失败的问题。解决办法如下:1,打开我们虚拟机的安装目录,注意不是vm的安装目录。2,删掉目录里面的.lck结尾的文件夹3,重启电脑。如果还是不行,请检查下其他的虚拟机,可能其他的虚拟机目录里面也有.lck结尾的目录。确保所...
2019-08-29 17:04:58
4054
3
原创 在Java的Controller中获取ModelAndView返回值中的model里面的值。
在Java的Controller中获取ModelAndView返回值中的model里面的值。通常我们使用springmvc的时候会使用ModelAndView来返回给前端页面以指定视图页面和返回的属性值。但是有的时候我们需要在接口中获取这个modelAndView的值,比如有的框架里面已经写好了返回的是modelAndView,我们不好修改,但是我们又想要这个返回值forward到另一个接口而...
2019-08-26 15:05:11
7543
转载 理解OAuth 2.0协议
理解OAuth 2.0协议一、应用场景二、名词定义三、OAuth的思路四、运行流程五、客户端的授权模式1. 授权码模式简化模式密码模式客户端模式六、更新令牌OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。一、应用场景为了理解O...
2019-08-22 10:25:05
229
转载 linux误删文件恢复
linux误删文件恢复。原文章链接:一次心惊肉跳的服务器误删文件的恢复过程https://www.cnblogs.com/zhouyu629/p/3734494.html记录一下,也许用的上。
2019-08-21 16:17:56
290
原创 logback配置详解 logback中文文档
logback的配置和使用Logger, Appenders and LayoutsLogger:Level:Logger的获取:Appender:OutputStreamAppender:ConsoleAppender:FileAppender:独特的文件名(根据timestamp):RollingFileAppender:RollingPolicy:triggeringPolicy:Encod...
2019-08-21 15:19:16
4071
原创 log4j配置详解 log4j中文文档
log4j 1.2 配置和使用1. Loggers, Appenders and Layouts1.1 Loggers1.2 Appenders和Layouts1.2.1 Appender1.2.2 Layout2 使用配置文件。1. Loggers, Appenders and LayoutsLog4j有三个主要的组件:loggers: 负责捕获日志信息appenders: 负责输出信息...
2019-08-20 10:14:43
2976
原创 jenkins本地maven打包上传linux并运行
jenkins本地maven打包上传linux并运行1. 下载插件2. 配置Publish over ssh3. 开始新建我们的job了。3.1 点击jenkins ==》 新建item ==》 创建一个自由风格的项目3.2 配置item的General3.3 配置构建3.4 配置构建后操作,上面已经打好包了,后面就是要上传到linux上面了。通常我们有jenkins本地maven打包上传lin...
2019-08-13 09:35:02
2045
原创 Tomcat源码走读 07-tomcat处理请求
07-tomcat处理请求在上一章06-tomcat的容器启动过程中,我们知道了处理请求的逻辑在Accptor里面。本章我们直接从这里往后描述。1. JIoEndpoint.processSocket()protected boolean processSocket(Socket socket) { try { SocketWrapper<Soc...
2019-07-28 16:55:06
263
原创 Tomcat源码走读 06-tomcat的容器启动过程
06-tomcat的容器启动过程在02-tomcat的启动和关闭流程中,在容器初始化之后,Catalina.start()方法会触发容器的启动流程。public void start() { try { getServer().start(); } catch (LifecycleException e) { } ...
2019-07-28 16:50:26
313
原创 Tomcat源码走读 05-tomcat的容器初始化过程
05-tomcat的容器初始化过程介绍容器初始化过程之前,让我们先来看下tomcat容器的类继承关系图。Lifecycle:顶级接口:定义了添加,删除,查找生命周期监听器的方法,以及init,stop等。MBeanRegistration:顶级接口,定义一些注册jmx其后的处理方法。LifecycleBase: 成员LifecycleSupport作用是发布生命周期事件。定义了init,...
2019-07-28 16:43:40
259
原创 Tomcat源码走读 04-tomcat的server.xml解析
04-tomcat的server.xml解析tomcat的server.xml的解析依靠的是Digester对象,入口在Catalina.load()中。1.Digester digester = createStartDigester();protected Digester createStartDigester() { Digester digester = new D...
2019-07-28 16:37:01
238
原创 Tomcat源码走读 03-tomcat的类加载器
03-tomcat的类加载器tomcat类加载器结构图:1)bootstrap ClassLoader:它用来加载 Java 的核心类,是用原生代码来实现的,并不继承自 java.lang.ClassLoader,负责加载$JAVA_HOME中jre/lib/rt.jar里所有的class,由C++实现,不是ClassLoader子类。2)extension ClassLoader:它负责...
2019-07-28 16:31:46
289
原创 Tomcat源码走读 02-tomcat的启动和关闭流程
02-tomcat的启动和关闭流程本套代码走读基于tomcat7.0的源码,分析之前,先下载tomcat源码,导入ide。可以参考https://blog.youkuaiyun.com/z583773315/article/details/56353311我们平时使用tomcat启动都是使用startup.bat或startup.sh脚本,所以要分析启动流程可以先看下这个脚本。以start.bat为类:...
2019-07-28 16:27:09
271
原创 Tomcat源码走读 01-tomcat架构简介
01-tomcat架构简介总体架构:面向组件架构基于JMX事件侦听1)面向组件架构tomcat代码看似很庞大,但从结构上看却很清晰和简单,它主要由一堆组件组成,如Server、Service、Connector等,并基于JMX管理这些组件,另外实现以上接口的组件也实现了生命周期接口Lifecycle,使其组件履行固定的生存期,在其整个生存期的过程中通过事件侦听LifecycleEven...
2019-07-28 16:21:29
198
原创 Mysql Oracle java 通用aes加密
Mysql,Oracle,java 通用aes加密有时候项目需要适配mysql,oracle,java通用的加密,需要三者加解密可以通用,对于mysql和java比较好适配,主要是oracle,经过一番摸索总算完成了,记录一下。mysql版本:oracle版本:java版本:有时候项目需要适配mysql,oracle,java通用的加密,需要三者加解密可以通用,对于mysql和java比较好适配...
2019-07-26 19:51:27
1510
原创 原生servlet添加允许跨域
原生servlet添加允许跨域亲测有效。/** * 用于前后端分离,允许跨域。 * */public class CorsInterceptor implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @...
2019-02-16 09:49:54
3382
原创 Mysql中日期时间的加减
Mysql中日期时间的加减我们在数据库操作中有时候需要处理获取一段时间前或者某个时间到当前时间间的数据,这时候我们就需要处理几分钟,几小时,几天等等的情况。mysql强大的函数date_add()和date_sub()为我们提供了便捷。date_add()为日期增加一个时间间隔:#date 指定的时间值#INTERVAL #expr 添加的时间间隔#type 时间间隔单位语法格...
2019-02-15 21:06:25
4454
原创 Springboot多个异常处理类catch顺序
Springboot多个异常处理类catch顺序通常情况下,我们都会定义一个全局异常处理类来处理异常,但是当我们定义了多个异常处理类,同时他们又存在父子继承关系的情况下,我们该怎么保证子类优先判断异常是否是自己可以捕获的呢?如果父类先捕获该异常,那么该异常可能本该被子类处理掉,结果被父类的逻辑处理了,这肯定不是我们想要的。所以springboot中的多个异常处理逻辑该怎么实现呢?准备工作...
2019-01-27 10:33:47
3934
2
原创 Springboot习惯大于配置原理
Springboot简介Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架。准备...
2019-01-27 10:06:57
2062
1
原创 SpringAOP源码走读
Spring AOP源码走读简介Spring的两大核心就是IOC和AOP,了解其机制可以有效的提高我们对于spring的理解和运用。在上一篇SpringIOC源码走读中我们已经大致了解了Spring IOC的原理。现在我们可以继续学习一下AOP了,因为AOP的实现其实也是依赖于IOC的。为了方便起见,这里我们使用注解式的方式。spring aop面向切面编程的实际就是对bean进行代理,并把...
2019-01-26 22:18:44
311
原创 SpringIOC源码走读
SpringIOC源码走读简介准备工作阅读源码super(parent);setConfigLocations(configLocations);refresh();prepareRefresh()obtainFreshBeanFactory()prepareBeanFactory(beanFactory)postProcessBeanFactory(beanFactory)invokeBeanF...
2019-01-26 21:23:55
736
原创 easypoi的使用和遇到的问题
easypoi的使用和遇到的问题大纲本文内容简介easypoi简介准备工作easypoi的简单使用。一.EXCEL导出导出图片的时候遇到的问题ArrayIndexOutOfBoundsException导出图片的时候遇到图片不显示的问题easypoi的简单导入简单导入Excel并将图片保存到fastdfs自定义的资源服务器上面复杂导入(数据校验并返回校验失败的excel同时携带了每条报错的原因)编...
2018-10-14 20:04:35
31330
68
原创 Hibernate使用及源码分析(一)
Hibernate使用及源码分析(一)本篇文章主要通过hibernate初级使用分析一下源码,知识给初学者一点小小的建议,不喜勿喷,谢谢!hibernate环境搭建简单使用源码走读一 hibernate环境搭建 这里直接介绍使用maven搭建首先引入maven相关依赖&lt;dependencies&gt; &lt;dependency...
2018-09-09 23:35:02
6116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人