自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (3)
  • 问答 (2)
  • 收藏
  • 关注

原创 OAuth2.0 开放平台认证授权开发套件 Authmore-Framework 1.0 发布

简介 | Intro基于 OAuth2.0 协议的开放平台认证授权开发套件, 包含授权服务和开放平台 Docker 镜像,基于 Spring Boot Starter 的资源服务工具包和客户端(第三方应用)工具包优点 | Advantages简洁:专注核心功能 —— 社会化网络下的跨应用认证授权,基于 Spring Boot Starter 的工具包,为开发者提供最简洁的配置。快速:Au...

2019-06-04 22:47:10 397

原创 使用 Mitmdump 与 Python 脚本进行密码嗅探

很久没有写文章了,一是没空,二是几乎忘了还有这回事。这篇应该是年前的最后一发吧!那么今天就来聊一聊我最近关于网络抓包的一些实践(其实我对网络安全领域知之甚少)。当然,大家最熟知的工具可能是 Wireshark,它的功能十分强大。不过它大概不支持热插拔脚本,也就没办法实现完全自有掌控的抓包。于是不就之后,Mitmproxy 这货进入了我的视线,用它可以方便的添加自定义抓取逻辑的 Python 脚本,...

2019-02-03 08:40:44 2827 5

原创 keykee 2.0 发布,记录自己的键盘使用情况,在字里行间留下回忆

这是一个记录键盘的使用情况的软件,可以精确统计每个按键,按键24小时统计,按键频次趋势分析,记录你的每一次敲击。软件使用 Python 编写,客户端使用了 Ant Design 。仓库地址: https://gitee.com/zbl1996/keykee目前它长这个样子技术FlaskSQLiteReactAnt Design安装首先请确保你的电脑上已安装最新版的 nod...

2019-01-22 10:32:05 591

原创 设计模式学习笔记(13)中介者

本文实例代码:https://github.com/JamesZBL/java_design_patterns 中介者(Mediator)模式是用来降低多个对象和类之间的通信复杂性的。这种模式中通常提供一个充当中介者角色的类,用来承担“中心化”或“集中化”的职能,与各个对象之间都可以分别相互通信,它的一大优势是减少或避免其他对象之间的互相通信,在通信方面降低了耦合度。 实例现在要...

2018-05-20 22:10:23 229

原创 设计模式学习笔记(12)迭代器

本文实例代码:https://github.com/JamesZBL/java_design_patterns 迭代器(Iterator)模式又称游标模式,是集合类型对外提供统一的顺序访问元素而隐藏内部的实现细节的一种方式,是一种行为模式。 迭代器在 Java 的集合类中非常常见,我们使用迭代器来遍历集合中的每一个元素。迭代器在 ArrayList 的使用通常是这样的:Strin...

2018-05-20 22:09:47 233

原创 设计模式学习笔记(11)解释器

本文实例代码:https://github.com/JamesZBL/java_design_patterns 解释器(Interpreter)模式提供了校验语言的语法或表达式的途径,它属于行为型模式的一种。这种模式通常会提供一个表达式接口,通过这个接口可以解释对应特定环境的上下文。 解释器模式在日常开发的过程中不是很常用,但它在 SQL 解析、符号处理引擎、编译程序等场景中使用非常广泛。...

2018-05-20 22:09:02 283

原创 设计模式学习笔记(10)职责链

本文实例代码:https://github.com/JamesZBL/java_design_patterns 职责链(Chain of Responsibility 亦译作 “责任链”)模式中,行为型模式的一种。它的具体特征是,几乎每个行为的实现者都持有职责链中下一个行为实现者的引用,在一个实现者无法完成指派给它的职责的时候,它就会将这一职责的请求传递给下一个实现者,多个传递关系就构成了一条...

2018-05-20 22:07:56 199

原创 设计模式学习笔记(9)命令

