- 博客(38)
- 收藏
- 关注
原创 SpringSecurity框架入门
Spring Security 是一个 Java 框架,用于保护应用程序的安全性。它提供了一套全面的安全解决方案,包括身份验证、授权、防止攻击等功能。Spring Security 基于过滤器链的概念,可以轻松地集成到任何基于 Spring 的应用程序中。它支持多种身份验证选项和授权策略,开发人员可以根据需要选择适合的方式。此外,Spring Security 还提供了一些附加功能,如集成第三方身份验证提供商和单点登录,以及会话管理和密码编码等。总之,Spring Security 是一个强大且易于使用的框
2025-04-06 17:00:43
864
原创 深入浅出消息队列 (RabbitMQ)
在分布式系统中,经常被用来实现异步解耦、流量削峰等功能。它能够让系统在高并发环境下更具弹性,并且在各个模块之间实现“松耦合”的交互。
2025-03-14 22:49:03
1086
原创 Cookie,Seesion和Token区别及用途
Cookie、Session、Token 和 JWT(JSON Web Token)都是用于在网络应用中进行身份验证和状态管理的机制。虽然它们有一些相似之处,但在实际应用中有着不同的作用和特点。
2024-12-16 17:09:45
813
原创 ObjectOutputStream和ObjectInputStream傻傻分不清
在 Java 中,ObjectOutputStream和ObjectInputStream是用于处理对象序列化和反序列化的流类。两者分别用于输出对象和输入对象,它们的职责明确而互补。
2024-12-11 14:28:25
493
1
原创 Redisson分布式锁
Redisson不只是一个 Java Redis 客户端,它是一个以内存 Redis 服务器作为后端的处理 Java 对象(如等)的一个框架。Redisson提供了使用Redis的最简单和最便捷的方法。Redisson的宗旨是促进使用者对Redis的关注分离(Separation of Concern),从而让使用者能够将精力更集中地放在处理业务逻辑上,Redisson底层采用的是Netty框架。SETNX适用于简单场景,但在高可靠性、高并发的生产环境中,建议使用更完善的分布式锁实现。
2024-12-09 15:35:00
1370
原创 Mybatis框架中resultType和resultMap的区别
和 是 MyBatis 框架中用于处理查询结果映射的两种方式。 查询的结果将自动映射到 类的 , , 字段上 允许将数据库表中的 、、 映射到 Java 对象 的 、 和 属性上。
2024-09-05 16:17:33
526
原创 Java开发中的vo,dto,po
DTO:用于数据传输,通常在服务层与表现层之间传递数据,目的是优化数据传输效率。VO:用于表现层,通常是业务数据的封装,直接用于前端显示。PO:用于持久化,直接与数据库中的表结构对应,是 ORM 框架操作数据库的基础。
2024-09-01 13:34:35
2216
原创 Spring框架中的@Autowired和@RequiredArgsConstructor
构造函数注入更像是准备工作的一部分,它确保你在开始工作之前就已经有了所有需要的东西,这使得你的工作更有条理、更安全,也更容易测试。而字段注入虽然看似方便,但会引入一些不确定性和潜在的问题。
2024-07-08 17:26:22
704
原创 mybatis 二级缓存
二级缓存是 MyBatis 提供的一种缓存机制,用于减少对数据库的访问次数,提高应用程序的性能。它是基于 SQLSessionFactory 级别的缓存,与一级缓存(SQLSession 级别的缓存)不同,二级缓存在多个 SQLSession 之间共享。以下是二级缓存的一些关键点:形象解释一下:二级缓存可以形象地比喻成一个共享的图书馆,用来提高数据查询的效率。
2024-07-06 17:56:49
1087
原创 Spring Cache 注解---@EnableCaching,@Cacheable、@CachePut 和 @CacheEvict
Spring Cache 注解---@EnableCaching,@Cacheable、@CachePut 和 @CacheEvict。
2024-05-24 23:54:48
499
原创 @PathVariable,@RequestParam和@RequestBody区别
尽管在大多数情况下 DTO(Data Transfer Object)用于封装多个请求参数,但在某些情况下,你可能还需要直接从请求参数中读取某个特定的参数,同时仍使用 DTO 来封装其他参数。注解在 Spring MVC 中通常用于从 HTTP 请求的 body 中绑定数据到方法参数上,特别是在处理 POST、PUT 或 PATCH 请求时,这些请求通常包含 JSON、XML 等格式的请求体数据。通常用于处理 GET 请求的查询字符串参数,而 POST/PUT 请求的体数据则通常使用。
2024-05-10 23:43:35
1735
原创 EmployeeDTO的好处
前台接待员的工作是收集客户的信息,确保它是完整和正确的,然后将这些信息传递给公司内部的正确部门。的作用是作为客户端和服务器之间的信息传递者,确保数据的安全和正确性,同时也简化了客户端和服务器之间的通信过程。实体对象,这样就可以将其保存到数据库中,同时避免了直接使用实体类,这是一种常见的做法来保护应用程序的完整性和安全性。:对于一些简单的创建(Create)、读取(Read)、更新(Update)、删除(Delete)操作,如果没有额外的安全或定制需求,直接使用实体类可能更直接和简单。就是那个前台接待员。
2024-04-24 20:19:20
363
原创 动态代理-----------黑马程序员课程不懂的问题
如果代理对象拦截了一个方法调用,它将返回null,否则它将调用Bigstar对象的原始方法,并将结果返回给调用者。这个代理对象是由代理模式生成的,它可以拦截对Bigstar对象的方法调用,并根据代理对象的实现来决定是否调用Bigstar对象的原始方法。因此,当我们调用代理对象的"cleanWC"方法时,它将打印出"拦截,不调用大明星的方法"。综上所述,这个代理对象的主要作用是拦截对实际对象的方法调用,并在需要时修改这些调用的行为。总之,这个代码片段演示了如何使用Java代理模式来拦截和修改对象的方法调用。
2023-12-27 11:27:02
433
原创 Java多线程中currentThread()方法
从结果可以发现,ThreadDemo类的构造方法是被main线程调用的,而run方法是被名为Thread-0的线程调用的,run方法是自动调用方法。在Java多线程编程中,currentThread()方法通常用于获取当前线程的名称或ID,以便于线程之间的区分和管理。上述代码可以输出当前线程的名称,如果没有设置线程名称,则输出默认名称“Thread-N”,其中N为线程在线程池中的编号。该方法可返回当前正在执行的线程对象的引用。上述代码可以输出当前线程的ID,ID是线程的唯一标识符,用于线程之间的区分。
2023-12-23 11:36:41
1099
1
原创 Java中的缓冲区
由于计算机的磁盘读写速度较慢,而内存读写速度较快,因此将数据从磁盘读取到内存,再将数据从内存写入到磁盘的过程中,可以使用缓冲区来减少数据在内存和磁盘之间的传输次数,从而提高程序的性能。在Java NIO(New I/O)中,缓冲区是一个非常重要的概念,它用于存储不同类型数据的数组。在Java中,缓冲区类Buffer提供了一些常用的方法,如append、get、put等,用于对数据进行读写操作。Java中的缓冲区(Buffer)是一个用于临时存储数据的固定长度的数据容器。
2023-12-19 20:16:30
644
1
原创 C++中,使用引用(&)作为函数参数的好处
而使用引用作为函数参数,可以直接传递对象的引用,而不是复制整个对象,从而节省了时间和内存开销。同时,使用引用作为参数也可以在函数中修改传递进来的对象,因为引用对应着原对象的别名。当我们传递对象作为参数时,特别是对于较大的对象,会涉及到复制整个对象的数据,这可能会引起性能上的损失。使用引用作为返回类型,不仅可以实现方便的链式操作,还可以保持与标准库IO流的一致性,比如。在C++中,重载运算符时,如果希望支持连续的运算符操作,通常需要使用引用作为返回类型。对象,那么链式操作将无法实现,因为每次运算符。
2023-10-09 22:51:19
955
1
原创 ZZULIOJ 1259:Fibbonacci Number
但递归会时间超限,自己用vs跑 需要多几分钟才能出结果。关于递归思想 我也是看b战老师讲解懂得。其次就是用数组 这个特别简单了。
2023-02-05 21:49:13
157
原创 ZZULIOJ 1251:Triangular numbers
三角数即正整数前n项和: 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78,..n(n+1)/2 ,从1+2+3+…如下图所示表示的是前6个等边三角形, 那么1,3,6,10......是Triangle numbers,而2,4,5......不是Triangular numbers。每组实例输出一行,如果n是Triangular numbers输出YES,否则输出NO。如果一个整数n是Triangle numbers,则表示n个点能组成一个等边三角形。
2023-02-05 13:46:02
155
原创 ZZULIOJ 1249:成功学生人数
如果某个学生的某一门课程得了该课程的最高分(最高分可以不唯一),则可以说该学生在该课程上是最优的。如果一个学生至少在一门课程上是最优的,Mr.White就认为该学生是成功的。输入第一行是两个整数n和m(1
2023-02-04 15:16:57
101
原创 ZZULIOJ 1250:有多高
Little Jing 有很多标杆,已知每个标杆的长度(不超过10000),现在她要把标杆插在地上,相同长度的标杆要接在一起(一个接在另外一个的上面)。Little Jing想知道最后地上插了多少根杆,你能帮帮她吗?每组实例输出一行,包含两个数,最后长度最高的那根杆所包含的标杆的数量,地上插了多少根杆,中间用一个空格隔开。(题目保证有唯一解)每组实例输入两行,第一行一个正整数n(n
2023-02-03 14:45:49
133
原创 ZZULIOJ 1246: Phone numbers
ZZULIOJ 1246: Phone numbers。题目描述Phone number in Berland is a sequence of n digits. Often, to make it easier to memorize the number, it is divided into groups of three digits. For example, the phone number 119733 is easier to remember as 119-733.
2023-01-31 15:02:17
119
原创 ZZULIOJ 1244:学长被狗追了!
ZY和WX骑车郊游,ZY先出发,每分钟X米,M分钟后,WX带一条狗出发。以每分钟Y米的速度去追ZY,而狗则以每分钟Z米的速度向ZY跑去,追上ZY后又立即返回,直到WX追上ZY时,狗跑了多少米?每组测试数据占一行,是四个正整数,分别为M,X,Y,Z(数据保证X < Y < Z )第一行输入一个整数N,表示测试数据的组数( N < 100 )输出狗跑的路程,结果保留小数点后两位。
2023-01-31 13:27:24
138
原创 ZZULIOJ 1236: 数的逆转
ZZULIOJ 1236:数的逆转 Birdfly是一位优秀的acmer,他自幼都数学有着浓烈的兴趣。作为一名集训队员,总爱思考一些新奇的问题,寻求不同的解题方法。他想,任意给你一个整数,这个数可能很大(最长不超过100位),你能求出它的逆转数吗。3.一个末尾有0的整数,它的逆转数如同下例:reverse (1200) = 2100。看着birdfly难以入睡,我只好求助于聪明的你编程实现这个问题,相信你一定能帮上忙的。
2023-01-26 14:46:14
203
原创 ZZULIOJ 1210:东东的女朋友(二)
zzulioj 1210 每个女朋友都要东东陪她们,但是现在东东的女朋们每天也都需要上课,所以不可能一整天都有时间。现在的问题是,给出东东女朋友每一天的空闲时间,问东东最少用多少天可以陪每个女朋友至少一次。当然当东东在陪一个女朋友时间段内不可以同时去陪另一个女朋友。第一个数t表示有t组测试实例,每组测试实例的第一个数n(n
2023-01-21 22:48:29
225
原创 ZZULIOJ 1194:总成绩排序(结构体专题)
ZZULIOJ 1194:总成绩排序(结构体专题)然后输入n行,每行包含一个学生的信息:学号(12位)、姓名(不含空格且不超过20位),以及3个整数,表示3门课成绩,数据之间用空格隔开。有一学生成绩表,包括学号、姓名、3门课程成绩。请按如下规则排序:按总成绩降序排序,若总成绩相同,则按姓名升序排序。首先输入一个整数n(1
2023-01-19 20:08:47
298
原创 ZZULIOJ 1205 : 你爱我么?
这时候一个算命先生告诉他让他查花瓣数,第一个花瓣表示"爱",第二个花瓣表示"不爱",第三个花瓣表示"爱".....为了使最后结果是"爱",LCY需要从n束花中选出一些,你能帮他算出最后他送给这个女生的花中最多包含多少个花瓣吗?然后输入一行,n个数a1,a2...an(1
2023-01-19 19:48:54
132
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人