自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(153)
  • 收藏
  • 关注

原创 Shiro-web相关认证授权

身份认证在 shiro 中,用户需要提供 principals (身份)和 credentials(证明)给 shiro,从而应用能验证用户身份: • 身份验证:一般需要提供如身份 ID 等一些标识信息来表明登录者的身 份,如提供 email,用户名/密码来证明。 在 shiro 中,用户需要提供 principals (身份)和 credentials(证 明)给 shiro,从而应用能验证用户身份: • principals:身份,即主体的标识属性,可以是...

2020-07-28 15:13:11 317

原创 Shiro-Spring-Web

1、web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/w

2020-07-28 14:57:06 340

原创 Shiro简介和Quickstart

Shiro安全框架Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、加密、会话管理、与 Web 集成、缓存等。相当简单,对比 Spring Security,可能没有 Spring Security 做的功能强大。Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在 JavaSE 环境,也可以用在 JavaEE 环境。功能点:Authentication:身份认证 / 登录,验证用户是不是拥有相应的身份;Authorization:授权,即权限验证,验证

2020-07-28 11:11:56 356

原创 权限管理

权限管理 权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要有用户和密码的系统。权限管理实现对用户访问系统的控制。按照安全规则或安全策略控制用户可以访问而且只能访问自己被授权的资源。权限管理分类从控制粒度来看,可以将权限管理分为两大类: 1、功能级权限管理---粗粒度(比较容易将权限管理代码抽取出来在系统架构级别统一管理)1、张三赋予“人力资源经理”角色,“人力资源经理”具有“...

2020-07-28 10:20:07 718

原创 Springboot项目集成Maven-goole-jib插件实现镜像打包

google-jib是什么 jib是谷歌公司推出的开源 Java 镜像构建工具,它可以将一个 Java 应用构建成 OCI 镜像或者是 Docker 镜像,是一个快速docker镜像构建工具,它可以配置在maven插件中,不需要编写 Dockerfile 或本机安装docker程序。它只将发生变更的层推送到容器镜像服务器大大节约了构建时间。jib插件标准的构建命令mvn compile jib:buildTar :将镜像生成tar文件,保存在项目的target目录下,在任何...

2020-07-23 11:23:34 2114

原创 将自己的镜像发布到docker hub上

将上篇文章自己创建的镜像push到docker hub1、注册docker hub账号,用户名为173170292392、推送镜像名称的规范docker push 注册用户名/镜像名3、tag命令修改为规范的镜像docker tag mycentos:0.1 17317029239/centos:0.0.14、登录docker login5、将镜像推送到docker hub,此时外网推送可能失败,失败了需要重试 docker push 17317029..

2020-07-20 14:57:27 512

原创 将自己的镜像推送到阿里云上

将新的镜像推到阿里云push/pull1、创建镜像仓库 命名空间 wxddong 仓库名称centos(因为我这里自定义了一个centos的docker镜像)点击管理后页面如下根据提示上传即可sudo docker login --username=wxd_1024 registry.cn-beijing.aliyuncs.comsudo docker tag [ImageId] registry.cn-beijing.aliyuncs.com/wxddong/centos...

2020-07-20 14:43:24 2037

原创 Springboot项目集成dockerfile-maven-plugin插件实现镜像打包

springboot项目用mvn将项目以及环境打包成docker镜像,直接启动镜像启动项目,没有了环境的搭建。直接运行镜像即可启动项目1、创建一个springboot项目2、DockerFile 内容FROM openjdk:8-jdk-alpineVOLUME /tmpADD spring-boot-docker-1.0.jar app.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar",".

2020-07-17 16:31:08 1424 1

原创 DockerFile

DockerFile是什么 Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。DockerFile相当于对镜像的描述,和java.class是对java类的描述类似 Person.java -------- Person.class image ----------------- DockerFile构建步骤maven构建java工程过程 1、编写pom文件...

2020-07-16 16:40:59 128

原创 Docker容器数据卷 和 数据卷容器

Docker容器数据卷是什么有什么用 Docker将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的以及容器之间希望有可能共享数据。 Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了。为了能保存数据在docker中我们使用卷。简单来说就是可以实现数据的持久化和数据的共享容器内添加数据卷的方法1、直接命令添加docke...

