自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 idea自动在运算符前后加空格

使用方法:在后面空格前按 快捷键 按Whole file然后按RUN就好了。快捷键:Ctrl+Alt+Shift+l。

2025-02-25 16:10:44 156

原创 同步git远程分支

当在远程新建了分支时,本地未更新新分支时,可以使用git fetch origin或者git remote update origin --prune命令更新。

2025-02-21 09:00:28 379

原创 navigate中数据库表中每一列的信息查看

navigate中数据库表中每一列的信息查看-》目标表-》右键-》设计表。

2025-02-21 08:55:05 91

原创 神领物流day3支付宝支付的调用的问题

需要在数据库的配置文件表,修改自己的appid,支付宝公钥,应用私钥(应用私钥需要通过支付宝开放平台密钥工具转化为PKCS8 形式);然后需要注释掉”https“,只保留域名即可(不需要前缀和后缀)域名地址也要更改为自己的。

2025-02-19 10:55:07 161

原创 Java并发编程

Thread Dump是非常有用的诊断Java应用问题的工具。每一个Java虚拟机都有及时生成所有线程在某一点状态的thread-dump的能力,虽然各个 Java虚拟机打印的thread dump略有不同,但是大多都提供了当前活动线程的快照,及JVM中所有Java线程的堆栈跟踪信息,堆栈信息一般包含完整的类名及所执行的方法,如果可能的话还有源代码的行数。

2024-09-23 13:35:49 258

原创 虚拟机学习

虚拟机的优点:虚拟机使用教程:

2024-07-25 16:17:56 515

原创 短链接day10

用户横向越权是指在系统中,用户 A 能够访问或操作用户 B 的数据或功能,而这种访问或操作是未经授权的。这种安全漏洞通常出现在访问控制不严格或错误配置的系统中。如何复现用户横向越权?咱们短链接监控有四个获取监控数据方法,假设系统有两个用户:用户 A 和用户 B。用户 A 创建短链接/aaaaaa,用户 B 创建短链接/bbbbbb,只要用户任意登录,就可以访问任意创建的短链接监控数据。

2024-07-18 12:51:15 887

原创 短链接day9

比如网络宕机了,messageQueueIdempotentHandler.delMessageProcessed(id.toString())未执行,因为ack没有得到,所以mq会进行重试,会检查messageId有没有,如果有的话就会返回失败。所以在判断标识是否存在时,当已经存在标识时,还需要判断消费流程是否执行完成,防止未执行完成时,直接失败。因为这个key其实是存在redis中的,如果时间过长,redis中缓存的key数据量就会大,占用内存多,所以设置时间短一些,可以减少key存储的数量。

2024-07-17 15:39:15 1238

原创 短链接day8

不知道为什么我的后管系统报错【用户Token验证失败】,但是调试中,只有admin的filter用来两次,其中都没有走错误,所以不知道会报错。导致后面的都无法校验了。不知道是哪里复制错了,反正就是一顿报错,改了这个又改那个,还是报错。:在某些场景下,我们可能想要表示某个属性不应该映射到数据库表的任何列上。logdo新增networt、device、local属性。字段)的值为NULL,则使用0作为替代值;最后,这个表达式的结果被命名为。不是NULL,则直接使用。这段代码的作用是:如果。

2024-07-16 15:59:19 233

原创 短链接day7

uvFirstFlag是一个AtomicBoolean类型的变量,它是线程安全的。由于AtomicBoolean的特性,这个读取操作是安全的,不会受到其他线程的影响。@Param的作用就是给参数命名,比如在mapper里面某方法A(int id),当添加注解后A(@Param("userId") int id),也就是说外部想要取出传入的id值,只需要取它的参数名userId就可以了。是 Spring 框架中的一个非常有用的注解,它主要用于将配置文件中的值注入到 Spring 管理的 Bean 的字段中。

2024-07-15 23:30:44 759

原创 短链接day6

缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。解决方案:接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的直接拦截;从缓存取不到的数据,在数据库中也没有取到,这时也可以将key-value对写为key-null,缓存有效时间可以设置短一些,如30秒(设置太长会导致正常情况也没法使用)。这样可以防止攻击用户反复用同一个id暴力攻击。

2024-07-13 00:02:30 1220

原创 短链接day5

在MyBatisPlus中,当实体类的属性是基本数据类型(如int)而不是其包装类型(如Integer)时,可能会遇到一些特殊行为,尤其是在动态SQL生成的场景中。但如果是int类型,由于它不能为null,在实体类实例化时,默认值为0,这可能导致以下情况: 如果你本意是想根据某个条件动态地决定是否添加到查询中,而这个条件对应的实体类属性是int类型,默认值0会被误解为有效的查询条件,即where子句中会包含这个字段等于0的条件。的实例,同样支持链式调用各种条件方法来构建查询条件。

2024-07-11 17:43:49 822

原创 短链接day4

如果用身份证号+名字去找就是URN(身份证号+名字 无法确认资源的地址)。在Java类库中,URI类不包含任何访问资源的方法,只能标识资源。URL类可以访问资源,可以获取指定资源的流信息。由于海量数据,并且为了防止多次查询数据库,需要去查缓存,所以需要用分布式锁,从而这个用布隆过滤器实现(在用户注册时,同样使用了)。打包工具,在admin和project的pom中添加,用于联调前端,这个打包插件会让打包有一个直接可以启动的spring文件。为了防止死循环,需要设置一个最大的重置次数。记住是加了反引号的!

2024-07-10 17:26:19 497

原创 短链接day3

JSONField注解可以用在方法(method),属性(field)以及方法中的参数(parameter)上。JSONField中的name属性用来指定JSON串中key的名称。在修改功能实现时,会出现请求成功了,但是数据库信息未更改,原因是token已经过期了,所以需要重新登录。其中,@JSONField(name = "id")来设置userinfodto中的userid。设置线程安全的TTL,实现跨线程的异步传输。在新增之前,需要判断gid是否是唯一的。删除一般用软删除,所以用update做。

2024-07-09 17:52:55 379

原创 spring security的demo

还是不太会,有人有更详细的资料分享一下,还有sa-token的demo加说明。WebSecurityConfigurerAdapter已被弃用。

2024-07-09 12:51:24 419

原创 责任链模式

责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。责任链模式允许多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。责任链模式通过将多个处理器(处理对象)以链式结构连接起来,使得请求沿着这条链传递,直到有一个处理器处理该请求为止。

2024-07-09 10:56:24 537

原创 EasyPOI与Apache POI

在读写数据的时候,优先是先将数据写入内存,优点是读写性能非常高,但是当数据量很大的时候,会出现oom,当然它也提供了 sax 模式的读写方式,需要调用特定的方法实现。如果你主要处理 Excel 文件,而且希望简化开发流程,EasyPoi 或 EasyExcel 都是不错的选择,具体可以根据个人或团队的偏好和需求选择。基于sax模式进行读写数据,不会出现oom情况,程序有过高并发场景的验证,因此程序运行比较稳定,相对于 easypoi 来说,读写性能稍慢!

2024-07-08 11:22:57 600

原创 JPA、Hibernate、Spring Data JPA的区别

spirng data jpa是spring提供的一套简化JPA开发的框架,按照约定好的【方法命名规则】写dao层接口,就可以在不写接口实现的情况下,实现对数据库的访问和操作。ORM框架将会忽略该属性。总结:jpa是一种orm的规范,hibernate是一种orm框架,是jpa的一种实现,spring data jpa是jpa的再次封装,用于简化jpa操作。2)JPA 的API:用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。

2024-07-08 09:54:25 389

原创 @Entity与@target的区别

Entity说明这个class是实体类,并且使用默认的orm规则,即class名就是数据库表中表明,class字段名即表中字段名。@Entity注解指明这是一个实体Bean。@Table注解默认情况下只会完成表和实体之间的映射,声明才对象映射到数据库的数据表,通过它可以为实体指定表(table)。@Entity注解和@Table注解都是Java Persistence API中定义的一种注解。