本文实例代码:https://github.com/JamesZBL/java_design_patterns 命令(Command)模式是一种数据驱动的设计模式,它属于行为型模式。请求被包装成一个命令对象,并由调用者传递给被调用对象。被调用对象寻找可以处理该命令的合适的处理对象,并把该命令传给这个处理对象,该处理对象执行命令。 命令模式中,命令的发出者和接收者是独立的,发出命令的职责和处理...

2018-05-20 22:07:30 187

原创 设计模式学习笔记(8)单例

本文实例代码:https://github.com/JamesZBL/java_design_patterns 单例(Singleton)模式是最常用的设计模式之一,但同时也是最能体现 Java 特性的设计模式之一,它是创建型模式中最经典的一个。 单例模式的核心目的是,保证一个类的实例只存在一个。许多场景中整个软件系统只需要拥有一个该类的全局对象,这是为了更好的实现这个对象的功能。一个常见的...

2018-05-20 22:07:05 140

原创 设计模式学习笔记(7)原型

本文实例代码:https://github.com/JamesZBL/java_design_patterns 原型(Prototype)模式用于创建重复的对象,与工厂模式类似。它们之间的区别是:工厂模式通过 new 关键字调用类的构造方法来创建对象,而原型模式采用复制已存在对象的方式创建新的对象。如果通过构造方法创建对象会造成一定程度上的性能问题,就应当考虑使用原型模式。例如,一个对象需在创...

2018-05-20 22:06:34 114

原创 设计模式学习笔记(6)工厂方法

本文实例代码:https://github.com/JamesZBL/java_design_patterns 工厂方法(Factory Method)模式,又叫做虚拟构造(Virtual Constructor)模式或多态工厂(Polymorphic Factory)模式。工厂方法的特点是定义一个用于创建对象的接口, 让子类决定实例化哪一个类。 工厂方法使一个类的实例化延迟到其子类。 ...

2018-05-20 22:06:06 215

原创 设计模式学习笔记(5)抽象工厂

本文实例代码:https://github.com/JamesZBL/java_design_patterns 抽象工厂模式是在工厂方法模式之上的有一次升级,以便能够处理更加复杂的对象创建场景。因此也是所有形态的工厂模式中最为抽象和最具一般性的一种形态。工厂 ( Factory ) 和产品 ( Product ) 是 Abstract Factory 模式的主要参与者。 该模式描述了怎样在不直...

2018-05-20 22:05:28 152

原创 设计模式学习笔记(4)构建者

本文实例代码:https://github.com/JamesZBL/java_design_patterns 构建者(Builder)模式通常用于将复杂对象的构造简化,将具体的构造过程与表示分离,使同样的构建过程可以创建不同的表示。使用多个简单的对象一步一步构建成一个复杂的对象,这种类型的设计模式属于创建型模式。建造模式可以将一个复杂对象的内部组成部分,与该对象本身的创建分离开来,从而使得复...

2018-05-20 22:05:02 167

原创 设计模式学习笔记(3)装饰器

本文实例代码:https://github.com/JamesZBL/java_design_patterns 装饰器(Decorator)模式用于动态地给一个对象添加一些额外的职责。 就增加功能来说, Decorator模式相比生成子类更为灵活。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 纯粹的装饰模式很难找到,大多数的装饰模式的实现都是“半透明”的,而不是完全...

2018-05-14 14:23:52 153

原创 设计模式学习笔记(1)组合

本文实例代码:https://github.com/JamesZBL/java_design_patterns组合(Composite)模式用于将对象组合成树形结构以表示 “部分——整体” 的层次结构。它使得用户对单个对象和组合对象的使用具有一致性。 模式要点组成部分Component : 是组合中的所有对象的统一接口;定义了特定情况下,类应当实现的货缺省的行为;C...

2018-05-10 21:02:02 185

原创 基于 Spring Boot 2.0 构建一个 RESTful WebService

REST 全称是 Representational State Transfer,中文意思是“表述性状态转移”。RESTful 是关于 Web 的现有特征和使用方式的一些准则和约束。 基于 Spring MVC 的 RestController,我们可以方便的构建一个 RESTful 风格的应用

