- 博客(503)
- 资源 (27)
- 收藏
- 关注
转载 [Vue3] 关于vue3+ts中使用props进行 interface 类型限制设置默认值报错问题(props: Readonly<Props>))
Type '{}' is not assignable to type '(props: Readonly) => object'. Type '{}' provides no match for the signature '(props: Readonly): object'
2022-12-28 14:26:46
1651
原创 [Vue3] TS7016: Could not find a declaration file for module ‘../assets/js/util.js‘
vue3 TS7016: Could not find a declaration file for module '../assets/js/util.js'. 'D:/study_workspace/vite-project/src/assets/js/util.js' implicitly has an 'any' type.
2022-12-23 10:37:50
269
转载 【Java面试题】Spring 为何需要三级缓存解决循环依赖,而不是二级缓存
1.Spring bean生命周期2.Spring 如何解决 bean 之间循环依赖
2022-06-01 17:00:05
604
转载 基于注解方式@ResponseResult实现前后端分离项目,接口统一类型的返回
题外话:前后端的工作职责越来越明确,现在的前端都称之为大前端,技术栈以及生态圈都已经非常成熟;以前后端人员瞧不起前端人员,那现在后端人员要重新认识一下前端,前端已经很成体系了。一般系统的大致整体架构图如下:需要说明的是,有些小伙伴会回复说,这个架构太简单了吧,太 low 了,什么网关啊,缓存啊,消息中间件啊,都没有。因为这篇我主要介绍的是 API 接口,所以我们聚焦点,其他的模块小伙伴们自行去补充。 接口交互 前端和后端进行交互,前端按照约定请求 URL 路径,并传入相关参数,后端服务器
2022-05-16 09:38:01
1108
1
转载 Spring Security 捕获 filter 层面异常,返回我们自定义的内容
通常,我们通过@ControllerAdvice和@ExceptionHandler来捕获并处理Controller层面的异常。但是,filter是在controller层之前的,需要先通过filter才能到达controller层,此文就介绍一下如何捕获filter层面的异常。 Spring 的异常会转发到 BasicErrorController 中进行异常写入,然后才会返回客户端。所以,我们可以在 BasicErrorController 对 filter异常进行捕获并处理。所以,我们需要重.
2022-05-10 09:48:12
907
原创 Spring Security日常
1.动态权限管理规则参考:《深入浅出Spring Security》 13.4.5 动态权限管理规则深入浅出Spring Security下载地址:链接:https://pan.baidu.com/s/1_4sCFFCzyeZprGyEehQFeA?pwd=f8at
2022-05-06 11:01:21
735
原创 Spring Security跨域问题解决
前文介绍了:Spring 处理跨域问题的三种方案现在来看看 Spring Security 的跨域问题解决方案,共有三种方案。(摘自《深入浅出Spring Security》)在实际项目使用中,推荐使用第三种方案!!!(11.3.3 专业解决方案)good luck...
2022-05-05 11:19:27
2393
6
原创 Spring 处理跨域问题的三种方案
Spring 中关于跨域,一共有如下三种处理方案:(摘自《深入浅出Spring Security》)good luck
2022-05-05 09:51:10
2580
转载 RSA加密、解密、签名、验签的原理及方法
一、RSA加密简介 RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)。二、RSA加密、签名区别 加密和签名都是为了安全性考虑,但略有不同。常有人问加密和签名是用私钥还是公钥?其实都是对加密和签名的作用有所混淆。简单的说,加密是为了防
2022-04-24 10:25:54
3806
原创 Spring Cloud Gateway 动态路由管理,一点都不吹,应该没有比这更好的管理系统了吧
本文介绍的 Spring Cloud Gateway 动态路由。不比其他博客通篇 copy 的 Gateway 动态路由,我为你们提供了一套完整的动态路由管理系统。提供以下3个项目:Spring Cloud Gateway 动态路由配置源码Spring Cloud Gateway 动态路由后台管理项目源码Spring Cloud Gateway 动态路由后台页面源码(基于Vue)先来几个截图吧。 以往一篇文章:Spring Cloud Gateway 微服务新一代网关,已经有详细介
2022-04-18 10:47:46
2569
原创 Feign 使用 @SpringQueryMap 来解决多参数传递问题
在实际项目开发过程中 , 我们使用 Feign 实现了服务与服务之间的调用。 但是在很多情况下, 多参数传递是无法避免的。在 Web 开发中,Spring MVC 是支持 GET 方法直接绑定 POJO 的。但是 Feign 的实现并没有覆盖所有的 Spring MVC 的功能。 在Spring Cloud 在 2.1.x 版本中,提供了 @SpringQueryMap 注解,通过该注解可以传递对象参数。(在旧版本以前,我们可以通过拦截器的方式,来将多参数转换成 Map 的方式进行传递。有了注解方式
2022-04-01 14:39:54
3281
原创 利用 Spring Security 实现微服务之间简单的安全校验
1.服务提供方添加账号、密码校验1.1 引入pom依赖1.2 application.yml 对账号、密码进行配置2.服务消费方进行服务调用2.1 RestTemplate方式1. HttpHeaders头信息配置2.将头信息添加到 RestTemplate 调用中2.2 Feign方式1. FeignConfig 配置2. 在@FeignClient 中,指定configuration3.在微服务中开启统一的安全服务3.1 服务提供方添加账号、密码校验3.2 添加全局权限校验配置类
2022-03-07 14:42:42
5392
3
原创 Turbine 聚合 Hystrix,实现在 Hystrix Dashboard 中监控多个服务
在上篇文章:Hystrix Dashboard 可视化监控,已经了解了 Hystrix Dashboard 的基本使用。它的主要功能是可以对某一项微服务进行监控,但真实情况下,不可能只对一个微服务进行监控,我们有很多微服务,所以我们需要对很多微服务进行监控,这个时候就需要使用到Turbine [ˈtɜːbaɪn] 来完成。Turbine 就是来聚合所有相关的 hystrix.stream 流的方向,然后在 Hystrix Dashboard 中显示。1.介绍单个hystrix服务的监控(如下图):
2022-01-28 10:38:59
603
原创 JUC 全家桶系列,一键三连就完事了
JUC、AQS、CAS、Lock、ReentrantLock、Atomic、Future、Executors、JUC工具类、JUC集合类、Fork-Join框架
2021-12-07 14:15:57
833
1
原创 JUC 阻塞队列
本文目录1.阻塞队列介绍2.BlockingQueue 核心方法1.放入数据2.获取数据3.JUC 中的 BlockingQueue1.ArrayBlockingQueue(常用)2.LinkedBlockingQueue(常用)3.DelayQueue4.PriorityBlockingQueue5.SynchronousQueue6.LinkedTransferQueue7.LinkedBlockingDeque4.ArrayBlockingQueue例子1.阻塞队列介绍 阻塞队列,顾名思义,首先
2021-12-01 15:47:17
550
原创 Atomic 原子类
本文目录1.基本类型1.AtomicInteger2.AtomicLong3.AtomicBoolean2.引用类型1.AtomicReference2.AtomicMarkableReference3.AtomicStampedReference3.数组类型1.AtomicIntegerArray2.AtomicLongArray3.AtomicReferenceArray4.原子更新字段类1.AtomicIntegerFieldUpdater2.AtomicLongFieldUpdater3.Atomi
2021-12-01 09:23:11
426
原创 synchronized 原理、使用、锁升级过程,写到我要吐血了
本文目录1.锁的分类2.synchronized 含义3.synchronized 三种加锁方式1.修饰实例方法2.修饰静态方法3 修饰代码块1.变量锁2.实例对象锁3.当前类的 Class 对象锁4.synchronized 底层原理1.Monitor 管程对象5.synchronized 锁优化升级过程 多线程编程中,会出现多个线程同时访问同一个共享、可变资源的情况,这个资源我们称之其为临界资源;这种资源可以是:对象、变量、文件等。共享:资源可以由多个线程同时访问可变:资源在其生命周期内可以被
2021-11-23 16:10:06
4348
15
原创 JMM内存模型 & 多线程三大特性
提起并发编程,就绕不开并发的三大特性(1.原子性、2.可见性、3.有序性);要解决并发编程中遇到的这三类问题,可能很多人也知道大名鼎鼎的 JMM 内存模型,但又有多少人知道 JMM 内存模型是如何解决这三大问题的呢?本文就从原理层面来细细讲解。 在《并发编程》板块,已经有介绍到 1.计算机原理结构 2.MESI缓存一致性协议。这两篇内容介绍的也只是在硬件CPU层面上的解决方案。在 Java 软件层面,就是我们接下来要介绍的 JMM 内存模型,JMM 内存模型就是基于 CPU 底层架构的一种抽象
2021-11-19 17:16:26
881
1
原创 提起线程,你不了解的那些事
本文目录1.什么是线程1.用户级线程2.内核级线程3.系统空间2.Java 线程与内核线程的关系3.Java为什么用到多线程1.什么是线程上下文切换2.死锁检测方法 对 MESI 缓存一致性协议,有了初步的了解后,本文来介绍偏内容性的一个话题:线程。 Java 开发者对多线程一定不会陌生,那么线程到底是啥?Java 又是如何利用多线程来调度/使用 CPU 来完成操作的呢。1.什么是线程 线程(英语:thread)是操作系统调度CPU的最小单位。它被包含在进程之中,是进程中的实际运作单位,进程是系统
2021-11-16 16:51:14
2319
13
原创 MESI 缓存一致性协议
本文目录场景再现1.总线锁2.MESI 缓存一致性协议1.MESI 协议概念2.通过例子来介绍 MESI 协议1.MESI 场景2.MESI 协议下,执行步骤3.MESI协议失效问题场景再现场景: 服务器有2个线程t1、t2在跑。都对 x=1 分别+1,期望最终结果:x = 3 问题分析: 首先会将 x=1 加载到主内存中,然后 t1线程,会获取到 x=1 的内存地址,然后在寄存器、CPU缓存(L1、L2、L3)中是否存在(L1最优先,L2中如果有,则copy一份到L1,最后加载到寄存器进
2021-11-15 17:55:05
1209
2
原创 计算机原理结构
1.现代计算机理论模型与工作原理2.计算机五大核心组成部分3.现代计算机基本硬件结构4.CPU内部结构划分1.控制单元2.运算单元3.存储单元5.计算机硬件多CPU架构1.多CPU2.CPU多核3.CPU寄存器4.CPU缓存5.内存1.CPU读取存储器数据过程2.多线程环境下存在的问题1.缓存一致性问题2.指令重排序问题6.CPU计算完成后,何时将数据同步回内存中7.案例分析1.现代计算机理论模型与工作原理 现代计算机模型是基于冯.诺依曼计算机模型。 计算机在运行时,先从内存中取出第
2021-11-14 13:58:12
6685
3
原创 vue部署至Tomcat,F5刷新报404问题解决
我做的是一个移动端项目,使用的是 Vue + app 包壳的方式。在 PC 端测试时发现 F5 刷新直接报 404 问题,虽然在移动端包壳后不会有刷新的功能,但是强迫症搞怪,用着真是难受,必须给它搞定,所以就有了本篇文章。Vue 部署至 Tomcat 会遇到的问题汇总:1.在将vue项目部署至tomcat后,js、css、img、index.html等文件,都有被缓存的可能。 解决js、css、img 缓存问题:可以使用时间戳的方式 参考:Vue项目部署,解决js、css、img被缓存问题
2021-11-09 11:04:32
1459
原创 多线程异步调用实现方式:CompletableFuture
本文目录CompletableFuture 简介Future 与 CompletableFutureCompletableFuture 入门1.使用 CompletableFuture2.没有返回值的异步任务3.有返回值的异步任务4. 线程依赖5.消费处理结果6.异常处理7.结果合并8.合并多个任务的结果:allOf 与 anyOf9.其它一些方法 创建线程时,除了 实现Callable接口,重写call()方法,通过FutureTask包装器来创建Thread线程,通过 get() 方法获得返回值外。
2021-11-01 15:56:16
761
2
转载 ArrayList.trimToSize()方法
在看《Java 核心技术卷一》时,认识到了trimToSize()这个方法。原文内容如图所示。接下来拿例子来参考一下:下文内容转载自其他博主blog,讲解的很清晰。 前几天看了Java ArrayList,没有明白trimToSize()这个方法是什么意思,所以看了一下源码并且debug一下自己的一个例子,明白了其中的含义。贴在这里。ArrayList al = new ArrayList(10);for(int i=0;i<10;i++){ al.add(i);}al.
2021-09-03 22:31:46
227
原创 Hive开篇基本介绍
本文目录Hive是个啥玩意1.Hive简介2.Hive优缺点3.Hive架构图4.Hive 运行机制5.Hive VS 数据库Hive是个啥玩意 学习完 Hadoop 之后,在Hadoop阶段主要就是 MR的编写。但是写 MR 还是有点麻烦,会写很多无意义的代码,然而有意义的代码只有那么几行,就是map 和 reduce 中的一些业务,Driver中的代码贼无聊,也没有意义,此时Hive就出世了。如需学习 Hadoop 专栏,参考:Hadoop 教程目录 Hive 将无聊的代码封装起来了,只需要我
2021-08-31 10:21:03
143
转载 Java 枚举 结合switch的用法
因有个判断需要处理不同系统类型跳转不同 系统。 考虑用switch + 枚举的方式。 具体使用案例如下:package com.b2b.common.constant; import com.base.utils.base.StringUtils; /** * 系统类型枚举 * @author shijing */public enum SystemType { ERP(0,"ERP"), ORDER_PLATFORM(1,"订货平台"), PERSONAL(
2021-08-28 13:52:44
5948
原创 【Java面试题】为什么会出现4.0-3.6=0.3999999999这种现象?
为什么会出现4.0-3.6=0.3999999999这种现象? 很多人都知道:浮点数值不适用于无法接受舍入误差的金融计算中,即:我们常说的丢失精度问题。 很多人还知道这样一句话:这种舍入误差的主要原因是浮点数值采用二进制系统表示, 而在二进制系统中无法精确地表示分数 1/10。这就好像十进制无法精确地表示分数 1/3—样。针对十进制,1除以3是除不尽的。很好理解,因为我们一直接触的就是十进制,等于0.333333… 很好理解但是:二进制系统中无法精确地表示分数 1/10。为啥呢。
2021-08-28 09:45:40
6867
37
原创 3.Kafka常用命令
1、查看当前服务器中的所有topicbin/kafka-topics.sh --list --zookeeper zk01:21812、创建topicbin/kafka-topics.sh --create --zookeeper zk01:2181 --replication-factor 2 --partitions 3 --topic orderMq备注: replication-factor 备份数(2个备份) partitions 3 kafka分区数(3个分区)
2021-08-06 15:03:39
559
原创 Flume自定义Source、Sink、数据流监控
参考: 3.6 自定义Source 3.7 自定义Sink 3.8 Flume数据流监控 地址: 阿里云盘:https://www.aliyundrive.com/s/qZqsEN47GZQ 百度网盘:https://pan.baidu.com/s/1j4t8w0rtZ5gVNdy8Fqwo2g 提取码:cobq
2021-08-05 11:42:03
138
原创 Flume案例十:多路复用通道选择器(Multiplexing Channel Selector)
Flume案例十:多路复用通道选择器(Multiplexing Channel Selector)选型: Flume-1:taildir source + memory channel + avro sink + Multiplexing Channel Selector(多路复用渠道选择器) Flume-2:avro source + memory channel + logger sink Flume-3:avro source + memory channel + logger sink
2021-06-28 17:24:16
1015
原创 Flume案例九:多数据源聚合
Flume案例九:多数据源聚合选型: Flume-1:taildir source + memory channel + avro sink Flume-2:taildir source + memory channel + avro sink Flume-3:avro source + memory channel + hdfs sink
2021-06-28 15:30:17
305
2
原创 Flume案例八:负载均衡(Load balancing Sink Processor)
Flume案例八:负载均衡(Load balancing Sink Processor)选型: Flume-1:taildir source + memory channel + avro sink + Load balancing Sink Processor(负载均衡) Flume-2:avro source + memory channel + logger sink Flume-3:avro source + memory channel + logger sink
2021-06-25 17:03:07
324
6
原创 Flume案例七:故障转移(Failover Sink Processor)
Flume案例七:故障转移(Failover Sink Processor)选型: Flume-1:netcat source + memory channel + avro sink + Failover Sink Processor(故障转移) Flume-2:avro source + memory channel + logger sink Flume-3:avro source + memory channel + logger sink
2021-06-25 16:19:40
217
1
原创 Flume案例六:复制通道选择器(Replicating Channel Selector)
Flume案例六:复制通道选择器(Replicating Channel Selector)选型: Flume-1:taildir source + memory channel + avro sink + Replicating Channel Selector(复制通道选择器) Flume-1:avro source + memory channel + hdfs sink Flume-1:avro source + memory channel + file roll sink(写入到本地文件
2021-06-24 17:29:29
323
CentOS7-4.19版本内核
2022-08-24
hadoop-2.10.1.tar.gz(手动编译后的版本)
2020-10-20
Spring Boot 自定义starter启动器(demo).zip
2020-04-05
Spring Boot自定义异常内容展示代码.zip
2020-04-01
spring-framework-5.0.2.RELEASE-中文注释版.zip
2020-03-10
Flink-MysqlTwoPhaseCommit.zip
2020-02-27
Flink新工程.zip
2020-02-26
SpringBoot 基于注解,实现多数据源切换.zip
2019-10-30
抽象工厂模式Demo实例
2019-04-27
Vue.js 实战 问卷调查demo
2019-04-03
SpringBootDemo3(boot整合thymeleaf,thymeleaf例子,mybatis,druid,mybatis自动生成代码)
2018-07-20
SpringBootDemo2(boot整合thymeleaf,mybatis,druid,mybatis自动生成代码)
2018-07-20
SpringBootDemo1(boot整合jsp,mybatis,druid,mybatis自动生成代码)
2018-07-20
mvcDemo3(基于mvcDemo2,添加事务,aop机制)
2018-07-20
mvcDemo2(基于mvcDemo1,添加druid数据源)
2018-07-20
mvcDemo1(最基础的Web开发框架)
2018-07-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人