自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Security (二) demo

1、依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> &lt

2020-11-30 11:02:14 156

原创 Spring Security (一) 核心组件

1、SecurityContextHolderSecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保存在SecurityContextHolder中。获取用户信息Authentication authentication = SecurityContextHolder.getContext().getAuthentication();if (!authentication.isA

2020-11-27 17:23:29 564

原创 idea远程debug

1、测试代码@RestControllerpublic class TestController { @RequestMapping("/test") public Integer test(){ int a = 0; a++; a++; a++; return a; }}2、springboot maven插件打成jar因为自己的虚拟机中没装jdk,所以直接做成docker镜像吧FROM

2020-11-25 15:00:58 193

原创 docker swarm

1、工作原理操作都在管理节点上2、搭建集群四台虚拟机将108初始化docker swarm# 108[root@localhost ~]# docker swarm init --advertise-addr 192.168.0.108将107作为worker将入docker swarm# 107[root@localhost ~]# docker swarm join --token SWMTKN-1-0l21o6scw8u9xlmps0l20znvudzs7qj9jake

2020-10-25 16:05:44 216

原创 docker跨主机连接之weave

1、准备两台虚拟机192.168.0.105192.168.0.106节点间如果有防火墙,必须彼此放行TCP 6783 和UDP 6783/6784端口,这是weave控制和数据端口2、安装weaveweave githup地址:https://github.com/weaveworks/weave安装:# 105:[root@localhost ~]# wget -O /usr/bin/weave https://github.com/weaveworks/weave/relea

2020-10-25 15:43:33 453

原创 RabbitMQ进阶

1、消息何去何从1.1、mandatory参数当mandatory参数为true时,交换器无法根据自身的类型和路由键找到一个符合条件的队列,那么RabbitMQ会调用Basic.Return命令将消息返回给生产者。当mandatory参数为false时,则会将消息丢弃。生产者通过调用channel.addReturnListenner来获取返回生产者的消息。channel.basicPublish(EXHANGE_NAME, "ss", true, MessageProperties.TEXT_P

2020-10-18 22:08:15 209 1

原创 配置中心Spring Cloud Config

1、概念官网:https://cloud.spring.io/spring-cloud-config/reference/html/访问方式:/{application}/{profile}[/{label}]/{application}-{profile}.yml/{label}/{application}-{profile}.yml/{application}-{profile}.properties/{label}/{application}-{profile}.properties

2020-10-08 10:57:02 129

原创 Spring Cloud Gateway 网关

1、概述Spring Cloud Gateway是基于Spring Boot 2.x,Spring WebFlux和Project Reactor构建的。旨在提供一种简单而有效的方法来路由到API,并为它们提供跨领域的关注点,例如:安全性,监视/指标和弹性。2、三个关键Route:路由,网关的基本构建块。它由ID,目标URI,断言集合和过滤器集合定义。如果聚合断言为true,则匹配路由。Predicate: 断言,作为路由的匹配条件,Gateway 内置了多种 Predicate 的实现,提供了多

2020-10-06 17:46:21 273

原创 熔断降级Hystrix

1、概述系统负载过高,突发流量或者网络等各种异常情况介绍,常用的解决方案。熔断:保险丝,熔断服务,为了防止整个系统故障,包含子和下游服务​ 下单服务 --> 商品服务 --> 用户服务 (出现异常-》熔断)降级:抛弃一些非核心的接口和数据相同点:1)从可用性和可靠性触发,为了防止系统崩溃2)最终让用户体验到的是某些功能暂时不能用不同点:1)服务熔断一般是下游服务故障导致的,而服务降级一般是从整体系统负荷考虑,由调用方控制2、Spring Cloud Ne

2020-09-27 20:16:56 632

原创 声明式调用Feign