2018-04-17 21:22:04 2026 1

原创 Ubuntu Linux 中虚拟主机的配置 - 搭配 Nginx

虚拟主机,正如其名,就是将一台服务器划分为多个虚拟的主机,可以将每个域名分配给不同的虚拟主机,这样可以充分利用了域名资源和硬件资源。这次我们采用 Nginx 实现虚拟主机的配置。Nginx 是一款 free、开源的高性能 HTTP 服务器和反向代理服务器,同时可用作 IMAP、POP3、SMTP 服务器,它经常被用作 HTTP 服务器进行 Web 应用的部署使用,另外,Nginx 还经常以反向代理服

2018-04-16 12:54:09 284

原创 Nginx 解决浏览器 Ajax 跨域问题

跨域是指 host 为 A 页面中的 Ajax 发起指向 host B 的请求,只要 A 和 B 的协议、域名、端口、子域名其中任何一项不同,则执行的访问都会被认为是跨域的请求,几乎所有的浏览器为了安全等问题,对跨域访问做了限制,也就是无法通过浏览器发起跨域请求。跨域问题的本质是浏览器的限制。

2018-04-16 12:53:32 719

原创 Spring MVC 整合 Shiro 权限控制

Apache Shiro 是一个功能强大且灵活的开放源代码安全框架,可以细粒度地处理认证 (Authentication),授权 (Authorization),会话 (Session) 管理和加密 (cryptography) 等企业级应用中常见的安全控制流程。

2018-03-31 21:55:42 7226

原创 Spring MVC 中 @ModelAttribute 注解的妙用

Spring MVC 提供的这种基于注释的编程模型,极大的简化了 web 应用的开发。其中 @Controller 和 @RestController 注解的组件使用 @RequestMapping、 @ExceptionHandler 等注解来表示请求映射,请求输入,异常处理等,使得开发者能专注于业务逻辑的编写,提高了开发效率。 带注释的控制器具有灵活的方法签名,不必扩展基类,也不需要实现特定的...

2018-03-31 14:14:26 1836

原创 使用 Hexo + Github 搭建自己的博客

Hexo 是一个快速、简洁且高效的静态博客应用,它的一大亮点是提供了强大的 CLI 工具,真正实现了一键部署。Hexo 使用 Markdown 来解析文章,可以在很短时间内渲染出简洁大方的页面。本文将从安装到部署来详细介绍 Hexo。 本文涉及到的一些工具需要一定操作基础,若有疑问,请先自行搜索学习。安装Hexo 的运行和部署需要以下工具: - Node.js - Git...

2018-03-30 23:36:40 166

原创 基于 Spring Boot 的个人博客 FS-Blog

在线 Demo:http://fsblog.letec.topGithub 地址:https://github.com/jameszbl/fs-blog1. 涉及技术及工具核心框架:SpringBootORM 框架:MyBatisMyBatis 工具:MyBatis MapperMVC 框架:Spring MVC模板引擎:Freemarker编译辅助插件:Lombok...

2018-03-27 15:45:46 8400 2

原创 Spring MVC 解析之 DispatcherServlet

Spring MVC 是什么Spring Web MVC (Spring MVC) 是一套以 Servlet API 为基础平台的优雅的 Web 框架,一直是 Spring Framework 中重要的一个组成部分。 正式名称 “Spring Web MVC” 来自其源模块 spring-webmvc 的名称,但它通常被称为“Spring MVC”。与 Spring Web MVC 并行,...

2018-03-17 20:51:32 1017

翻译 Spring 应用中集成 Apache Shiro

这一篇文章涵盖了将 Shiro 集成到基于 Spring 的应用程序的方法

2018-02-17 09:54:48 383

原创 Python 爬虫获取 URP 教务系统学籍信息-你的个人信息正暴露在互联网中!

