【SVN】安装使用与IDEA集成
SVN介绍
简介
SVN全称Subversion,是一个开放源代码的版本控制系统,Subversion 在
2000 年由 CollabNet Inc 开发现在发展成为 Apache
软件基金会的一个项目,同样是一个丰富的开发者和用户社区的一部分。
SVN是一个开放源代码的版本控制系统,管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository)中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。
基本概念
Repository(源代码库): 源代码统一存放的地方
Checkout (提取): 当你手上没有源代码的时候,你需要从repository
checkout一份。
Commit (提交): 当你已经修改了代码,你就需要Commit到repository
Update(更新):
当你已经Checkout了一份源代码,Update后就可以和Repository上的源代码同步
工 ...
【实战】SpringBoot整合Mybatis
springboot项目搭建
快速搭建springboot项目工程(就类似vue的vue-cli脚手架)
选择自己需要的依赖
删除不需要的文件
设置资源文件
profile 环境切换
定义多个环境的yaml配置文件,由application.yaml
指定当项目运行在哪个环境 (dev,prod,test等)
或者这里设置 未指定运行环境时,也可以通过这里手动切换
参考 配置
配置logback日志(会先于springboot配置文件的加载)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354<?xml version="1.0" encoding="UTF-8"?><configuration scan="true" scanPeriod="60 seconds" debug=&quo ...
【RSA】实现数据RSA加解密
数据安全加密简介
在项目的功能中,涉及密码的输入,都应该使用相应的加密算法来对传输的密码进行加密。加密的算法有很多,通常分为两种:对称加密和非对称加密
非对称加密算法
是指加密秘钥和解密秘钥不同。常见的非对称密钥加密算法:RSA算法,具有数字签名和验证的功能
其他
数字签名
发送者不能否认发送的信息,接受者不能篡改接受的消息
确认了文件已签署这一事实
确定了文件是真的这一事实
加解密代码
从安全性进行考虑,在数据库的密码肯定是以密文进行存储的
在前端输入密码,向后端进行传输时,应该要加密完后再向后端传输
将从数据库取出来的密码密文和前端传来的密码密文分别解码后再进行比较
后端生成公私钥
RSAUTil工具类
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 ...
很酷的事
1、更新个人博客
2、开发界面优美个人词库
3、不说话装高手
【Vue】Vue框架
Vue基础
Vue的概述
Vue (读音 /vjuː/,类似于 view)
是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue
被设计为可以自底向上逐层应用。Vue
的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。
Vue的特点
1、采用组件化模式,提高代码复用率、且让代码更好维护
2、声明式编码,让编码人员无需直接操作DOM,提高开发效率
3、使用虚拟DOM +
优秀的Diff算法,尽量复用DOM节点
原始的写法是覆盖原来的节点,现在采用虚拟DOM+ 优秀的Diff算法是
原来有的数据就不覆盖,添加新的数据
Vue官网文档
Vue2的文档
Vue3的文档
搭建Vue开发环境
引入Vue.js
12<!-- 开发环境版本,包含了有帮助的命令行警告 --><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
12<!-- 生产环境版本,优化了尺寸和速度 --& ...
【面试】面试题汇总
后端
JAVA
1、集合的类型
image-20230516122609729
2、集合中四种线程安全的结构
Vector :
就比ArrayList多了个同步化机制(线程安全)
Hashtable : 就比HashMap多了个线程安全
ConcurrentHashMap : 是一种高效但是线程安全的集合
Stack :
栈,也是线程安全的,继承于Vector,已过时,不建议使用
3、queue常用方法
添加元素
addFirst(E e) 在数组前面添加元素
addLast(E e) 在数组后面添加元素
offerFirst(E e) 在数组前面添加元素,并返回是否添加成功
offerLast(E e) 在数组最后添加元素,并返回是否添加成功
删除元素
removeFirst() 删除第一个元素,并返回删除元素的值,如果元素为
null,将抛出异常
pollFirst() 删除第一个元素,并返回删除元素的值,如果元素为
null,将返回 null
removeLast() 删除最后一个元素,并返回删除元素的值,如果为
null ...
【SpringCloud】SpringCloud概述
微服务概述
简而言之,微服务体系结构风格是一种将单个应用程序开发为一组小服务的方法,每个服务都在自己的进程中运行,并与轻量级机制(通常是HTTP资源API)通信。这些服务是围绕业务能力构建的,并通过完全自动化的部署机制进行独立部署。这些服务的集中管理最低限度,可以用不同的编程语言编写,并使用不同的数据存储技术--詹姆斯·刘易斯和马丁·福勒(2014)
特点
微服务是一种架构风格
一个应用拆分为一组小型服务
每个服务运行在自己的进程内,也就是可独立部署和升级
服务之间使用轻量级HTTP交互
服务围绕业务功能拆分
可以由全自动部署机制独立部署
去中心化,服务自治。服务可以使用不同的语言、不同的存储技术
微服务支撑维度需要的技术
服务调用
服务降级
服务注册与发先
服务熔断
负载均衡
服务消息队列
服务网关
配置中心管理
自动化构建部署
服务监控
全链路追踪
服务定时任务
调度操作
Spring Cloud简介
符合微服务技术维度
SpringCloud=分布式微服务架构的站式解决方案,是多种微服务架构落地技术的集合 ...
【SpringCloudAlibaba】SpringCloudAlibaba概述
SpringCloud Alibaba 简介
【实战】RabbitMQ订单未支付x分钟自动取消
技术点
RabbitMQ: 死信队列,脑瓜子空空就点 传送门
进行回忆呗!
实现原理
1、用户下单之后,投递一个订单消息存放在订单队列里,该消息过期时间为x分钟,一直未被订单消费者消费,消息会转移到死信交换机路由到死信队列中,被我们的死信消费者x分钟后消费
2、死信消费者在根据订单号码查询支付订单状态,如果是未支付情况下,则将该订单设置未超时。
对筛选出来的订单号码进行核对校验
订单中是否存在
携带订单号码调用支付宝查询订单支付状态是否为待支付
更新该订单号码状态
超时消费流程图
代码
定义配置类
1、定义订单交换机,订单队列,设置订单交换机绑定订单队列
2、定义死信订单交换机,死信订单队列,设置死信订单交换机绑定死信订单队列
3、设置订单队列的死信订单交换机
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061@Configurationpublic class Que ...