- 博客(71)
- 资源 (2)
- 收藏
- 关注

原创 单点登录-第三方对接OAuth2.0-正在书写中ing
大家好,你是不是经常遇到这样的烦恼:每次想登录一个新的网站或者应用,都要重新输入用户名和密码,有时候还得设置各种密保问题,简直烦死个人了!其实啊,有一个叫做“单点登录”的东西,就像是给你准备了一把“万能钥匙”,只要有了它,你就可以轻松打开多个应用的大门,再也不用为登录发愁了。而在这个“万能钥匙”里,有一个非常流行的“零件”叫做OAuth2.0,它能让第三方应用轻松对接到你的账户,让你在享受各种服务的同时,还能保证账号的安全。
2024-04-24 14:59:46
1957
2
原创 自学数据库-MYSQL
(B+ 树的非叶子节点不存放实际的记录数据,仅存放索引,因此数据量相同的情况下,相比存储即存索引又存记录的 B 树,B+树的非叶子节点可以存放更多的索引,因此 B+ 树可以比 B 树更「矮胖」,查询底层节点的磁盘 I/O次数会更少)3.由于树是存储在磁盘中的,访问每个节点,都对应一次磁盘 I/O 操作(假设一个节点的大小「小于」操作系统的最小读写单位块的大小),也就是说树的高度就等于每次查询数据时磁盘 IO 操作的次数,所以树的高度越高,就会影响查询性能。如果索引了多列(联合索引),要遵守最左前缀法则。
2024-10-09 13:35:21
1490
原创 钉钉-即时通讯-工作通知
钉钉-即时通讯-工作通知钉钉官方文档创建以及获取应用配置代码创建工作通知工具类创建钉钉消息实体类好了接下来就可以直接使用了钉钉官方文档https://open.dingtalk.com/document/orgapp/asynchronous-sending-of-enterprise-session-messages创建以及获取应用配置1.进入企业内部应用页面2.记住下面的框起来的数据配置,后期的许多东西都是需要这些配置才可以正常的使用钉钉的3.设置对应的应用支持那些权限可以查询官方
2024-08-29 09:48:47
1285
原创 整合钉钉扫码登录
整合钉钉扫码登录整合钉钉扫码登录一.构造扫码登录页面代码前端代码vue页面 login.vue@/api/notoken/index@/api/loginjsencrypt.jsuser.jspublic/index.html后端代码整合钉钉扫码登录一.构造扫码登录页面官方参考网址1.创建应用链接2.进入应用界面–配置回调域名。进入已创建的应用详情页,在基础信息页面可以查看到应用的SuiteKey/SuiteSecret(第三方企业应用)或AppKey/AppSecret(企业内部应用)
2024-05-09 09:09:04
1752
2
原创 java后端自学错误总结spring持续更新中
今天再写SpringCloud项目的时候书写测试类运行结果报错了报错的最后的信息是↓↓↓┌─────┐↑ ↓↑ ↓| org项目里面我是继承了mybatis-plus看到这个报错的时候优先排查了一下mapper.xml的文件里面是否出现了类名路径书写错误排查了没有然后又去查看了启动类注解里面的MapperScan注解对应的mapper文件路径是不是有问题,查看了还是没问题。
2024-05-06 10:49:37
405
2
原创 自学错误合集--项目打包报错,运行报错持续更新中
因此,尽管你的项目可能构建成功(即编译、测试等步骤都通过了),但是最终生成的jar或war文件将不是可执行的,因为它不包含Spring Boot所需的额外配置和依赖项。原因: skip标签元素通常用于控制插件的某个目标(goal)是否应该被执行.对于spring-boot-maven-plugin来说,元素用于决定是否跳过插件的默认目标(通常是repackage),该目标会将你的应用打包成一个可执行的jar或war文件。3.将所有依赖项(包括你的应用代码)添加到这个临时目录中。后面的排查与上面的编码无关。
2024-05-06 10:46:56
1002
1
原创 Netty自学实践下周继续更新
最近遇到自主研发产品涉及到TCP通信方面的问题所以才开始自学的Netty,既然要学就要学的好一点,不能只是简单的将网上的代码直接copy搬过来直接使用,如果遇到bug处理起来还是比较棘手的,原因很简单,并不了解Netty框架,只会copy,对于解决问题的效率会有非常大的影响,虽然Netty初次使用的时候是在2023/06月份,现在打算再复习深入一下,我希望将复习的内容的百分之五十的内容copy到我们的脑子面,我就知足了,学无止境接下来开始整活学习Netty太难受了,看源码没有几行注释,呜呜~~~
2024-02-28 16:08:53
418
原创 JAVA面试汇总总结更新中ing
如果a 和b 都是对象,则 a==b 是比较两个对象的引用,只有当 a 和 b 指向的是堆中的同一个对象才会返回 true,而 a.equals(b) 是进行逻辑比较,所以通常需要重写该方法来提供逻辑一致性的比较。2.方法是使用的非Public的时候也是会导致事务的失效,因为Spring事务会基于Cglib来进行Aop的,而CGLIB会基于父子类来进行生效的,子类是代理类,父类是被代理类,如果父类中的某一个方法是私有的方法的时候,那么子类就没有办法重写他,也就没有办法额外的增加Spring事务的逻辑。
2024-02-19 17:50:49
963
原创 线程&锁&多线程的复习
1.利用Executors工厂类的静态方法,创建线程池对象;2.编写Runnable或Callable实现类的实例对象;3.利用ExecutorService的submit方法或ScheduledExecutorService的schedule方 法提交并执行线程任务4.如果有执行结果,则处理异步执行结果(Future)5.调用shutdown()方法,关闭线程池线程池中阻塞队列的作用,为什么不采用其他的队列。
2024-01-29 16:16:54
1068
原创 反射的复习
就是再运行状态中,对于任意的一个类,都能够知道这个类的所有的属性以及方法,对于任意的对象都能够调用他的任意属性和昂发,在这里反射就有点类似于暴力获取五十修饰符直获取或者调用(产生过多的临时对象,影响GC的消耗)Constructor constructor = clazz.getConstructor(String.class,int.class);Student stu = constructor.newInstance(“张三”,20);利用对象的getClass方法获取class对象。
2024-01-29 11:38:25
278
原创 类加载器复习
将类的二进制数据流的符合应用替换为直接引用,(可以这样理解就是一个类再加载的时候,里面如果有引用类型,初次是识别不到的就占时使用符号进行替换,然后再解析的这一步中将之前的符号找到对应的对象在替换为直接引用)通过包名和类名的形式,或者这个类,然后准备使用流的形式进行传输,之后再将这个字节流加载到内存中,再内存中会生成一个这个类的class对象。加载----->验证----->准备----->解析----->初始化。3.访问类或者接口的类变量,或者为该类变量赋值。2.调用类的类方法的时候。
2024-01-29 10:57:58
192
原创 AOP复习
动态代理是实现 JDK 里的 InvocationHandler 接口的 invoke 方法,但注意的是代理的是接口,也就是你的业务类必须要实现接口,通过 Proxy 里的 newProxyInstance 得到代理对象。还有一种动态代理 CGLIB,代理的是类,不需要业务类继承接口,通过派生的子类来实现代理。通过在运行时,动态修改字节码达到修改类的目的。静态代理事先知道要代理的是什么,而动态代理不知道要代理什么东西,只有在运行时才知道。静态代理通常只代理一个类,动态代理是代理一个接口下的多个实现类。
2024-01-26 18:07:09
933
原创 JVM/GC复习
XX:MaxGCPauseMillis(设置最大的垃圾收集时候的停顿时间,单位毫秒,需要注意的是ParallelGC为了达到设置的停顿时间,可能会调整堆的大小或者其他的参数,如果堆的大小设置的比较小,就会导致GC工作变得很频繁,反而可能会影响到性能,这个参数使用的时候需要谨慎处理)再标记清除算法的基础之上做的优化,和标记清除算法一样,也是从根节点开始,对对象的应用进行标记,在清理的阶段,并不是简单地清理未标记的对象,而是将存货的对象压缩到哦内存的一段,然后清理边界意外的垃圾,从而解决碎片化的问题。
2024-01-24 18:19:47
1280
原创 Mysql复习1--理论基础+操作实践--更新中
2.可以参考btree树和b+tree树的规则就知道,他是可以提高插叙效率但是再新增删除修改数据的时候是比较麻烦的,每次都有可能调整索引的数据结构。2.通过索引列对数据进行排序,降低额数据排序的成本,降低CPU的消耗。没有建立索引的时候–全表扫描–再数据非常庞大的时候查询效率会非常慢。索引指的是帮助mysql高效的获取数据的结构叫做索引(有序)1.索引本身也是一种数据结构,所以也就会占用一定的磁盘空间。1.提高了数据检索的效率降低了数据库的io成本。建立索引的时候----
2024-01-24 12:07:08
480
原创 算法/结构/理论复习1---理论基础----更新中
雪花算法指的是一个long的id,64位的2进制组成,第一位指的是0无意义主要是符号位 第二位到第42位的这41个组成的就是时间戳–生成是达到毫秒级别,后面的十位指的是机器的id(数据中心id+服务器的id),最后的12位数指的是序列号(从时间戳里面抽取出来的一连串数字)分布式id的生成规则是:全局唯一,不可以出现重复的id号,趋势递增。雪花算法主要是为了解决在分布式中id的生成问题。再mybatis-plus中已经集成了雪花算法。
2024-01-22 18:01:30
483
原创 集合复习1---理论基础---更新中
集合数组Collection&List集合Set集合Map集合父接口类线程是否安全有序性底层数据结构初始容量负载因子实例化方式是否可重复MapHashMap不安全无序数组+链表/红黑树161懒加载-MapLinkedHashMap不安全有序(插入序/访问序)数组+单向链表+双向链表----MapTreeMap不安全自然序(左小右大)红黑树----MapThreadLocalMap不安全无序数
2024-01-22 18:00:57
417
原创 redis复习1-理论基础----更新中
优点:1.速度快redis里面的所有数据都是存在内存中所以减少了操作数据对于IO磁盘的读写操作的限制,从而提高数据读取和操作的速度redis在接受客户端请求的时候是属于单线程操作使用I/O多路复用模型–后续补充说明高效的数据结构–后续补充说明2.支持多种数据类型支持五种数据类型3.支持事务操作都是原子性,要么全部完成要么全部不完成4.丰富的特性可以用于缓存/消息/按照key设置过期时间,过期后会自动删除redis里面一共是有16个数据库编号为0-15。
2024-01-22 16:19:11
883
原创 事务复习1-理论基础
2.如果方法是被fina或者staticl进行修饰的时候也是导致事务的失效的,原因是事务使用的是动态代理进行实现的如果使用了final进行修饰的时候就会导致事务里面的动态代理无法进行重写导致事务的失效。4. 多线程调用的时候也是会导致事务的失效,原因是spring的事务是和数据库进行连接的,同一个事务只能使用同一个数据库的连接,再多线程的场景下拿到的数据库的连接是不一样的所以不支持事务。如果当前没有事务,就会新建一个事务,如果当前已经存在一个事务就会加入到这个事务中,这个是默认的事务传播机制。
2024-01-22 13:34:53
861
原创 JAVA后端自学技能实操合集
文件上传后所在的 storage 组名称,在文件上传成功后有storage 服务器返回,需要客户端自行保存。store_path0 则是 M00,如果配置了 store_path1 则是 M01,以此类推。:storage 配置的虚拟路径,与磁盘选项store_path*对应。:storage 服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。:与文件上传时不同。storage存储的位置/data/fast_data/data。修改application.yml文件,添加自定义的图片访问ip。
2023-12-08 11:49:05
861
原创 java后端自学错误总结
配置idea编码如果springUtils工具类调用报错空指针异常,请扫描一下springUtils这个包,也就是上面写的springUtilsConfig类,否则 beanFactory会一直是空值。
2023-11-29 14:51:07
1769
1
原创 面试刷题自备中
面试刷题自备中JavaSE基础线程redisMQkafkaspringspringmvcspringbootspringcloud设计模式数据库FastDFS垃圾回收机制项目部署dockerlinuxJavaSE基础面向对象都有哪些特性以及你对这些特性的理解访问权限修饰符 public、private、protected, 以及不写(默认)时的区别如何理解 clone 对象在 Java 中,如何跳出当前的多重嵌套循环两个对象值相同 (x.equals(y) == true) ,但却可有不同的
2023-11-28 17:45:55
1055
原创 设计模式-学习总结
设计模式一.创建型模式1.单例模式(1).饿汉式(2).懒汉式,双检锁(3).静态内部类(4).枚举2.原型模式3.工厂模式4.抽象工厂模式5.建造者模式二.结构型模式6.适配器模式7.组合模式8.装饰器模式9.外观模式10.享元模式11.代理模式(1).静态代理(2).jdk动态代理(3).cglib动态代理12.桥接模式三.行为型模式13.责任链模式14.命令模式15.解释器模式16.迭代器模式17.观察者模式18.状态模式19.模板模式20.中介者模式21.备忘录模式22.访问者模式23.策略模式。
2023-11-20 15:47:34
324
原创 Minio
手动创建minio应用程序目录,如:D:\minio\bin手动创建minio数据目录,如:D:\minio\data手动创建minio日志目录,如:D:\minio\logs将1中下载的两个文件放到D:\minio\bin目录下。
2023-11-09 13:51:33
8319
原创 MQTT整合
命令解释: -c 创建一个用户、/etc/mosquitto/pwfile.example 是将用户创建到 pwfile.example 文件中、admin 是用户名。MQ遥测传输(MQTT)是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放、简单、轻量、易于实现。1、安装完毕后,需要对配置文件进行修改,配置文件位置:D:\mosquitto\mosquitto.conf,如下。进入mosquitto下载网址:https://mosquitto.org/download/,如下图。
2023-10-16 15:03:50
155
原创 总结RoctetMQ
RoctetMQ定义优缺点场景使用方式消息顺序问题死信幂等性可视化面板定义优缺点场景使用方式消息顺序问题死信幂等性可视化面板
2023-07-26 13:25:04
278
原创 常用的工具类方法
常用的工具类方法比较新对象和旧对象里面的对应值-返回对应的字段名称比较新对象和旧对象里面的对应值-返回对应的字段名称 /** 调用: strings = compareProperties(user, user1); * 比较新对象和旧对象里面的对应值 * @param newObj 新對象 * @param oldObj 就對象 * @return 返回不同值的属性名称 例如:{name, id, sex} */ public s
2022-02-21 11:44:18
311
原创 达梦数据库(安装)
达梦数据库欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入达梦数据库欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Ma
2022-02-15 10:38:08
1991
原创 mysql数据库密码的修改
mysql数据库密码的修改1.首先找到mysql对应的bin/mysql.exe目录里面然后输入cmd打开cmd面板2.在cmd面板里面输入mysqld --skip-grant-tables然后回车3.打开控制面板关闭结束mysqld.exe的进程4.再次操作1步,然后直接输入mysql(不需要带任何登录参数直接回车就可以登陆上数据库)5.show databases;(可以看到所有数据库说明成功登陆。)6.其中mysql库就是保存用户名的地方。输入 use mysql; 选择mysql数
2021-12-03 10:52:20
1128
原创 jquery
jquery1.jquery库-特性HTML 元素选取HTML 元素操作CSS 操作HTML 事件函数JavaScript 特效和动画HTML DOM 遍历和修改AJAXUtilities在使用jquery库的时候先将下面的标记添加在网页中// 请注意,<script> 标签应该位于页面的 <head> 部分。<head><script type="text/javascript" src="jquery.js"></scr
2021-11-30 09:43:51
276
原创 DEA使用Database连接数据库
连接数据库1.点击右侧Database后,点击左上角+按钮,然后选中Data Source ,无论使用的是MariaDB还是MySQL都选中MySQL设置数据库连接信息,测试连接。如果驱动不是常规驱动,还需要新增驱动类型。选择要新增的驱动类型的jar包。设置显示组织结构开始查询数据...
2021-11-22 16:06:58
325
原创 sql的常用功能
sql的常用功能LEFT JOINselectfrom on join where group by having select distinct union order by LEFT JOIN从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
2021-11-22 16:00:30
406
原创 java 定时任务
注意事项: 每一个域都使用数字,但还可以出现如下特殊字符,它们的含义是: (1)*:表示匹配该域的任意值。假如在Minutes域使用*, 即表示每分钟都会触发事件。 (2)?:只能用在DayofMonth和DayofWeek两个域。它也匹配域的任意值,但实际不会。因为DayofMonth和DayofWeek会相互影响。例如想在每月的20日触发调度,不管20日到底是星期几,则只能使用如下写法: 13 13 15 20 * ?, 其中最后一位只能用?,而不能使用*,如果使用*表示不管星期几都会
2021-11-22 15:50:07
242
原创 生成pdf文件在线预览下载
生成pdf文件在线预览下载https://blog.csdn.net/weixin_35213963/article/details/114421511
2021-11-05 16:46:30
105
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人