初衷本文旨在提醒同学们及时修改密码,增强保护个人隐私的意识,因此代码中一些关键数据以及校名等信息不会公开!复制粘贴文章中的代码不会爬到任何东西。只是作为学习 Python 爬虫的一点总结而已!作者所在学校的教务系统安全防范措施可谓非常不严密,学生登录甚至不需要图形验证码。每年学生入学之后,学校下发的账号,初始密码不是无规律的,而是和账号完全一致!如果学生不及时修改密码,那么其他人可以轻松登...

2018-02-11 12:17:07 3267 2

原创 IntelliJ IDEA 使用 阿里 Java 规约插件

通过Jetbrains官方仓库安装打开 Settings >> Plugins >> Browse repositories...在搜索框输入alibaba即可看到Alibaba Java Code Guidelines插件,点击Install进行安装,然后重启IDE生效 注意:因为插件zip包托管在Jetbrains官方CDN上,所以是从国外的服务器进行下载,可能会出

2017-12-22 23:46:09 11771

原创 在 SpringMVC 中对表单提交参数进行验证(使用 Bean Validator)

在 SpringMVC 项目中,有时需要对前端页面上传的表单参数进行一定的限制,包括不为空或者长度等。在控制器的各种方法中进行诸如如下方式的判断势必造成大量重复的代码,因此我们使用 Bean Validator

2017-12-02 22:40:28 1664

转载 Java 反射教程

什么是反射?反射有什么用处?1. 什么是反射?“反射(Reflection)能够让运行于JVM中的程序检测和修改运行时的行为。”这个概念常常会和内省(Introspection)混淆,以下是这两个术语在Wikipedia中的解释:内省用于在运行时检测某个对象的类型和其包含的属性;反射用于在运行时检测和修改某个对象的结构及其行为。从它们的定义可以看出,内省是反射的一个子集。有些语

2017-11-24 17:43:43 207

转载 10 个有关 String 的面试问题

下面是面试中最容易问到的有关String的问题。1. 如何比较两个字符串?使用“==”还是equals()方法?简单来讲,“==”测试的是两个对象的引用是否相同,而equals()比较的是两个字符串的值是否相等。除非你想检查的是两个字符串是否是同一个对象,否则你应该使用equals()来比较字符串。如果你知道interning的概念的话,那就更好了。2. 为什么针对安全保密高的信息

2017-11-24 17:39:45 172

原创 设计模式实践系列 (3) - 装饰模式 ( Decorator )

装饰模式 ( Decorator )用途用于动态地给一个对象添加一些额外的职责。 就增加功能来说, Decorator模式相比生成子类更为灵活。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。纯粹的装饰模式很难找到,大多数的装饰模式的实现都是“半透明”的,而不是完全透明的。换言之,允许装饰模式改变接口,增加新的方法。半透明的装饰模式是介于装饰模式和适配器模式之间的。适配器模式的

2017-11-21 13:37:42 179

转载 深入理解 Java中 的 final 关键字

Java中的final关键字非常重要,它可以应用于类、方法以及变量。这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实例。final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的。final关键字的含义?final在Java中是一个保留的关键字,可

2017-11-21 12:21:01 189

原创 设计模式实践系列 (2) - 组合模式 ( Composite )

用途将对象组合成树形结构以表示 “部分——整体” 的层次结构。 Composite使得用户对单个对象和组合对象的使用具有一致性

2017-11-19 20:56:16 230

转载 看透 Spring MVC 源代码分析与实践 —— Spring MVC 组件分析

由于星期一接到面试通知,和面试官约好了星期四面试,所以这几天没更新完这系列的文章,面完试后立马就把这个解决掉。通过这次面试,也让我懂得了很多,知道了自己的一些不足之处,后面还要继续下功夫好好的深入复习下去。这几篇文章写的我觉得还是不够仔细,感兴趣的还是建议自己去看看源码。第 11 章 —— 组件概览HandlerMapping根据 request 找到对应的处理器 Ha

2017-11-19 12:05:07 291