2020-07-16 13:35:09 534

原创 Docker镜像理解

UnionFS(联合文件系统) UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。Union 文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。D...

2020-07-16 11:28:46 350

原创 Docker常用命令

Docker常用命令1、辅助命令docker versiondocker info docker --help2、镜像操作检索:docker search 关键字 如:docker search mysq我们经常去docker hub上检索镜像的详细信息,如镜像的TAG。拉取:docker pull 镜像名:tag tag是可选的,tag表示标签,多为软件的版本,默认是latest列表:docker images ...

2020-07-15 18:39:46 126

原创 Docker linux安装

Lunx安装Docker1.查看内核版本 <Docker 要求 CentOS 系统的内核版本高于 3.10>uname -r 本机<内核版本: 3.10.0-327.el7.x86_64>2.把yum包更新到最新sudo yum update3.安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的su...

2020-07-15 11:46:56 131

原创 配置镜像加速

docker拉去镜像,默认是docker hub去拉取,外网很慢,这里可以配置国内服务镜像,有阿里云、网易等国内镜像可选择,我这里选择阿里云镜像登录阿里云管控台1、 sudo -i 切换到root用户2、vi /etc/docker/daemon.json 创建并粘贴镜像地址3、重新加载daemon.json 或者重启docker服务即可4、docker info 查看镜像的配置地址...

2020-07-15 11:43:11 374

原创 Docker Toolbox 和 Docker Machine玩转docker

Docker Machine Docker Machine 是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。 Docker Machine 也可以集中管理所有的 docker 主机,比如快速的给 100 台服务器安装上 docker。 Docker Machine 管理的虚拟主机可以是机上的,也可以是云供应商,如阿里云,腾讯云,AWS,或 DigitalOcean。 使用 docker-m...

2020-07-15 11:18:49 402

原创 Docker windows安装

一、安装方式1(Docker for Windows):Windows 10 Pro,企业和教育(1607周年纪念版,Build 14393或更高版本)上运行,家庭版的不适用 需要运行Microsoft Hyper-V,Docker for Windows安装程序将为您启用Hyper-V,并重新启动计算机。具体安装步骤详解看转载链接https://www.cnblogs.com/wyt007/p/10656813.html二、安装方式2(Docker Toolbox) ...

2020-07-15 10:19:23 227

原创 信号量:Semaphore

SemaphoreSemaphore就是一个信号量,它的作用是限制某段代码块的并发数。 Semaphore有一个构造函数,可以传入一个int型整数n,表示某段代码最多只有n个线程可以访问, 如果超出了n,那么请等待,等到某个线程执行完毕这段代码块,下一个线程再进入。 由此可以看出如果Semaphore构造函数中传入的int型整数n=1,相当于变成了一个synchronized了。Semaphore类位于java.util.concurrent包下,它提供了2个构造器://参数permits

2020-06-25 14:13:56 140

原创 Docker

DocKer定义 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中, 然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像。运行中的这个镜像称为容器,容器启动...

2020-06-19 15:29:37 197

原创 Runnable和Callable的区别

