知识点
文章平均质量分 72
一些关于java的知识点
wwc_boke
这个作者很懒,什么都没留下…
展开
-
无感刷新-双Token
总之,双token系统是一种常见的安全设计模式,通过分离短期和长期凭证,以及用户直接使用的token和用于刷新的token,来提高系统的安全性和灵活性。这种设计特别适用于需要与第三方应用共享权限而又不泄露用户敏感信息的场景。双token系统通常用于提高安全性和分离不同级别的权限。原创 2024-06-01 15:38:27 · 660 阅读 · 0 评论 -
Seata分布式事务使用
链接: 点击查看版本说明链接: 点击链接: 点击获取数据库DDl安装Seata-Server1 编写docker-compose.yml文件链接: 参考文档先把配置文件使用docker cp copy到指定目录,然后编写docker-compose.yml2 修改 application.yml文件3 去Nacos配置对应的信息4 启动启动之后就可以看到服务注册成功也可以直接查看控制台页面原创 2024-06-01 15:00:53 · 228 阅读 · 0 评论 -
全链路跟踪TraceId日志
MDC 介绍 MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 和 logback 提供的一种方便在多线程条件下记录日志的功能。MDC 可以看成是一个与当前线程绑定的Map,可以往其中添加键值对。MDC 中包含的内容可以被同一线程中执行的代码所访问。当前线程的子线程会继承其父线程中的 MDC 的内容。简而言之,MDC就是日志框架提供的一个InheritableThreadLocal,项目代码中可以将键值对放入其中,然后使用指定方式取出打印即可。原创 2024-05-30 21:12:06 · 347 阅读 · 0 评论 -
全局token过滤器和局部过滤器接口耗时
在Spring Cloud Gateway中,实现全局过滤器的目的是对所有进入系统的请求或响应进行统一处理,比如添加日志、鉴权等。原创 2024-05-30 21:02:23 · 814 阅读 · 0 评论 -
Gateway服务网关
服务网关 = 路由转发 + 过滤器1、路由转发:接收一切外界请求,转发到后端的微服务上去;2、过滤器:在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通过过滤器完成(其实路由转发也是通过过滤器实现的)。原创 2024-05-29 16:30:52 · 668 阅读 · 0 评论 -
Spring Cloud整合Sentinel
上述的 _blockHandler 和 _fallback 后面是可以带上任意的参数类型,但至少需要包含原始方法的所有参数类型,以及在 blockHandler 方法中加入 BlockException 参数。降级是在系统负载过高或部分服务不可用时,采取的一种策略,它允许系统牺牲部分非核心功能或降低服务质量,以保证核心功能的正常运行。限流着重于防止整体系统的入口流量过大,通过量化控制进入系统的请求速度。Sentinel应用直接引用starter。原创 2024-05-23 21:55:03 · 585 阅读 · 0 评论 -
Sentinel流量防卫兵
熔断就是有一个阈值,向服务发起请求后,如果不成功,就会记录次数,然后当连续失败次数达到阈值时,下次请求的时候就会直接把这个服务停止。每当向服务发起一个请求时,就是会发起一个http请求,每一个http请求就要开启一个线程,然后等待服务返回信息,这容易导致线程的堆积,所以就可以用http的URI作为一个标识,然后相同的URI可以开启一个线程池,然后线程池中限定线程数,这样就可以设置拒绝策略,当线程池满了,就可以快速的抛出异常或者拒绝请求,用线程池做到线程隔离来达到限流。加入超时机制,一旦超时,就释放资源。原创 2024-05-23 21:24:52 · 885 阅读 · 0 评论 -
OpenFeign微服务调用组件使用
Feign是Netflix开发的声明式、模版化的HTTP客户端。Feign可以做到使用 HTTP 请求远程服务时就像调用本地方法一样的体验,开发者完全感知不到这是远程方法,更感知不到这是个 HTTP 请求,开发者无需关注与远程的交互细节,更无需关注分布式环境开发。原创 2024-05-20 20:22:32 · 580 阅读 · 0 评论 -
Ribbon负载均衡器
是一套客户端负载均衡工具,Ribbon客户端组件提供一系列的完善的配置,如超时,重试等。原创 2024-05-14 08:43:18 · 287 阅读 · 0 评论 -
Servlet过滤器个监听器
当浏览器向服务器发送请求的时候,过滤器可以将请求拦截下来,完成一些特殊的功能,比如:编码设置、权限校验、日志记录等。3.我们可以使用@WebFilter来配置过滤器要拦截的资源,当然我们也可以通过xml的方式配置过滤器。1.拦截具体的资源路径:/index.jsp,只有访问index.jsp的时候才会被拦截。2.过滤器拦截的请求执行完毕之后,必须要放行,否则我们的请求就不会被执行。2.目录拦截:/user/*,访问/user下的所有资源,都会被拦截。4.拦截所有:/* 访问所有的资源,都会被拦截。原创 2024-01-30 19:44:14 · 659 阅读 · 0 评论 -
Servlet Cookie和Session
http协议是一个无状态的协议,你每一个跳转到下一个页面的时候都是需要先登录才能使用,这样就很麻烦比如淘宝,没有cookie和session的话,用户在首页已经登录上去了,但是需要再次登录才能选择商品,需要再次登录才能放到购物车,需要再次登录才能然后购买,这样用户的体验是相当差的。如果想要使用cookie要保证我们的浏览器是开启cookie,所以说有一定的弊端,如果浏览器没有开启cookie,就不能再使用cookie了。cookie的大小是有限制的,通常是4096byte。cookie是在浏览器中保存的。原创 2024-01-30 19:42:35 · 406 阅读 · 0 评论 -
Servlet对象
ServletRequest是一个接口,用户访问服务器,服务器会生成一个对象包含了http所有请求头,由于使用的是http协议,所以该对象的名字叫HttpServletRequest。ServletConfig是javax.servlet.包下的一个接口,ServletConfig它是Servlet的一个配置对象;ServletContext是javax.servlet包下的一个接口,又称上下文对象,是配置对象也是一个域对象;获取servlet里面定义的参数。获取servlet里面定义的参数。原创 2024-01-23 20:39:49 · 1346 阅读 · 0 评论 -
Servlet重定向转发及自动加载
如果servlet构造函数里面的代码或者init方法里面的代码比较多,就会导致用户第一次访问servlet的时候比较慢。用户通过浏览器发送一个请求,Tomcat服务器接收这个请求,会给浏览器发送一个状态码302,并设置一个重定向的路径,浏览器如果接收到了这个302的状态码以后,就会去自动加载服务器设置的路径。下面开始写在请求的时候前端带数据到servlet里面,我们servlet要接收前端给我们的这个数据。这样配置之后,servlet的构造函数和init方法就会在web应用加载的时候就会执行。原创 2024-01-23 20:37:59 · 917 阅读 · 0 评论 -
创建Servlet的三种方式
2.可以根据前端的要求进行分门别类 doGet doPost。1.可以减少对其他方法的要求 init destroy。最好的方式是继承HttpServlet。这三个创建方式选择哪个?原创 2024-01-22 19:48:17 · 454 阅读 · 0 评论 -
Servlet入门
Servlet是Server Applet的简称,是用Java编写的是运行在 Web 服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet,可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。Servlet的生命周期就是servlet类对象什么时候创建?什么时候调用对应的方法,什么时候销毁。//创建对象// 使用对象// 使用对象// 销毁对象。原创 2024-01-22 19:39:13 · 945 阅读 · 0 评论 -
Servlet Http协议
什么是Http协议: 浏览器和服务器之间进行数据传输需要遵循的格式规范。响应体就是服务器返回的HTML页面或者json数据。原创 2024-01-19 19:35:39 · 466 阅读 · 0 评论 -
SpringBoot 自动配置原理
springboot是基于spring的新型的轻量级框架,最厉害的地方当属**自动配置。**那我们就可以根据启动流程和相关原理来看看,如何实现传奇的自动配置从上面代码可以看出,Annotation定义(@SpringBootApplication)和类定义(SpringApplication.run)最为耀眼,所以要揭开SpringBoot的神秘面纱,我们要从这两位开始就可以了。原创 2024-01-19 19:19:03 · 659 阅读 · 0 评论 -
SpringBoot多环境配置及日志记录器
logback是log4j团队创建的开源日志组件,与log4j类似但是比log4j更强大,是log4j的改良版本。主要优势在于:a) 更快的实现,logback内核重写过,是的性能有了很大的提升,内存占用也更小。b) logback-classic对slf4j进行了更好的集成c) 自动重新加载配置文件,当配置文件修改后,logback-classic能自动重新加载配置文件d) 配置文件能够处理不同的情况,开发人员在不同的环境下(开发,测试,生产)切换的时候,不需要创建多个。原创 2024-01-18 15:20:26 · 740 阅读 · 0 评论 -
SpringBoot整合MyBatis及拦截器
通过使用 SpringBoot+MyBatis整合实现一个对数据库中的 users 表的 CRUD。原创 2024-01-18 14:30:17 · 1391 阅读 · 0 评论 -
SpringBoot异常处理和单元测试
SpringBoot默认的处理异常的机制:SpringBoot 默认的已经提供了一套处理异常的机制。一旦程序中出现了异常 SpringBoot 会向/error 的 url 发送请求。在 springBoot 中提供了一个叫 BasicErrorController 来处理/error 请求,然后跳转到默认显示异常的页面来展示异常信息如 果我 们 需 要 将 所 有 的 异 常 同 一 跳 转 到 自 定 义 的 错 误 页 面 , 需 要 再src/main/resources/原创 2024-01-17 20:30:36 · 711 阅读 · 0 评论 -
MyBatis的ORM的映射、配置文件
对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。原创 2023-12-20 20:40:29 · 578 阅读 · 1 评论 -
MyBatis原始Dao开发-了解
使用Mybatis开发Dao,通常有两个方法,即原始Dao开发方式和Mapper接口代理开发方式。而现在主流的开发方式是接口代理开发方式,这种方式总体上更加简便。原创 2023-12-20 20:04:11 · 138 阅读 · 0 评论 -
MyBatis入门和原理及增删改查
mybatis是一款用于持久层的、轻量级的半自动化ORM框架,封装了所有jdbc操作以及设置查询参数和获取结果集的操作,支持自定义sql、存储过程和高级映射。二、MyBatis入门userdaoimport com//利用单个元素查询 User getUserById(Integer id);//利用单个元素查询 User getUserById(Integer id);User;import org。原创 2023-12-19 21:55:09 · 602 阅读 · 0 评论 -
Chp18-反射和设计模式
是一种底层技术,通常用于底层框架的编写。原创 2023-11-18 08:48:29 · 48 阅读 · 0 评论 -
Cop-17线程
当一个任务需要多次执行时,如果将任务放置于线程对象Thread中,会浪费内存空间导致不合理的并发,线程池可以解决该问题。原创 2023-11-18 08:45:15 · 165 阅读 · 0 评论 -
Cop16-2-IO2
pw只是在读写对象引用的toString方法的结果,并未读写对象的完整信息,所以无法对对象进行序列号及反序列化。pw对象中的print|println方法写对象与对象过滤流写对象的区别?对象过滤流是在读写对象的完整信息,所以可以对对象进行序列号及反序列化。pw中的print|println方法与输出语句中的有何不同?不同编码集拥有独立的编解码方式,之间互不相通。对同一文件的输入输出操作必须保证编解码集一致。标准输出流是将数据写入到控制台临时查看。pw是将数据写入到目标文件长久保存。原创 2023-11-17 21:40:12 · 112 阅读 · 0 评论 -
Cop16-IO1
自定义必须实现Serializable接口,表示允许被序列化,否者IO流没有读写权限序列化:拆分对象信息的过程反序列化:通过信息组装对象的过程将属性通过transient修饰符修饰则可以防止其参与序列化如果对象中有自定义类型的属性,则必须使该属性类型也实现序列化接口或者通过transient修饰符对其修饰//防止被序列化 private transient double score;//省略getter、setter、构造、toString }//防止被序列化。原创 2023-11-17 17:42:30 · 178 阅读 · 0 评论 -
Chp15-异常
运行时异常需要提供有参构造给最大父类Throwable中的详细信息属性赋值/*** 自定义运行时异常类*/非运行时异常:继承Exception构造要求与运行时异常一致/*** 自定义非运行时异常*/原创 2023-11-17 14:09:47 · 114 阅读 · 0 评论 -
Chp14-Map集合
【代码】Chp14-Map集合。原创 2023-11-11 15:59:42 · 46 阅读 · 1 评论 -
Chp13-Set集合
红黑树:树状结构存放数据,使用的是二分查找法,特点为查询效率快。原创 2023-11-11 15:27:25 · 42 阅读 · 1 评论 -
Chp12-List集合
概念:是一个容器,作用为存放多个数据,通常用来替代数组。List,Set,Map都是接口。原创 2023-11-10 15:04:57 · 41 阅读 · 1 评论 -
Chp11-常用类
全程字符串常量池,由于String是实际开发中使用频繁最高的数据类型,且开发过程中对一个字符串的复用率远远高于对其的更改频率,为了减少字符串重复使用带来的空间浪费,所以在方法区中设立了串池,保证相同字符串内容只会占用一块串池空间,以此来减少空间浪费,节约空间资源。必须包装String中的数据是基本类型能够盛放的数据,否则执行时会触发NumberFormatException数据类型转换异常。必须保证String的值为包装类型能够盛放的值。作用为将八大基本类型包装为引用类型。原创 2023-11-03 21:32:26 · 34 阅读 · 0 评论 -
Cop10-内部类
在类的内部再次声明定义类。原创 2023-11-03 20:25:08 · 42 阅读 · 0 评论 -
Chp9-接口
3.在测试类中调用Arrays.sort()传入数组和实现类对象。允许在当前代码的基础上扩展功能,但是前提是不修改已有内容。实现了写在com.Xxx.dao.impl包下。需求:利用比较器对数组进行指定规则的排序。“开闭原则”:扩展开放,修改关闭。一个接口可以继承多个父类口(原创 2023-10-31 14:45:59 · 41 阅读 · 1 评论 -
Chp8-三大修饰符
public abstract class 类名{}abstract public class 类名{}注:修饰符之间的顺序不做要求。原创 2023-10-29 15:12:04 · 44 阅读 · 0 评论 -
Chp7-多态
父类引用指向子类对象。原创 2023-10-29 14:46:32 · 38 阅读 · 0 评论 -
Chp5-封装 继承和方法重写
面向对象的核心思想:封装、继承、多态。原创 2023-10-27 17:31:00 · 50 阅读 · 1 评论 -
Chp4-面向对象和this关键字
描述型的类:特点为没有主函数,无法执行,作用为描述对象特征和行为。存放对同一批对象的特征和行为的描述,约束同一批对象所具有的内容。为了方便程序员书写和调用功能相同或相似的方法。测试类:特点为拥有主函数,可以直接执行。函数就是加了atatic的方法。原创 2023-10-26 16:52:38 · 49 阅读 · 1 评论 -
Chp3-数组和排序
是计算机内存中的一块存储空间,特点为可以同时存放多个的值。原创 2023-10-23 20:22:44 · 35 阅读 · 1 评论 -
Chp2-函数
是一段具有特定功能的代码,特点可以多次执行,通常情况下一个函数对应一个功能。原创 2023-10-23 19:39:54 · 37 阅读 · 1 评论