2024-07-08 09:40:40 476

原创 短链接学习day2

需要注意的是,转换过程中,BeanUtil.toBean()方法通过反射机制创建了目标类型的实例,并将数据源对象的属性值复制到目标对象中。但是为了防止redis的主节点挂掉后,从节点变成主节点时,有些数据还没复制,就会导致脏数据,就会可能导致用户名重复,所以为了防止这个情况,我们需要将username设置为唯一索引,让数据库兜底。因为用户名不是特别重要的数据,如果说我设置用户名为 aaa,系统返回我不可用,那我大可以在 aaa 的基础上再加一个a,也就是 aaaa。一定要记得写枚举的时候是用逗号分割。

2024-07-05 15:01:57 1289

原创 短链接项目day1学习记录

接口文档:ApiFox用于公共的依赖,默认都会下载,只有在子类去引用时才会下载。

2024-07-05 00:26:45 1082 1

原创 FreeMarker学习记录

FreeMarker 被设计用来生成 HTML Web 页面,特别是基于 MVC 模式的应用程序,将视图从业务逻辑中抽离处理,业务中不再包括视图的展示,而是将视图交给 FreeMarker 来输出。虽然 FreeMarker 具有一些编程的能力,但通常由 Java 程序准备要显示的数据,由 FreeMarker 生成页面,通过模板显示准备的数据。FreeMarker 是一款模板引擎: 即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。

2024-07-03 15:11:44 356

原创 hibernate与jpa学习

ORM框架/持久层框架(Object Relational Mapping) 它是是一个轻量级开放源代码的对象关系映射框架,hibernate可以自动生成SQL语句,自动执行,可以使用面向对象思想来操作数据库。在team中设置lazy为true后,在测试时,查询team,不用查players,如果为false,就会查两次,一次team,一次players。jpa是一个规范,hibernate是jpa的实现,是一种框架。尽量减少java程序与数据库的交互次数。

2024-07-03 14:25:32 539

原创 数据库连接池

数据库连接池是一个维护数据库连接的池子,它预先创建一定数量的数据库连接,并将这些连接保存在池中,以便应用程序在需要时可以从池中获取连接,而不是每次都创建新的连接。数据库连接是一种昂贵的资源,创建和销毁连接的开销很大。通过使用连接池,可以避免频繁地创建和销毁连接,提高了数据库访问的性能和效率。连接池还可以控制连接的数量,防止连接数过多导致数据库性能下降,同时还可以管理连接的状态、超时和异常处理。C3P0 是一个开源的 JDBC 数据库连接池库,它提供了高度灵活和高性能的连接池实现。

2024-07-03 12:48:45 341

原创 IDEA自定义注释模板

主要一开始我还在includes里面的file header添加了一样的模板信息,导致我创建类时,一下出现多个类文件。可以设置一些公司配置以及类描述。

2024-07-03 10:34:53 303

原创 dependencyManagement使用时无法加载

在加载依赖时,我是直接复制的别人的pom文件,然后里面的依赖是由dependencyManagement管理的,然后我发现我的很多依赖包找不到,查看自己的sdks也是jdk17版本,搜索很久都无法解决。然后突发奇想,把dependencyManagement删掉,看能不能加载依赖,结果加载没错。依赖下载没错过后才又将dependencyManagement加上,其实也想知道为什么会出现这样的效果?

2024-07-03 09:19:38 160

原创 maven: Dependency not found

使用方法2解决。

2024-07-03 09:14:41 290

原创 黑马头条day6总结

我看教程的代码中没有,【@ComponentScan({"com.heima.apis","com.heima.wemedia"})】,所以我删除了,删除了就开始报错,找不到某某bean,所以我还是保留了。一开始没加@EnableFeignClients(basePackages = "com.heima.apis")导致获取ischeduleClient错误,找不到bean。

2024-05-28 15:51:48 317

原创 黑马头条day5总结

