4 -------江湖-------

尚未进行身份认证

我要认证

代码改变生活,程序改变世界!

等级
TA的排名 2w+

NAT模式下的虚拟机网络配置

原理NAT模式,也叫地址转换模式, 当把我们的虚拟机的上网方式设置为NAT模式时,虚拟机、宿主机、各网卡之间的连接关系可用下图来表示:具体配置流程1 将本地以太网共享到v8适配器上2 查看虚拟网络编辑中的NAT模式下的子网IP,子网掩码和网关IP在这里面,记住这几个内容:子网IP:192.168.119.0子网掩码:255.255.255.0网关IP:192.168.119.2起始IP:192.168.119.1结束IP:192.168.119.2543 编辑V8网络属性配置网关

2020-09-22 09:47:34

分布式认证方案

1 选型分析1.1 基于session的认证方式在分布式的环境下,基于session的认证会出现一个问题,每个应用服务都需要在session中存储用户身份信息,通过负载均衡将本地的请求分配到另一个应用服务需要将session信息带过去,否则会重新认证。这个时候,通常的做法有下面几种:Session复制:多台应用服务器之间同步session,使session保持一致,对外透明。Session黏贴:当用户访问集群中某台服务器后,强制指定后续所有请求均落到此机器上。Session集中存储:将Sessi

2020-08-24 17:55:57

Spring Security的工作原理

1 结构总览Spring Security所解决的问题就是安全访问控制,而安全访问控制功能其实就是对所有进入系统的请求进行拦截, 校验每个请求是否能够访问它所期望的资源。而Spring Security对Web资源的保护是靠Filter实现的。当初始化Spring Security时,会创建一个名为 springSecurityFilterChain 的Servlet过滤器,类型为org.springframework.security.web.FilterChainProxy,它实现了javax.ser

2020-08-24 17:17:50

springboot+springSecurity+thymeleaf整合

