- 博客(36)
- 收藏
- 关注
原创 Java 操作 word 文档 (三)段落Paragraphs,文本加粗、斜体、字体、字体大小、复杂文本
1、段落标签在 WordML 中,段落由 <w:p> 标签定义。每个段落都有属性标签:<w:pPr> 。其中包含一些属性标签,比如段落的对其方式:<w:jc> ;段落的边框:<w:pBdr> 。一般情况下:段落的内容就是一个或多个 <w:r> 标签构成。2、引入 docx4j2.1 引入 docx4j 的 maven 依赖 <dependency> <groupId>org.docx4
2022-10-24 21:49:35 6590 1
原创 mysql8 进阶(四) 主从复制之 GTID 复制实践
基于 Docker 的 Mysql8.0.12 的主从复制之 GTID 复制。Mastermysql-gtid-master/usr/share/mysql/gtid/master3306Slavemysql-gtid-slave/usr/share/mysq
2022-04-06 21:25:24 1287
原创 java 线程 (一) 线程的简单使用
大家好,从今天开始,我和大家一起来探讨 java 中线程的使用。线程是 java 知识体系中非常重要的一部分,我将写一系列的文章来详细的介绍 java 线程中需要掌握的知识。如果你是 java 线程的初学者,本系列文章你一定不要错过哦。本篇文章是 java 线程系列文章的第一篇文章,主要介绍进程与线程的概念和 java 中如何使用线程。1 进程与线程1.1 进程的概念首先我们先来介绍一下什么是进程。进程可以理解为一个个正在执行的应用程序,比如我们使用网易云音乐软件播放音乐,同时我们在使用 WP
2021-10-24 17:14:09 19281 1
原创 QT入门之布局 水平布局、垂直布局、表单布局、网格布局
1 简介2 QVBoxLayout 垂直布局QVBoxLayout 其中的 “V” 就是单词 vertical 的简写,垂直的意思,就是该布局中的组件都是垂直方向排列的。简单示例:int main(int argc, char *argv[]){ QApplication a(argc, argv); Widget w; QVBoxLayout layout; QPushButton btn1("btn1",&w);//创建 3 个按钮 QPu
2021-09-17 16:16:17 16128 4
原创 QT入门之QMainWindow
2 Menu Bar在菜单中栏中,可以添加多个菜单,但是菜单并不负责执行具体的操作,而是在菜单中添加不同的 “动作”(QAction)来完成。在菜单栏中除了添加菜单,还可以直接添加 QAction。2.1 简单示例...
2021-09-12 16:48:55 2356
原创 QT入门之QPushButton
1、常用属性介绍1.1、checkable该属性用于设置按钮是否被选择,该属性继承自父类 QAbstractButton。如果将其设置为 true ,表示该按钮可被选择,是否被选择则由 checked 参数确定。默认情况下是 false,按钮被点击一次就立马弹起。本文介绍 clicked() 信号时会详细介绍。下图为 checkable 设置 ture 时,点击一次后的情况:2、常用信号2.1 信号void clicked()void clicked(bool checked = fals
2021-08-29 16:21:57 5227 1
原创 SpringSecurity ,oAuth2.0 从入门到源码精通 之 (八)spring security 中的 session 管理:超时处理、多设备登录、集群下 session 共享
今天我们一起来学习 Spring Security 中是如何管理 session 的。1 session 过期处理至于 session 是什么,有什么作用,我们这里就不介绍了。首先我们先来看一下 session 过期处理。在 Spring Boot 中我们可以用下面的配置来设置 session 的过期时间。server: servlet: session: timeout: 60 # 单位:秒,默认为 30 分钟当配置好,先登录,然后过 1 分钟,刷新页面,需要你重新登录
2020-12-07 14:32:45 1204
原创 SpringSecurity ,oAuth2.0 从入门到源码精通 之 (七)spring security 实现手机短信验证码登录
在日常开发中,我们的应用不只有表单登录,大部分情况下有通过手机验证码登录、第三方账号登录等。这些不同的方式其实也都大同小异,手机号验证码登录相等于是密码不固定的表单登录;第三方登录其实是我们的服务器从第三方平台拿到了一个令牌,然后根据令牌从第三方平台获取用户信息,再存到我们服务器的 SecurityContext 中,第三方登录我们后面介绍 oAuth2.0 时再详细介绍,今天主要学习自定义手机验证码登录功能。实现手机验证码登录1 回顾 UsernamePasswordAuthenticationFilt
2020-12-03 16:48:45 895 1
原创 SpringSecurity ,oAuth2.0 从入门到源码精通 之 (六)spring security 配置多条过滤器链
在前一篇文章中,我们介绍了 Spring Security 的启动流程和配置流程,在介绍 WebSecurity 时,我们提到可以创建多个 WebSecurityConfigurerAdapter 的子类实例,也就会创建多条过滤器链,今天我们就来简单了解一下如何配置多个过滤器链。1 简单配置配置方法很简单,我们直接上代码:创建一个配置类,再在该类中创建几个 WebSecurityConfigurerAdapter 的子类,并给这些类加上 @Order 和 @Configuration 注解:Mult
2020-12-01 15:32:12 985
原创 SpringSecurity ,oAuth2.0 从入门到源码精通 之 (五)spring security 的 启动流程、构建 filterChainProxy 和 过滤器链 的流程详解
经过前面的学习,我们已经学会了如何进行简单的 Spring Security 配置来完成一些基本功能。今天,我们将一起详细讨论 WebSecurityConfigurerAdapter 的使用。1 Spring Security 自动配置在开始之前,我们先看一下 Spring Security 的自动配置。对于熟悉 SpringBoot 自动配置的小伙伴来说,可以跳过本小节。我们在 idea 中双击 shift 键,输入 spring.factories ,然后找到下图红框中的文件:然后搜素 .
2020-11-24 15:23:33 493 3
原创 SpringSecurity ,oAuth2.0 从入门到源码精通 之 (四)spring security 的 认证流程、权限验证流程源码解读
(我将我的 Spring Security 专栏地址放在这里,供大家参考,后面会持续更新: SpringSecurity ,oAuth2.0 从入门到源码精通 ,希望可以帮助到正在学习 Spring Security 和 oAuth2.0 的小伙伴)。经过前面三篇文章的学习,我想大家应该已经很熟悉 Spring Security 在 Spring Boot 中的基本使用了,相信大家肯定也不会满足于此,所以今天我们就一起来讨论一下 Spring Security 的源码,让我们不仅会使用 Spring Se
2020-11-13 17:00:42 599 2
原创 SpringSecurity ,oAuth2.0 从入门到源码精通 之 (三)spring security 从数据库中读取用户信息
经过前面两篇文章的学习 spring security 简单入门 和 自定义登录界面、登录验证、登录成功处理、登录失败处理 的学习,我相信大家一定对 Spring Security 有了很很深刻的认识,但是也肯定不满足于前面的基于内存的方式存储用户信息。所以,本篇文章,我们就专门来讨论一下从数据库获取用户并进行用户的身份验证如何实现。本文主要介绍如何让 Spring Security 与我们的数据库中的用户产生联系,对于用户的权限部分,我只采用很简单的方式,将权限直接放在用户表中。在后面的文章中,我将详
2020-11-05 11:21:47 1682 1
原创 SpringSecurity ,oAuth2.0 从入门到源码精通 之 (二)spring security 自定义登录界面、登录验证、登录成功处理、登录失败处理
在上一篇文章中(SpringSecurity ,oAuth2.0 从入门到源码精通 之 (一)spring security 简单入门,包你学会)我们已经详细的讨论了 Spring Security 的基本使用,相信大家已经对 Spring Security 有了一个基本的了解了。本篇文章我们接着往下,来讨论一下在 Spring Security 中如何自定义我们的登录界面等。本文使用的代码是在上一篇文章(SpringSecurity ,oAuth2.0 从入门到源码精通 之 (一)spring secu
2020-11-04 11:34:50 1621 1
原创 SpringSecurity ,oAuth2.0 从入门到源码精通 之 (一)spring security 简单入门,包你学会
从今天开始,我和大家一起来讨论一下 spring security 以及 oauth2.0 协议如何在微服务架构 spring cloud 中使用。这两部分的内容我都采取先上示例,再介绍原理的方式。如果大家有不清楚的或者有不同理解,我们可以一起讨论。在当今的 web 应用开发中,系统的安全当属最重要的部分了。一般情况下,我们都需要用户进行登录,然后才能调用系统的接口。现在有一些安全框架供我们使用:Shiro 和 Spring Security。Spring Security 是 Spring 大家族的.
2020-10-29 17:23:52 790 4
原创 深入浅出学设计模式(十一)之策略模式
今天我们一起来学习一下策略模式,该模式在实际开发中也会经常用到。当我们要完成一件事情有多种方式时,我们就可以考虑使用策略模式,把每一种解决方案当做是一种策略。接下来我们就一起了解一下在代码中如何使用设计模式。1 抛出问题我们假设有这样一个问题:假期出游我们会选择多种出行方式到达目的地,比如:坐飞机、坐火车、自驾等。实现这个小需求,或许我们会想到将多种方式写在一个类中或者写在一个方法中用 if else 来判断。如下:public class TripWay { void travel(in.
2020-10-24 17:39:09 393
原创 深入浅出学设计模式(十)之建造者模式
今天我们来一起学习一下建造者模式,也叫生成器模式,该模式属于创建型模式,顾名思义就是用来创建对象的。该模式在日常开发中用的不是很多,掌握其思想即可。在开始之前,我们先想一个这样的场景:一个类有 50 个不同的属性,可想而知该类的构造函数的参数个数、或许也会有多个构造函数,那么这种情况下,在每次需要使用这些构造函数时,是不是就会很头疼了?如果你有遇到过这样的问题,就可以接着往下看,了解一下建造者模式。1 建造者模式定义定义:将复杂对象的构造与其表示分开,以便相同的构造过程可以创建不同的表示。什么.
2020-10-15 10:14:10 146
原创 深入浅出学设计模式(九)之桥接模式
今天我们一起来学习一下桥接模式,该模式在日常开发中经常使用。该模式主要用于解决一个类可以从多个维度变化时,通过继承来扩展新类导致类爆炸的问题。1 抛出问题需求:现有一服装厂,有各种颜色、款式、大小的短袖,我们如何用代码来描述这些不同的短袖呢。下图提供了一种很传统的做法:如果我们要得到所有不同组合的短袖,就会生成很多的类,将使得我们的代码维护难度增大。假如现在需要给短袖增加不同的图案,那么我们又只能在 S码红色V领短袖 下再派生出 S码红色V领小猪佩奇图案短袖、S码红色V领喜洋洋图案短袖,对于 .
2020-10-13 14:25:33 277
原创 深入浅出学设计模式(八)之组合模式
今天我们一起学习组合模式,当我们需要强调整体与部分之间存在层次关系,且整体与部分都具有一样的行为时就可以考虑使用组合模式。比如:在学校老师查人数时,他不需要亲自去数每个同学是否到齐,他可以让小组长去数自己组里有多少同学,然后每个小组长再将结果报给老师,老师做一个汇总即可。组合模式在实际开发中用的可能不是很多,并且使用起来也很简单,我们掌握它的思想即可。组合模式1 组合模式定义2 UML 图3 实际案例4 示例代码1 组合模式定义定义: 组合模式又叫部分-整体模式,是用于把一组相似的对象当作一个单一.
2020-10-10 16:51:58 230
原创 深入浅出学设计模式(七)之中介者模式
今天我们一起学习一下中介者模式。该模式在实际开发中用的可能不是很多,一般可以用在类似于调度中心、多个模块之间频繁的进行互相调用时,我们就可以考虑使用中介者模式,就比如我们以前在学习 jsp 的时候,不能直接在一个 jsp 中请求另一个 jsp,而是需要在两个 jsp 之间添加一个 controller 控制器,这样就避免了 jsp 的代码臃肿难维护的问题。1 中介者模式概述1.1 定义中介者模式: 用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以.
2020-10-09 17:09:16 245
原创 深入浅出学设计模式(六)之观察者模式
今天我们一起学习一下观察者模式,该模式在日常开发中能用的场景非常多,比如:电商平台的到货通知,csdn 博客的关注功能,或者手机 app 中点击按钮实现某个功能,等等。接下来我们就看看如何使用设计模式吧。1 观察者模式解决的问题今天,我们先不一上来就介绍观察者模式的定义、UML 图及如何实现等,我们先根据一个简单的例子来体会一下,如果不使用观察者模式应该如何解决问题。需求:我们在订机票后,常常会关注该航班的动态,是否推迟、起飞时间等。假设我们即将乘坐的是东方航空,东方航空有一个专门的服务:航班动态.
2020-09-29 16:33:08 477
原创 深入浅出学设计模式(五)之单例模式
今天,我们一起来学习学习单例模式。单例模式初看很简单,细看有点不简单。今天,我们就从各个角度来讨论一下单例模式。单例模式在我们平常开发中也经常用到,比如:被设计成重量级的对象,一般将其设计成单例,Hibernate 的 SessionFactory 、spring 的 BeanFactory 或者是数据库连接池等。1 单例模式定义定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供。该定义不能理解,在一个系统中,只允许 一 个类有一个实例,并且要给其他类提供可以访问这个实例的方法,那么就是.
2020-09-28 14:47:21 1026
原创 深入浅出学设计模式(四)之适配器模式
今天,我们一起来学习一下适配器模式,这个模式在日常开发中也会经常使用,比如:。。。。在生活中也有很多适配器的例子,比如:我们和外国人讲话的时候,需要一个翻译来将我的中文翻译成英文,这也算是一种适配;最经典的例子莫过于:手机、电脑的电源适配器,我们国家的家用电电压是 220v 是不能直接接到手机上给手机充电的,手机会当场爆炸,所以我们就必须要使用手机的电源适配器将 220v 的电压适配成手机可用的电压 5v。那么,接下来我们学习一下在代码中如何体现适配器模式。1 适配器模式定义适配器模式:将一个类的.
2020-09-25 11:09:49 211
原创 深入浅出学设计模式(三)之职责链模式
职责链模式1 职责链模式的定义2 UML 图及简单示例2.1 UML 图2.2 简单示例3 请假问题4 总结在我们开发中,经常会用到职责链模式,比如当员工需要请假时,有的公司规定,小于两天的假可以由小组领导给假、如果是小于 3 天的可以由部门领导批准,如果超过三天则需要老板审批等等。那么,今天我们就来学习一下职责链模式如何使用。1 职责链模式的定义职责链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下
2020-09-24 10:37:38 286
原创 深入浅出学设计模式(二)之装饰器模式
在日常开发中,装饰器模式也算用的挺多的,需要在运行时动态的对某一个方法的功能进行调整时,就可以考虑使用动态模式。例如,当我们将一些文本内容保存到一个文件中,在最初的设计中没有考虑其他功能就直接将文本保存到文件中,现在需求有变化,在保存之前需要设置文本的编码方式,经过一段时间后,需求可能又有改变,需要将文本进行加密等等,这种可以往原有的基本方法上添加新功能,就可以考虑使用装饰器模式。1 装饰器模式定义装饰器模式: 在不改变对象(被装饰的对象)自身的基础上,在程序运行期间给对像动态的添加职责。举个生.
2020-09-22 16:00:02 340
原创 深入浅出学设计模式(一)之 状态模式
状态模式概要在日常的开发中,状态模式会经常用到,特别是对于一些流程性的功能,比如:订单系统,电子流审批系统等。接下来我将和大家一起来学习状态模式的定义与实际使用。定义状态模式的定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。如何理解这句话呢? 首先我们可以感觉到 这个对象必须是要有状态的,并且它的状态是可以改变的,还有就是当对象的状态改变时,它的行为(也就是它提供的方法)也会跟着变化。接下来,我们可以举两个例子来感受一下这个定义。例子 一:我们每个人在年龄上都有各个
2020-09-18 11:40:51 318 1
原创 XUI 熟练使用之(五) -----------底部弹出对话框
在前面的文章中,我介绍了 XUI 中对话框的使用,大家可以查看我的另一篇文章:XUI 熟练使用之(四) ----------- 各种弹出对话框的详细介绍。在平时开发中,我们不仅会使用弹出的提示对话框,还会使用从页面底部弹出的对话框,例如分享功能等。在 XUI 中,底部对话框的使用很简单,我就直接上代码了:1、类似列表项的底部对话框完整代码查看文末。//显示底部列表对话框 private void showListDialog(){ new BottomSheet.Botto
2020-08-28 16:58:22 864
原创 XUI 熟练使用之(四) ----------- 各种弹出对话框的详细介绍
XUI 中 MaterialDialog 弹出对话框的使用 简介对话框的实现策略提供的弹出框效果示例简介**在 XUI 中,作者为我们提供了两种 Dialog,分别是 MaterialDialog 和 AlertDialog 。其中 MaterialDialog 是作者自己 通过 继承 类Dialog 来自定义的弹出对话框;而 AlertDialog 是对安卓系统自带的 AlertDialog 进行了一些功能上的封装,让我们在使用的时候不需要再自己去想怎样加个输入框或者按钮等,直接调用作者封装后的即可。
2020-08-28 15:52:05 3083
原创 XUI 熟练使用之(三) -----------启动页( SimpleGuideBanner的使用)
App 启动页的使用今天我将和大家一起学习 XUI 中 启动页 的使用,XUI 中的启动页的实现与轮播条基本ne
2020-08-27 15:00:56 1373 1
原创 XUI 熟练使用之(二) -----------轮播条( BannerLayout 的使用)
目录前言RecyclerViewBanner 的使用示例常用属性为轮播条设置常用事件轮播到某一项的事件为 item 添加点击事件前言 在前面的博客中(XUI 熟练使用之(一) ----------- 将 XUI 引入项目)我们已经学习了如何将 XUI 导入到我们的项目中,由于作者发布的示例项目很多地方对于我这样的新手来说,还不太容易理解,其中很多的控件不能做到开箱即用的效果,需要先熟悉一下示例项目结构等。所以接下来的一系列博文,我将一 一分享我的 XUI 学习之旅,已达到大家看了文章立马就会使用 XU.
2020-08-24 17:26:52 2190 6
原创 XUI 熟练使用之(一) ----------- 将 XUI 引入项目
XUI熟练使用之(一) ----------- 将 XUI引入项目前言一、添加 Gradle 依赖1、在项目根目录的 build.gradle 的 repositories 中添加:2、引入依赖二、初始化设置1、配置 application2、设置默认主题三、实例演示前言 在平时开发中我们会做很多很多的页面效果、自定义控件等,如果我们全部都从零开始编写的话,可能会浪费大量的时间,于是我们可以考虑在项目中使用一些前辈们已经开发好的开源项目。类似的开源项目有很多,比如 腾讯公司的 QMUI,或者 x
2020-08-21 15:23:34 8311 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人