- 博客(117)
- 收藏
- 关注
原创 zheng的开源项目启动碰到的报错
1.jetty启动报springfox-swagger-ui-2.4.0.jar的错误原因是jetty版本太低,更新成9.4.14.v20181114就可以重新启动2.jackson版本找不到远程仓库已经找不到2.9.9.3的版本改成2.10.1即可
2022-10-22 07:03:56
267
原创 AOP相关
AOP过滤器切面拦截器都需要声明为Bean才能生效,拦截器需要注册到配置当中,且配置类需要能被扫描得到注意顺序,一般是先过滤器,然后拦截器,最后才是切面严格4种方式静态增强(不常用)agent需要配置javaagentajc方式,需要pom里面配置插件代理增强jdk基于接口Proxycglib继承Enhancer
2022-10-22 07:03:14
86
原创 RBAC角色权限
RBAC角色权限用户角色权限菜单权限资源权限(接口)岗位表角色组织表角色权限表用户角色关联表组织(部门)认证流程用户通过前端系统发送登录请求,请求中携带账号、密码、验证码等信息。前端登录请求首先请求到网关服务,网关服务将请求路由到权限微服务。权限微服务进行认证操作,如果认证通过则生成wt token返回给前端,同时将用户拥有的资源权限使用userld作为key保存到缓存中。注:缓存中保存的用户资源权限是由pd_auth_resource资源表中的method和urI两个字段的值
2022-10-21 11:54:42
331
原创 面试中的问题
面试中的问题知学云redis哨兵模式选举机制netty解析参数如何通知mvc来处理或者通过什么方式来通知处理器有几万个channel如何通知具体有I/O事件的Channelredis删除大键用什么命令可以使用渐进式删除,对 Hashes, Sorted Sets, Lists, Sets 分别处理,思路相同,先逻辑删除,通过 scan 命令遍历大key,每次取得少部分元素,对其删除,对key改名,使客户端无法使用原key,然后使用批量小步删除。4.0版本以后可以使用 UNLINK 命令,后台
2022-10-21 11:53:25
181
原创 分布式缓存
分布式缓存并发能力 搭建主从集群,实现读写分离故障恢复问题 利用Redis哨兵,实现健康检测和自动恢复存储能力问题 搭建分片集群,利用插槽机制实现动态扩容数据丢失问题 实现Redis数据持久化直接看B站黑马视屏,redis实战视屏
2022-10-21 11:52:20
67
原创 java中的反码与补码概念
java中的反码与补码概念正数反码、补码都与原码一样比如数字40原码:00101000反码:00101000补码:00101000负数反码:原码中除去符号位,其他的数值位按位取反,即0变1,1变0补码:反码+1比如数字-216原码:1000000011011000反码:1111111100100111补码:1111111100101000可以看到,对于正数,其原码、反码、补码相同。对于负数,原码中最高位用来表示符号,反码就是除了最高位外,其余位取反,补码就
2022-10-21 11:51:32
183
原创 安全校验相关
安全校验xss跨站脚本攻击(Cross Site Scripting)伪造会话(基于XSS实现CSRF)劫持cookie恶意代码执行可用Antisamy框架跨域csrf(Cross Site Request Forgery) 跨站请求伪造伪造用户身份操作为什么 Cookie 无法防止 CSRF 攻击,而 Token 可以CSRF攻击只是借用了Cookie,并不能获取Cookie中的息,所以不能获取Cookie中的token不论是 Cookie 还是 Token 都无法避免 跨站
2022-10-21 11:51:04
97
原创 安装OpenResty
安装OpenResty1.安装首先你的Linux虚拟机必须联网1)安装开发库首先要安装OpenResty的依赖开发库,执行命令:yum install -y pcre-devel openssl-devel gcc --skip-broken2)安装OpenResty仓库你可以在你的 CentOS 系统中添加 openresty 仓库,这样就可以便于未来安装或更新我们的软件包(通过 yum check-update 命令)。运行下面的命令就可以添加我们的仓库:yum-config-mana
2022-10-21 11:50:31
402
原创 typescript
typescript动态类型意味着运行代码时才知道发生什么javascript静态类型意味着在代码运行前,就对它的行为做出预测typescript,需要经过编译成最终的javascirpt才能被执行,简单理解就是类型检查类型位置:声明可以加在变量,参数,返回值上,只要可以推断出具体类型,就可以省略编译后都会被擦除,不会出现关键字了stringnumberbooleannumber[],string[],boolean[]以此类推anytype与interface复杂类型可以定义具体
2022-10-21 11:49:16
233
原创 Nacos安装指南
Nacos安装指南1.Windows安装开发阶段采用单机安装即可。1.1.下载安装包在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码:GitHub主页:https://github.com/alibaba/nacosGitHub的Release下载页:https://github.com/alibaba/nacos/releases如图:本课程采用1.4.1.版本的Nacos,课前资料已经准备了安装包:windows版本使用nacos-serv
2022-10-21 11:48:44
636
原创 Throwable异常
Throwable异常ExceptionChecked ExceptionIO 相关的异常ClassNotFoundExceptionSQLExceptionUnchecked ExceptionRuntimeException及其子类NullPointerException(空指针错误)IllegalArgumentException(参数错误比如方法入参类型错误)NumberFormatException(字符串转换为数字格式错误,IllegalArgumentExcept
2022-10-20 07:29:49
152
原创 定时任务相关
定时任务单机TimerScheduledExecutorService常用ScheduledThreadPoolExecutorSpring Task底层是基于ScheduledThreadPoolExecutor时间轮(底层基于数组)分布式Quartz优点: 可以与 Spring 集成,并且支持动态添加任务和集群。缺点 :分布式支持不友好,没有内置 UI 管理控制台、使用麻烦(相比于其他同类型框架来说)三个组件Schedule调度器指定频率Trigg
2022-10-20 07:27:00
417
原创 国信证券笔试题总分120分
国信证券笔试题总分120分选择题60分,20题单选*10,每题3分多选*10,每题3分业务题,每题4分总共20分post,get请求区别后退按钮/刷新无害数据会被重新提交(浏览器应该告知用户数据会被重新提交)。书签可收藏为书签不可收藏为书签缓存能被缓存不能缓存编码类型application/x-www-form-urlencoded 只能进行url编码application/x-www-form-urlencoded 或 multipart/f
2022-10-20 07:25:20
1033
2
原创 Centos7安装Docker
0.安装DockerDocker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。Docker CE 分为 stable test 和 nightly 三个更新频道。官方网站上有各种环境下的 安装指南,这里主要介绍 Docker CE 在 CentOS上的安装。1.CentOS安装DockerDocker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内
2022-10-20 07:24:20
233
原创 RabbitMQ部署指南
RabbitMQ部署指南1.单机部署我们在Centos7虚拟机中使用Docker来安装。1.1.下载镜像方式一:在线拉取docker pull rabbitmq:3.8-management方式二:从本地加载在课前资料已经提供了镜像包:上传到虚拟机中后,使用命令加载镜像即可:docker load -i mq.tar1.2.安装MQ执行下面的命令来运行MQ容器:docker run \ -e RABBITMQ_DEFAULT_USER=itcast \ -e RABBITM
2022-10-20 07:23:18
217
原创 SpringCloud各组件图
SpringCloud各组件图Eureka原理概述Eureka集群Eureka原理Eureka 缓存机制负载均衡原理概述spring-cloud-loadbalancer ,提供简单的负载均衡功能spring-cloud-netflix-ribbon,基于 Ribbon 实现。以上的实现,都是基于 spring-cloud-commons 的 loadbalancer 的 ServiceInstanceChooser 接口,实现统一的服务的选择Ribbon集群图Ribbo
2022-10-20 07:22:10
120
原创 java诊断工具
java诊断工具陷入误区或是找不到方向时考虑考虑“鸡”和“蛋”的问题发现业务逻辑执行很慢且线程数增多的情况时程序逻辑有问题或外部依赖慢,使得业务逻辑执行慢,在访问量不变的情况下需要更多的线程数来应对有可能是请求量增大了,使得线程数增多,应用本身的 CPU 资源不足,再加上上下文切换问题导致处理变慢了考虑通过分类寻找规律分析问题需要根据调用拓扑来,不能想当然考虑资源限制类问题考虑资源相互影响排查网络问题要考虑三个方面,到底是客户端问题,还是服务端问题,还是传输问题快照类工具和
2022-10-20 07:20:43
134
原创 各项目登录权限校验
各项目登录权限校验ruoyi-vue-pro 账号密码,验证码,校验成功,创建刷新令牌和访问令牌返回给前端ruoyishiro校验登录用户名密码组装UsernamePasswordToken调用subject.login(token)调用securityManager.login(token)authenticate(token)authenticate是AuthenticatingSecurityManager里面的方法获取sessionsecuri
2022-10-20 07:18:38
248
原创 零碎知识点
零碎知识点日志slfj外观框架,有多种实现logbacklog4jlog4j2类型控制台日志访问日志通过 Filter 过滤器通过 Spring MVC HandlerInterceptor 处理器过滤器通过 Spring AOP 切面相关配置日志文件默认情况下,Spring Boot 日志只会打印到控制台。所以需要通过 logging.file.path 或 logging.file.name 配置项来设置。不过要注意,这两者是二选一,并不是共同作用。
2022-10-20 07:17:48
269
原创 Netty客户端与服务端
Netty客户端BootstrapeventGroupchannelremoteAddressoptionhandlerClientHandlerInitializerinitChannel考虑断开重连initChannelchannel.pipeline()获取pipelinepipeline空闲检测addLast(Encoder)编码器addLast(Decoder)解码器addLast(messageDispatcher)消息分发器理解为业务分发器a
2022-10-19 07:16:53
299
原创 ConcurrenntHashMap
ConcurrenntHashMapjdk1.7存储结构Segment 数组 + HashEntry 数组 + 链表Segment默认等于16,可以认为 ConcurrentHashMap 默认支持最多 16 个线程并发初始化三个参数CAPACITY默认初始化容量16FACTOR默认负载因子0.75CONCURRENCY_LEVEL默认并发级别16put计算出 segment 下标获得 segment 对象, 判断是否为 null, 是则创建该 seg
2022-10-19 07:13:55
143
原创 ReentrantLock
ReentrantLock内部继承了AQSAQS类主要就是一个State和一个双向队列CAS修改state值去获取锁Node就是队列中的节点包含了几个重要标识EXCLUSIVE排它锁标识CANCELLED=1失效了SIGNAL=-1后继节点需要被唤醒相比synchronized,ReentrantLock增加了一些高级功能lock.lockInterruptibly()等待可中断ReentrantLock(boolean fair)可实现公平锁,默认是非
2022-10-19 07:12:25
243
原创 synchronzied
synchronziedjdk1.6之前的状态无锁重量级锁jdk1.6之后对象里面的Mark Word记录着锁状态主要状态(锁升级的过程也叫锁膨胀)无锁偏向锁简单理解就一个锁,不存在竞争关系轻量级锁当存在第二个线程来申请锁的时候,不存在两个线程同时竞争锁,可以一前以后交替执行同步块重量级锁锁消除jvm判断不存在锁竞争情况就会进行锁消除锁粗化举个例子在魂环里面频繁给对象加锁,可能会把对象锁提到循环外边就是锁粗化的,锁的范围更广但是不需要频繁
2022-10-19 07:11:25
152
原创 web前端
web前端mdn网站前端传输格式telnet客户端数据格式客户端发送前端控制台应该好好利用,计算长度,等等编码application/x-www-form-urlencoded url就是特殊字符像汉字等一些特殊字符要先经过编码才能发送,否则报错application/json:utf-8编码multipart/form-data:每部分编码可以不同表单只支持以application/.x-wwWw-form-urlencoded和multipart
2022-10-19 07:10:28
126
原创 vue3相关
vue3零碎src下面需要加/src/+下面的路径+资源名public目录下面,直接/+资源名js的执行顺序可以通过F12看浏览器的时间线来看js代码的执行顺序技术选型Vue选项式API还是组合式APIHTML还是单文件组件推荐组合式API,单文件组件语法javascript还是typescript推荐typescript构建工具@vue/cli还是vitecli更完善,vite更快推荐vite路由vue-router共享存储
2022-10-19 07:09:12
145
原创 vue2相关
vue2零碎js相关同步异步fetch(url,options)//返回Promise同步const 结果=await Promiseawait关键字必须在一个标i记了async的function内来使用异步Promise.then(结果=>{…})导入导出js src导入比较早的不支持导入导出,可以不同源策略js type=“module” ,可以导入导出,必须同源策略导包方式requireimport方式需要在package.
2022-10-19 07:08:15
209
原创 操作系统相关
操作系统区别 基本上各进程是独立的,而各线程则不一定,因为同一进程中的线程极有可能会相互影响。线程执行开销小,但不利于资源的管理和保护;而进程正相反。进程状态创建状态(new)就绪状态(ready)运行状态(running)阻塞状态(waiting)结束状态(terminated)进程间的通信方式管道/匿名管道(Pipes)有名管道(Names Pipes)信号(Signal)消息队列(Message Queuing)信号量(Semaphores)共享内存(Share
2022-10-19 07:06:44
124
原创 J2Cache
J2Cache1.使用方法安装 Redis新建一个基于 Maven 的 Java 项目引用 Maven准备配置j2cache.propertiescaffeine.properties编写代码CacheChannel cache = J2Cache.getChannel()动态构建 J2Cache 实例CacheChannel channel =J2CacheBuilder.init(new J2CacheConfig()).getChannel()集群测试数据读取
2022-10-19 07:05:45
687
原创 Nginx
Nginx概念 是一个 Web 服务器和反向代理服务器,用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议Nginx 是如何实现高并发的?Nginx 基于事件模型,异步,非阻塞,使用 epoll ,和大量细节处的优化每进来一个 request ,会有一个 worker 进程去处理。但不是全程的处理,发送完请求后,注册一个事件,如果 upstream 返回了,再接着干,由于 web server 的工作性质决定了每个 request 的大部份生命都是在网络传输中,实际上花费在 s
2022-10-18 08:25:16
139
原创 监控系统搭建
监控系统搭建SpringBootActuatorSpring Boot Actuator 提供 HTTP API 接口,返回应用的审计(auditing)、健康状况(health)和指标(metrics)等数据。SpringBootAdmin是不错的轻量级的监控工具,只需要极少量的配置,就可以完成 Spring Boot 的应用的监控、管理、甚至说告警。一般情况下,如果想要快速搭建一个监控工具,那么 Spring Boot Admin 算是一个不错的选择。比较大的一个问题,并不会主动采集 Spri
2022-10-18 07:58:30
129
原创 Sentinel源码分析
Sentinel源码分析1.Sentinel的基本概念Sentinel实现限流、隔离、降级、熔断等功能,本质要做的就是两件事情:统计数据:统计某个资源的访问数据(QPS、RT等信息)规则判断:判断限流规则、隔离规则、降级规则、熔断规则是否满足这里的资源就是希望被Sentinel保护的业务,例如项目中定义的controller方法就是默认被Sentinel保护的资源。1.1.ProcessorSlotChain实现上述功能的核心骨架是一个叫做ProcessorSlotChain的类。这个类基
2022-10-18 07:54:42
143
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人