用finishshell打开redis过后,用法docker ps查看时发现redis无port映射,后续试了很多种方法,都没有映射成功。后来猜测可能是redis版本问题,因为我自己重新docker pull redis了,然后我又重新用的资料中的虚拟机打开redis就没问题了。没有设置taskinfoLogs默认的执行时间。添加【taskinfoLogs.setExecuteTime(new Date(task.getExecuteTime()));

2024-03-25 21:01:58 1243

原创 黑马头条day3总结

运行时报错Caused by: java.lang.NoClassDefFoundError: com/heima/model/wemedia/dtos/WmLoginDto。解决:maven中clean然后compile。不知道为什么我每次写完一个接口,运行应用类之前都几乎需要重新clean和compile,不然就会报错。才发现是因为引入service没加@Autowired注解。nginx配置的这个地址一定要与你放的前端代码位置相同。重新clean,然后compile就行了。

2024-03-19 22:20:12 409

原创 黑马头条day2总结

明明有这些内容,不知道为什么运行就会出错。

2024-03-18 22:49:07 382 3

原创 黑马头条day1记录

由于在vmware上直接更改权限不足,所以我先用的【ifconfig】查看当前的ip地址,通过finalshell连接这个ip地址过后,通过【sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33】更改。然后我发现我用的数据库版本跟复制的pom.xml的版本不一样,老师的是5.**,我是8.0.36,然后我就改正,但是找不到8.0.36,下载8.0.26可以的。首先配置nacos的文件,数据库密码我不是root,所以改成自己的了。

2024-03-18 18:09:07 1958

原创 谷粒商城问题集合

由于以前下载过VMware,出现这种情况用ipconfig /all才查找到vitualBox。

2024-03-14 13:51:05 382

原创 苍穹外卖day12总结

1.介绍Apache POI是一个处理MiscrosoftOffice各种文件格式的开源项目。简单来说就是,我们可以使用POI在Java程序中对MiscrosoftOffice各种文件进行读写操作。一般情况下,POI都是用于操作Excel文件。Apache POI的应用场景:•银行网银系统导出交易明细•各种业务系统导出Excel报表•批量导入业务数据2.入门案例·Apache POI的maven坐标:将数据写入Excel文件:读取。

2024-03-08 00:23:45 367 1

原创 苍穹外卖day11总结

1.ApacheECharts1.ApacheECharts是一款基于Javascript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。ApacheEcharts总结:使用Echarts,重点在于研究当前图表所需的数据格式。通常是需要后端提供符合格式要求的动态数据,然后响应给前端来展示图表。2.营业额统计。

2024-03-07 18:50:18 656 1

原创 苍穹外卖day10总结

WebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接, 并进行双向数据传输。HTTP协议和WebSocket协议对比•HTTP是短连接•WebSocket是长连接•HTTP通信是单向的,基于请求响应模式•WebSocket支持双向通信•HTTP和WebSocket底层都是TCP连接应用场景视频弹幕、网页聊天、体育实况更新、

2024-03-07 09:26:36 976 1

原创 苍穹外卖day9总结

这意味着,如果你传递一个 List 类型的参数,那么 MyBatis 只会将 List 对象中的第一个元素作为参数进行处理,而忽略掉其它元素。`Stream`接口中的`collect()`方法用于将流中的元素收集到一个集合中。通过`collect()`方法可以指定将流中的元素收集到某种集合类型中,比如`List`、`Set`、`Map`等,也可以实现自定义的收集逻辑。方法用于将集合转换为一个流(Stream),这样就可以利用流式编程的特性对集合中的元素进行各种操作,比如过滤、映射、排序、归约等。

2024-03-06 10:41:44 1229 1

原创 苍穹外卖day8总结

JSAPI下单商户系统调用该接口在微信支付服务后台生成预支付交易单。

2024-03-05 21:14:40 1861

原创 苍穹外卖day7总结

用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大。

2024-03-05 01:51:30 2030

原创 苍穹外卖day6总结

1.导入maven坐标2.核心API3.发送请求步骤:创建HttpClient对象创建Http请求对象调用HttpClient的execute方法发送请求。

2024-03-03 18:27:13 786

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除