在这里咱们做个springboot+springSecurity+thymeleaf的整合,才用的框架是springboot+mybatisPlus,所有的用户数据,角色数据,权限数据均来自于数据库。1 项目结构和数据库结构为了便于了解整个项目结构,先看下项目结构和数据库结构1.1 项目结构1.2 数据库结构建表和数据语句如下:CREATE DATABASE /*!32312 IF NOT EXISTS*/`user_db` /*!40100 DEFAULT CHARACTER SET ut

2020-08-24 09:24:27

基于Session的认证方式

1 交互流程如下:用户认证成功后,在服务端生成用户相关的数据保存在session(当前会话)中,发给客户端的 sesssion_id 存放到 cookie 中,这样用户客户端请求时带上 session_id 就可以验证服务器端是否存在 session 数 据,以此完成用户的合法校验,当用户退出系统或session过期销毁时,客户端的session_id也就无效了。2 具体实现2.1 项目结构2.2 login.html<!DOCTYPE html><html lang="z

2020-08-17 18:39:55

RbbitMQ与springboot的整合

1 引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>2 YML中的配置spring: rabbitmq: host: 192.168.1.245 port: 5672 username

2020-08-15 15:46:24

RbbitMQ的几种连接方式

1 简单模式Hello World功能:一个生产者P发送消息到队列Q,一个消费者C接收生产者实现思路:创建连接工厂ConnectionFactory,设置服务地址,端口号,设置用户名、密码、virtual host,从连接工厂中获取连接connection,使用连接创建通道channel,使用通道channel创建队列queue,使用通道channel向队列中发送消息,关闭通道和连接。public class RabbitMQPublishTest { public static voi

2020-08-12 18:02:40

3 流程文档解析原理

1 文档解析基础1.1 文档解析模型XML的解析目前经常使用的有DOM,SAX,DOM4j。这些从模型上可以分为DOM模型和流模型,对比这两种,优缺点如下:1.1.1 DOM模型优点:文档解析的时候允许客户端编辑和更新XML文档,并可随机访问文档中定义的元素数据。缺点:会先一次性将所有的内容加载到内存中,进而去映射Document对象中的树形结构,文件如果过大,内存占用率太大,元素遍历慢,容易造成性能问题。1.1.2 流模型优点:每次解析只会将要解析的节点加载到内存中,从头开始,读取一段

2020-07-29 16:05:03

2 流程资源部署

1 流程文档部署生命周期1.1 定义流程文档客户端根据自己业务来定义流程文档。1.2 启动流程引擎流程引擎启动后自动构建ProcessEngine实例对象,然后就可以通过该实例对象获取服务类实例对象,比如TaskService。1.3 部署流程文档调用流程文档部署方法,会执行如下操作:(1)将流程文档中的元素解析为Activiti的内部表示BaseElement实例。(2)对BaseElement实例对象再次解析,进而将其转成流程虚拟机中的ActivitiImpl实例对象或者Transiti

2020-06-29 23:12:48

工作流springboot整合activiti6.0

1 首先引入activiti依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/ma

2020-06-28 10:13:16

单例模式

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其...

2020-04-21 09:28:54

2 设计模式之抽象工厂模式

抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。1. 介绍意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类...

2020-04-20 18:13:28

1 设计模式简介和工厂模式

1. 设计模式的类型总共有 23 种设计模式。这些模式可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns),还有一种设计模式:J2EE 设计模式。1.1 创建型模式这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使...

2020-04-20 17:22:00

java8新特性Demo

1 Lambda 语法Lambda 表达式在Java 语言中引入了一个新的语法元素和操作符。这个操作符为 “->” , 该操作符被称为 Lambda 操作符或剪头操作符。它将 Lambda 分为两个部分:左侧:指定了 Lambda 表达式需要的所有参数。右侧:指定了 Lambda 体,即 Lambda 表达式要执行的功能。1.1 语法格式1:无参,无返回值,Lambda 体只需要一...

2020-02-23 12:04:31

《Kubernetes指南》1-Kubernetes入门

1 Kubernetes基本概念和术语kubernetes中大部分概念如Node、Pod、Replication Controller、Service等都可以被看作一种资源对象,几乎所有的资源对象都可以通过kubernetes提供的kubectl工具(或API编程调用)执行增删改查等操作,并将其保存在etcd中持久化存储。从这个角度来看,kubernetes其实是一个高度自动化的资源控制系统,它...

2020-02-15 18:15:22

《java多线程编程核心技术》 第4章 Lock的使用

知识点:ReentrantLock类的使用ReentrantReadWriteLock类的使用4.1 使用ReentrantLock类ReentrantLock不仅能够实现和synchronized同样的效果,还具有嗅探锁定,多路分支通知等等。package demo14;import java.util.concurrent.locks.Lock;import java.ut...

2020-01-16 18:08:21

《java多线程编程核心技术》 第3章 线程间通信

内容如下:使用wait/notify实现线程通信。生产者/消费者模式的实现。方法join的使用。ThreadLocal类的使用。3.1 等待/通知机制3.1.1 等待通知机制的实现方法wait:使得当前执行代码的线程进行等待,该方法会将当前线程置于预置执行队列中,并且在wait()所在的代码处停止执行,直到接收到通知或者中断。在调用wait()之前,线程必须获取该对象的对象级锁...

2020-01-10 14:47:45

《java多线程编程核心技术》 第2章 对象及变量的并发访问

本章知识点:synchronized对象监视器为Object时的使用。synchronized对象监视器为Class时的使用。非线程安全是如何出现的。关键字volatile的主要作用。关键字volatile与synchronized的区别及使用情况。2.1 synchronized同步方法2.1.1 方法内的变量为线程安全方法内的变量不存在线程安全问题,永远都是线程安全的。2...

2020-01-02 19:09:13

《java多线程编程核心技术》第一章 Java多线程技能

1 currentThread()方法currentThread()方法可返回代码段正在被哪个线程调用的信息。案例1:package com.wuk.demo01;public class MyThread extends Thread{ public MyThread(){ //main System.out.println("MyThread...

2019-12-08 16:10:04

AS加入lomBok依赖

1 引入包在app下的build.gradle配置如下:dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.s...

2019-11-11 15:34:01

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享宗师
    分享宗师
    成功上传21个资源即可获取