1、概述Spring Cloud OpenFeign实现了声明式的http调用,并集成Ribbon,提供负载均衡的功能,整合 Hystrix,提供服务容错能力。2、环境准备order-service去调用product-service,在product-service有一个Controller,order-service去掉这个服务@RestController@RequestMapping("/api/v1/product")public class ProductController {

2020-09-27 15:48:16 283

原创 负载均衡Ribbon

1、准备环境Eureka注册中心注册了两个商品服务product-service,端口分别是8081,8082然后创建一个order-service服务区调用product-serviceproduct-service中有一个Controller, 每次被调用会输出自身的端口@RestController@RequestMapping("/api/v1/product")public class ProductController { @Value("${server.port}")

2020-09-22 16:00:59 206

原创 注册中心Eureka

1、概述Eureka 是 Netflix 开源的注册中心组件,分成Eureka Client 和 Eureka Server 两个角色。整体架构如下图所示:应用服务的提供者向Eureka Server注册自身。应用服务的消费者通过Eureka Server获取服务列表。现在搭建一个这样的服务示例。2、搭建注册中心Eureka-Server2.1、pom<?xml version="1.0" encoding="UTF-8"?><project xmlns="http:/

2020-09-22 11:56:53 198

原创 IK分词器

1、概述IKF分词器是个中文的分词器,分ik_smart和ik_max_wordik_smart为最少切分,ik_max_word为最大粒度切分下载地址 https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.1/elasticsearch-analysis-ik-7.6.1.zip2、在线脚本IK分词器进入es容器docker exec -it elasticSearch7.6.1 /bin/bas

2020-09-19 17:59:30 192

原创 docker安装es和es-head

1、Docker安装es# 自定义网络[root@localhost data]# docker network create elasticSearch --subnet 183.38.0.0/16#下载镜像[root@localhost data]# docker pull elasticsearch:7.6.1#启动容器docker run --name elasticSearch7.6.1 -p 9200:9200 -p 9300:9300 -e "discovery.type=sing

2020-09-19 13:02:56 1416

原创 Dockerfile

dockerfile是用来构建docker镜像的文件! 命令参数脚本!构建步骤:编写一个dockerfile文件docker build 构建成为一个镜像docker run运行镜像docker push 发布镜像(DockerHub、阿里云镜像仓库 私有/共有)查看官方是怎么做的:可以看到官方镜像都是基础包,很多功能没有,我们通常会自己搭建自己的镜像1、dockerfile基础知识每个指令都必须是大写字母按照从上到下顺序执行*#*表示注释每一个指令都会创.

2020-09-13 18:00:31 193

原创 docker容器数据卷

1、什么是容器数据卷docker 将应用和环境打包成镜像!如果数据在容器中,那么删除容器的时候,数据就会丢失,需求:数据持久化;比如mysql容器删除了,我们希望 数据可以存储到本地容器间可以共享数据!docker产生的数据,可以同步到本地!这就是卷技术!将容器内的目录挂载到Linux上面。** 总结:容器的持久化和同步操作!容器间也可以数据共享!**2、使用数据卷方式一:直接使用命令挂载 -vdocker run -it -v 主机目录:容器内目录 -p 主机端口:容器内端口

2020-09-13 17:53:26 545

原创 docker网络

1、理解docker0网络清理环境[root@localhost ~]# docker rm -f $(docker ps -aq)[root@localhost ~]# docker rmi $(docker images -aq)测试问题:docker 是如何处理容器网路访问的[root@localhost ~]# docker run -d -P --name tomcat01 tomcat# 查看容器内部网路 发现容器启动时会得到一个 eth0@if47 的ip

2020-09-13 17:42:14 478

原创 分布式系统认证方案

b站黑马Spring Security视频笔记分布式系统认证技术方案:流程描述:用户通过接入方(应用)登录,接入方采取OAuth2.0方式在统一认证服务(UAA)中认证。认证服务(UAA)调用验证该用户的身份是否合法,并获取用户权限信息。认证服务(UAA)获取接入方权限信息,并验证接入方是否合法。若登录用户以及接入方都合法,认证服务生成jwt令牌返回给接入方,其中jwt中包含了用户权限及接入方权限。后续,接入方携带jwt令牌对API网关内的微服务资源进行访问。.

2020-09-11 16:55:09 706

原创 Spring Security入门

b站黑马Spring Security学习笔记1、概念1.1、什么是认证用户认证就是判断一个用户的身份是否合法的过程。用户去访问系统资源时系统要求验证用户的身份信息,身份合法方可继续访问,不合法则拒绝访问。常见的用户身份认证方式有:用户名密码登录,二维码登录,手机短信登录,指纹认证等方式。1.2、什么是授权授权是用户认证通过后,根据用户的权限来控制用户访问资源的过程。拥有资源的访问权限则正常访问,没有权限则拒绝访问。1.3、授权的模型授权就是系统对主体访问资源进行许可的操作.

2020-09-11 14:20:17 346

原创 springboot集成druid数据源

1、引入依赖<?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/mave

2020-09-09 09:16:34 186

原创 springboot集成mybatis

1、MyBatis + XML1.1、引入依赖<?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.a

2020-09-08 14:17:26 313

原创 springboot定时任务

1、Spring Task1.1、引入配置文件<?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.a

2020-09-07 22:02:08 125

原创 docker镜像原理

1、镜像是什么镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于环境开发的软件,它包含某个软景运行的所有内容,包括代码、运行时库、环境变量和配置文件。2、镜像的加载原理UnionFS(联合文件系统)对文件系统的修改可以一层一层叠加。Docker镜像加载原理docker镜像是由一层一层的文件系统组成。bootfs:boot file systemrootfs:root file system3、分层的理解docker image inspect redis:lat

2020-09-07 21:57:45 210

原创 springboot异步任务

1、概述在开发中,我们一般是同步调用,在一些和主线程关联度较低的逻辑,我们可以使用异步调用。例如说:记录用户访问日志到数据库。在 Spring Framework 的 Spring Task 模块,提供了 @Async注解,可以添加在方法上,自动实现该方法的异步调用。2、简单使用2.1、引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp

2020-09-07 17:11:29 274

原创 springboot集成Quartz

Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。在 Quartz 体系结构中,有三个组件非常重要:Scheduler :调度器Trigger :触发器Job :任务1、Quartz单机版1.1、引入依赖<dependency> <groupId>org.springframework.boot</gr.

2020-09-06 15:35:01 389

原创 docker命令

docker命令文档1、帮助命令docker version # 显示docker的基本信息docker info # 系统信息,镜像和容器的数量docker 命令 --help # 全部信息2、 镜像命令命令作用docker images查看所有本地主机上的镜像docker search搜索仓库中的镜像,相当于网页搜索docker pull下载镜像docker rmi删除镜像2.1、docker images查看所有本地主机上的镜像[r

2020-09-02 18:00:40 472

原创 docker的安装

1、docker的组成几个概念:镜像(image):docker镜像好比一个模板,可以通过这个模板来创建容器(container),一个镜像可以创建多个容器,类似java中的Class容器(container):类似java中通过Class创建的实例,容器可以理解为一个简易的linux系统仓库(repository):存放镜像的地方,分为共有仓库和私有仓库Docker Hub:国外的阿里云:配置镜像加速环境centos7[root@localhost ~]#

2020-09-01 17:43:45 81

原创 springboot WebSocket入门

1、概述WebSocket 协议提供了服务端主动向客户端发送数据的能力,可以用于消息订阅服务,聊天 IM 即使通讯功能。WebSocket 使用TCP 通信,可以避免重复创建连接,提升通信质量和效率,支持跨域。2、入门2.1、引入依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId></dependenc

2020-08-31 14:27:51 204 1

原创 springboot参数校验 Validation

1、概述在做开发的时候后端做参数校验检验必不可少,java提出了 Bean Validation 规范,并且经理了JSR303、JSR349、JSR380 三次标准。Bean Validation 只提供规范,不提供具体的实现。目前大多数开发中我们使用 Hibernate Validator 这个实现。在spring 项目中,Spring Validation 提供了对 Bean Validation 的内置封装支持,可以使用 @Validated 注解,实现声明式校验,而无需直接调用 Bean

2020-08-28 15:50:33 335

原创 springboot拦截器

1、用途我们在使用springMVC的使用HandlerInterceptor对请求进行拦截处理,比如记录日志权限验证限流处理…public interface HandlerInterceptor { default boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { return true;

2020-08-27 16:43:48 349

原创 springboot全局异常处理

1、错误码枚举类@Getter@AllArgsConstructorpublic enum ServiceExceptionEnum { SUCCESS(0, "成功"), SYSTEM_ERROR(1001, "服务端异常"), CONSTRAINT_VIOLATION(1002, "数据完整性异常"), // ========== 用户模块 ========== USER_NOT_FOUND(2001002000, "用户不存在"), // ==

2020-08-27 15:59:03 243

原创 springboot热部署

1、spring-boot-devtools引入spring-boot-devtools<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <!-- 可选 --></depe

2020-08-27 14:08:02 57

原创 springboot配置文件

springboot配置文件1、YAML语法:1.1、基本语法k:(空格)v:表示一对键值对(空格必须有);以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的server: port: 8081 path: /hello1.2、值的写法字面量:普通的值(数字,字符串,布尔)k: v:字面直接来写;​ 字符串默认不用加上单引号或者双引号;​ “”:双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思​ name: “zha

2020-08-16 21:08:59 78

原创 mysql 比较运算符和函数

2017-08-19 23:50:57 738

原创 mysql 数值运算符和函数

2017-08-19 23:22:47 264

原创 mysql 运算符和函数

concat()concat_ws()format()将数字格式化,返回字符型,这里保留两位小数lower(),将字符串转化成小写,upper(),将字符串转化成大写left(),right();

2017-08-19 23:14:26 192

原创 mysql 多表更新

1.子查询是指在另一个查询语句中的SELECT子句。  例句:  SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2);  其中,SELECT * FROM t1 ...称为Outer Query[外查询](或者Outer Statement),  SELECT column1 FROM

2017-08-13 23:16:43 426

原创 mysql 子查询

2017-08-13 20:40:19 173

原创 mybatis中的OGNL表达式

ognl语言可以支持java对象的方法  如:"".equals(command.trim())  可以写成下面的样子""是""的转义应用log4j调试mybatis语句批量删除常用标签collection是一对多关系  association是多对一关系${}没有预编译的效果,不会被替换成占位

2017-08-13 00:40:15 858

原创 mysql(八)操作数据表中的记录

1.插入记录首先创建一张数据表users现在插入一条记录 id 是自增时,可以填写null再插入一条记录可以发现 id 变成2了我们也可以将id 写成default如上图id变成3了我们也可以在values中填写表达式,如下age  3*7-1如果字段存在默认约束时,也可以写成default 如age 可以写delau

2017-07-30 01:46:36 462

空空如也

空空如也

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

TA关注的人

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