Runnable和Callable相同点和区别相同点:两者都是接口;都可用来实现多线程程序;都需要调用Thread.start()启动线程;不同点:两者最大的不同点是:实现Callable接口的任务线程能返回执行结果;而实现Runnable接口的任务线程不能返回结果; Callable接口的call()方法允许抛出异常;而Runnable接口的run()方法的异常只能在内部消化,不能继续上抛;以下网上抄的代码package com.inte.fork;/** * Created.

2020-05-20 10:46:35 429

原创 线程的8锁

/** * 1.两个普通同步方法,两个线程 ,标准打印,打印?// one two * 2.新增Thread.sleep(3000) 给getOne() 打印? // 3s后打印 one two * 3.新增普通方法 getThreee 打印?// 先打印three 3s后打印 one two * 4.两个普通同步方法,两个number对象,打印? // two 3s后打印 one *...

2019-12-25 14:55:06 167

原创 (四)Spring-AOP以及线程本地化ThreadLocal的使用

定义 AOP(Aspect Orenited Programming : 面向切面(方面)编程)是OOP的补充把多个类中共有的代码,抽取到一个类中成为切面类(此类用@Abpect修饰),抽取出来的代码成为切面,通过切入点表达式切入到指定的类中,用于实现功能的扩展,将目标代码(业务代码)和扩展代码(非业务代码)分离,降低耦合性。 比如 每个方法 打新日志,se...

2019-12-25 14:51:45 6694 1

原创 微信公众号支付(二)

在上篇文章只是描述了完成微信公众号支付的功能,但是公众号里面的页面如何实现呢一、进入微信公众号官网下载二维码关注公众号二、设置模板按如图设置后效果如下(可以自定义链接到自己的项目)...

2019-10-18 11:11:12 132

原创 CyclicBarrier

应用场景:每个线程代表一个跑步运动员,当运动员都准备好了之后,才一起出发,只要有一个人没准备好,大家都等待。public class UseCyclicBarrier { static class Runner implements Runnable { private CyclicBarrier barrier; private String name; ...

2019-08-14 16:20:34 281

转载 Dubbo常见知识点

Dubbo 支持哪些协议,每种协议的应用场景,优缺点?(默认使用 dubbo 协议) 1、dubbo: 单一长连接和 NIO 异步通讯,适合大并发小数据量的服务调用,以及消费者远大于提供者。传输协议 TCP,异步,Hessian 序列化; 2、rmi: 采用 JDK 标准的 rmi 协议实现,传输参数和返回参数对象需要实现Serializable 接口,使用java...

2019-08-13 10:42:18 244

原创 同步容器和并发简介

同步容器 可以简单地理解为通过synchronized来实现同步的容器,如果有多个线程调用同步容器的方法,它们将会串行执行。 比如Vector,Hashtable,以及Collections.synchronizedSet,synchronizedList等方法返回的容器。同步容器的弊端 性能问题:由于被 synchronized 修饰的方法,每次只允许一个线...

2019-08-13 10:27:46 136

原创 Dubbo分布式服务子系统的划分以及Dubbo服务接口的设计原则

服务子系统的数量把控 过多:可能划分过细,破坏业务子系统的独立性(如:支付订单、退款订单,用户、账户);部署维护工作量大,独立进程占用内存多 过少:没能很好的解耦;开发维护不好分工;升级维护影响面大服务子系统划分注意事项 1、不要出现A服务中的SQL需要链接查询到B服务中的表等情况,这样在A服务与B服务进行垂直拆库时就会出错 2、服务子系统间...

2019-08-02 16:29:07 246

原创 Dubbo服务的运行方式

Dubbo服务的运行方式1、使用Servlet容器运行(Tomcat、jetty等) 浪费资源增加运维压力(端口管理、容器管理等)2、自己建立main方法运行Spring容器 这样没有运用到Dubbo本身提供的高级特性,自己写的main方法可能会有缺陷,比如忘记优雅关机public class App { private static Logger...

2019-07-24 15:04:23 120 1

原创 NIO2.0

public class TestNIO2 { @Test public void test1() { Path path = Paths.get("e:/", "nio/hello.txt"); System.out.println(path.endsWith("hello.txt")); System.out.println(path.startsWith("e:/"))...

2019-07-22 16:45:15 75

原创 十三、NIO

Java NIO 简介Java NIO(New IO)是从Java 1.4版本开始引入的 一个新的IO API,可以替代标准的Java IO API。 NIO与原来的IO有同样的作用和目的,但是使用 的方式完全不同,NIO支持面向缓冲区的、基于 通道的IO操作。NIO将以更加高效的方式进行文 件的读写操作。Java NIO 与 IO 的主要区别 IO ...

2019-07-22 15:46:09 108

原创 十二、BIO/NIO/AIO

BIOBIO 就是传统的java.io包,它是基于流模型实现的,交互的方式是同步、阻塞方式,也就是说在读入输入流或者输出流时,在读写动作完成之前,线程会一直阻塞在那里,它们之间的调用时可靠的线性顺序。它的有点就是代码比较简单、直观;缺点就是 IO 的效率和扩展性很低,容易成为应用性能瓶颈。NIONIO 是 Java 1.4 引入的 java.nio 包,提供了 Channel、Se...

2019-07-22 10:21:04 114

原创 八、JDK1.8—新时间日期 API(java.time包)

新时间日期 API(java.time包)使用 LocalDate、LocalTime、LocalDateTime(人读的时间) LocalDate、LocalTime、LocalDateTime 类的实 例是不可变的对象,是线程安全的分别表示使用 ISO-8601日历系统的日期、时间、日期和时间。它们提供了简单的日期或时间,并不包含当前的时间信息。也不包含与时区相关的信息。注...

2019-07-19 15:19:58 275

原创 七、JDK1.8—Optional类

Optional<T> 类(java.util.Optional) 是一个容器类,代表一个值存在或不存在,原来用 null 表示一个值不存在,现在 Optional 可以更好的表达这个概念。并且可以避免空指针异常/* * 一、Optional 容器类:用于尽量避免空指针异常 * Optional.of(T t) : 创建一个 Optional 实例 * Optiona...

2019-07-19 14:04:47 101

原创 九、JDK1.8—并行流与串行流

并行流并行流就是把一个内容分成多个数据块,并用不同的线程分 别处理每个数据块的流。Java 8 中将并行进行了优化,我们可以很容易的对数据进行并 行操作。Stream API 可以声明性地通过 parallel() 与 sequential() 在并行流与顺序流之间进行切换。Fork/Join 框架Fork/Join 框架:就是在必要的情况下,将一个大任务,进行拆分(fork)成若...

2019-07-18 19:06:56 965

原创 六、JDK1.8—Stream API

StreamStream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式。注意: ①Stream...

2019-07-18 17:49:05 305

原创 四、JDK1.8—方法引用与构造器引用

方法引用 当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用!(实现抽象方法的参数列表,必须与方法引用方法的参数列表保持一致!)方法引用:使用操作符 “::” 将方法名和对象或类的名字分隔开来可以将方法引用理解为 Lambda 表达式的另外一种表现形式如下三种主要使用情况: 1、对象引用::实例方法 2、类::静态方法 3、类::实例方法...

2019-07-18 11:59:29 411

原创 三、JDK1.8—函数式接口

函数式接口只包含一个抽象方法的接口,称为函数式接口。 你可以通过 Lambda 表达式来创建该接口的对象。(若 Lambda表达式抛出一个受检异常,那么该异常需要在目标接口的抽象方法上进行声明)。我们可以在任意函数式接口上使用 @FunctionalInterface 注解,这样做可以检查它是否是一个函数式接口,同时 javadoc 也会包含一条声明,说明这个接口是一个函数式接口...

2019-07-16 12:37:49 303

原创 二、JDK1.8—Lambda表达式

Lambda表达式基础语法/* * 一、Lambda 表达式的基础语法:Java8中引入了一个新的操作符 "->" * 该操作符称为箭头操作符或 Lambda 操作符,箭头操作符将 Lambda 表达式拆分成两部分: * * 左侧:Lambda 表达式的参数列表 * 右侧:Lambda 表达式中所需执行的功能, 即 Lambda 体 * * 语法格式一:无参数...

2019-07-16 12:00:51 97

原创 五、JKD1.8—Lambda表达式和Stream API的简介

Lambda简介:Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。public class TestLDemo { @Test public void test1(){ ////之前的匿名内部类示例1 Comp...

2019-07-16 10:44:50 239

原创 十、JDK1.8—HashMap以及JVM的优化

JDK1.8以前的HashMap 原来的hashMap采用的数据结构是哈希表(数组+链表),hashMap底层是Entry类型的,名字叫做table的数组,当new一个hsahMap的时候会构造一个容量为16,负载因子为0.75的空hashMap,它的吞吐临界值为16 * 0.75 = 12。当添加达到吞吐临界值的时候会用resize的方法2倍扩容,并且通过transfer()将原...

2019-07-15 17:23:42 337

原创 (八)SpringBoot-Docker

简介Docker是一个开源的应用容器引擎;是一个轻量级容器技术;Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;运行中的这个镜像称为容器,容器启动是非常快速的。...

2019-07-09 10:38:27 115

空空如也

空空如也

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

TA关注的人

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