转载 用实例带你提前了解 Java 9 中的新特性

Java 作为 Android 的基础编程语言,每一次迭代也是备受安卓开发人员的关注。这不,Oracle 公司在今年即将发布 Java 9 正式版,一些新的特性和改进很是值得期待。周末时间,拜读了国外的一个 Java 大牛写的有关 Java SE 9 的新功能介绍,简明扼要,示例得当。于是,一时兴起,以拙劣的英语水平磕磕绊绊翻译至此,供大家了解一番。作者:「Rambabu Posa

2017-11-19 11:59:58 434

转载 程序员你为什么这么累?

大家一提到程序员,首先想到的是以下标签:苦逼,加班,熬夜通宵。但是,但凡工作了的同学都知道,其实大部分程序员做的事情都很简单,代码CRUD可以说毫无技术含量,就算什么不懂依葫芦画瓢很多功能也能勉强做出来,做个多线程并发就算高科技了,程序员这行的门槛其实还是比较低的。(这里说的是大部分,有些牛逼的,写算法、jvm等的请自动跳过)是不是觉得很矛盾,一方面工作不复杂,一方面却累成狗。有没有想过问

2017-11-19 11:54:31 225

转载 Java I/O 操作总结

Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。数据流是一串连续不断的数据的集合,就象水管里的水流,在水管的一端一点一点地供水,而在水管的另一端看到的是一股连续不断的水流。数据写入程序可以是一段、一段地向数据流管道中写入数据,这些数据段会按先后顺序形成一个长的数据流。对数据读取程序

2017-11-19 11:51:06 176

转载 Java 异常处理的误区和经验总结

本文着重介绍了 Java 异常选择和使用中的一些误区,希望各位读者能够熟练掌握异常处理的一些注意点和原则,注意总结和归纳。只有处理好了异常,才能提升开发人员的基本素养,提高系统的健壮性,提升用户体验,提高产品的价值。误区一、异常的选择图 1. 异常分类图 1 描述了异常的结构,其实我们都知道异常分检测异常和非检测异常,但是在实际中又混淆了这两种异常的应用。由于非检测异常

2017-11-19 11:48:10 180

转载 Spring 基础知识汇总

Spring简介Spring框架由Rod Johnson开发,2004年发布了Spring框架的第一版。Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率。Spring总结起来优点如下低侵入式设计,代码的污染极低独立于各种应用服务器,基于Spring框架的应用,可以

2017-11-19 11:37:56 136

转载 Java 集合框架面试问题集锦

Java集合框架(例如基本的数据结构)里包含了最常见的Java常见面试问题。很好地理解集合框架,可以帮助你理解和利用Java的一些高级特性。下面是面试Java核心技术的一些很实用的问题。Q:最常见的数据结构有哪些,在哪些场景下应用它们?A. 大部分人都会遗漏树和图这两种数据结构。树和图都是很有用的数据结构。如果你在回答中提及到它们的话,面试者可能会对你进行进一步进行的考核。

2017-11-19 11:33:52 386

转载 一张图读懂 Java 多线程

1、带着疑问看图1)竞争对象的锁和竞争CPU资源以及竞争被唤醒2)何种情况下获取到了锁,何种情况下会释放锁2、还是那张图3、详细图解1)Thread t = new Thread(),初始化一个线程,实际上就是一个普通对象,此时他的状态为New2)t.start(); 线程处于就绪状态(可运行状态),也就是随时等待着运行, 不要小看这个start,这个start决定了他是否是一个真正的线程实例,因为

2017-11-19 11:25:16 361

阿里巴巴Java开发手册_v1.2.0

阿里巴巴Java开发手册 v1.2.0 ,资源用于学习和交流使用,严禁用作商业用途,违者必究! !

2017-09-23

spket-1.6.23 已激活版本

MyEclipse插件,spket-1.6.23,安装即可使用。用于开启js代码提示,可实现jQuery等多种js库的提示。

2017-05-29

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

TA关注的人

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