- 博客(469)
- 资源 (2)
- 收藏
- 关注
原创 Java对象与JSON字符串的互转
测试2:json字符串数组 与 List集合对象 互转。测试3:json字符串 与 装有对象的Map 互转。JSON 字符串数组 转 List 集合对象。List 集合对象 转 JSON 字符串数组。测试1:json字符串 与 普通对象 互转。JSON 字符串 转 装有对象的 Map。装有对象的Map 转 JSON 字符串。JSON 字符串 转 普通对象。普通对象 转 JSON 字符串。
2025-04-01 11:11:03
184
原创 transient关键字详解
transient是短暂的意思。对于transient 修饰的成员变量,在类的实例对象的序列化处理过程中会被忽略。因此,transient变量不会贯穿对象的序列化和反序列化,生命周期仅存于调用者的内存中而不会写到磁盘里进行持久化。上面讲的在对象序列化过程中,被transient 修饰的成员变量会被忽略。可能大家都知道序列化,就是实体类实现Serializable接口嘛!但是什么是序列化呢?具体什么样的操作才是序列化呢?
2025-01-06 15:48:18
697
原创 RBAC权限控制
遍历将每个url添加到授权规则当中,这个规则是无需认证就可以授权访问的,也就是支持匿名访问,就是再这个url里面的都可以匿名访问。开启Spring Security各种功能,以确保Web应用程序的安全性,包括认证、授权、会话管理、过滤器添加等。第二行将相同的过滤器添加到LogoutFilter之前,表示用户退出的时候,跨域请求能够正确处理;如果这么改就表示该方法在未登录下也可以匿名访问了,这个注解可以放方法上面也可以放类上面。存密码用此工具类加密,进行登录的时候用此工具类实现密码比较;
2024-12-28 22:43:46
912
原创 mp里面实现公共字段自动填充怎么实现的?
在MyBatis-Plus中实现公共字段自动填充(如创建人、创建时间、更新人、更新时间)可以通过使用自定义的 MetaObjectHandler 来实现。通过以上步骤,就可以实现在插入和更新操作时自动填充公共字段。当进行插入或更新操作时,MyBatis-Plus会自动调用 MetaObjectHandler 中定义的方法来填充相应的字段。insert,update方法自动加入创建人,创建时间,更新人,更新时间。以下答案来自chatgpt,暂时记录下。
2024-12-16 20:44:50
324
原创 公共字段自动填充(只适用mysql,不适用mp,好好理解下反射)
import com/*** 自定义注解,用于标识某个方法需要进行功能字段自动填充处理*/ @Target(ElementType . METHOD) //指定当前注解是加在方法上 @Retention(RetentionPolicy . RUNTIME) //固定的写法 public @interface AutoFill {//数据库操作类型:UPDATE INSERT,用枚举 OperationType value();/**
2024-12-16 20:41:57
269
原创 websocket demo案例
/监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。//判断当前浏览器是否支持WebSocket。//连接WebSocket节点。//连接发生错误的回调方法。//连接成功建立的回调方法。//接收到消息的回调方法。//连接关闭的回调方法。//将消息显示在网页上。
2024-12-15 20:25:34
713
原创 前端安装笔记
2、安装webstorm 下载地址:https://www.jetbrains.com/webstorm/download/other.html。镜像换成:https://registry.npmmirror.com。1、安装nodejs 版本14以上就可以。
2024-12-12 11:23:54
144
原创 C盘扩容(亲测有效)
因为在Windows系统中,只有压缩后的空间紧贴在C盘的右侧才能进行合并,但是我们从其他盘压缩的空间又在该盘的右边,也就是说我从E盘压缩的空间就紧靠在E盘的右边,系统默认是无法进行合并的,我们只能依靠第三方软件。打开DiskGenius之后,我们右键单击C盘,然后点击“扩容分区”,软件会默认选择我们刚刚压缩处出来的空间,然后后面一路点确定即可,要注意的是,这里系统需要重启进入PE环境之后再重启进入系统,不过我们不需要理会它,只需要等待一会之后电脑就会自动开机了。在桌面右键单击“此电脑”,选择“管理”
2024-12-11 22:16:15
1312
原创 package,install,deploy的区别
install:打包之后拷贝到本地仓库;deploy:打包之后上传到私服;package:打包。
2024-12-07 14:41:22
176
原创 微服务架构中的 熔断和降级
:接入一个跨服务的降级策略,当发现读服务的响应时间超过了阈值的时候,或者响应时间开始显著上升的时候,就将针对 B 端商家用户的服务临时停掉,腾出来的资源都给 C 端用户使用。作为指标,如果业务对响应时间的要求是在 1s 以内,那么你的阈值就可以设定在 1s,或者稍高一点,留点容错的余地也可以,原则上阈值应该明显超过正常响应时间。如果我们判断一个服务响应时间过长,进入了熔断状态,那么一段时间(比如十分钟)过后,已接收的请求已经被处理完了,也就是服务已经恢复正常了,那么就需要退出熔断状态,继续接收新请求。
2024-12-05 14:52:31
1156
原创 docker文件还在,但是docker images不显示 ,镜像消失问题
这个问题之前卡了一段时间后来发现是daemn.json文件的配置问题,一般情况下是默认挂载路径的,但是我的json文件多加了一句 “data-root”: "/data/docker"导致挂载路径出了问题,把最后这个删掉重启docker解决问题。1、我的daemn.json文件。
2024-12-05 14:26:48
689
原创 docker安装笔记
注意:只有镜像状态是关闭(exited)的时候才可以删除,是启动状态(up)的时候,不可以删除该docker镜像;首次进入会设置用户名和密码,如果进来显示不是首次进入,重启portainer。谷歌浏览器访问http://111.230.112.115:9000/搭建好docker之后,再安装个portainer。111.230.112.115是你的服务器的地址。
2024-12-03 09:28:57
227
原创 幂等性是什么?
4.session机制(后台服务端)在服务器端,生成一个唯一的标识符,将它存入session,同时将它写入表单的隐藏字段中,然后将表单页面发给浏览器,用户录入信息后点击提交。另外在服务器端,获取表单中隐藏字段的值,与session中的唯一标识符比较,如果相等说明是首次提交,就处理本次请求,然后将session中的唯一标识符移除,如果不相等即重复提交。所谓的幂等性,是分布式环境下的一个常见问题,一般是指我们在进行多次操作时,所得到的结果是一样的,即多次运算结果是一致的。使用浏览器历史记录重复提交表单;
2024-11-29 11:21:12
322
原创 @Accessors用法详解
开启链式编程 设置chain=true时,setter方法返回的是this(也就是对象自己),代替了默认的返回值void,直接链式操作对象。
2024-10-09 09:08:52
389
原创 websocket实战
/监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。//监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。//连接发生错误的回调方法。//连接成功建立的回调方法。//连接发生错误的回调方法。//连接成功建立的回调方法。//接收到消息的回调方法。//接收到消息的回调方法。//连接关闭的回调方法。//将消息显示在网页上。//连接关闭的回调方法。//将消息显示在网页上。
2024-09-29 08:56:33
1190
原创 SpringBoot集成阿里easyexcel(二)Excel监听以及常用工具类
EasyExcel中非常重要的AnalysisEventListener类使用,继承该类并重写invoke、doAfterAllAnalysed,必要时重写onException方法。
2024-09-25 14:55:57
905
原创 SpringBoot集成阿里easyexcel(一)基础导入导出
easyexcel主要用于excel文件的读写,可使用model实体类来定义文件读写的模板,对开发人员来说实现简单Excel文件的读写很便捷。可参考官方文档。
2024-09-25 14:50:15
424
原创 Java开发:文件上传和下载
其中一个原因是, 使用multipart/form-data编码,需要对数据进行分块处理,增加时间开销。(2)返回 void 的方式通常会使用流式传输(streaming)的方式来发送文件内容,这意味着文件是以一段一段的方式发送的。(1)返回byte[]:需要在内存中存储整个文件内容,对于大文件可能会导致内存问题。1、节省内存:整个文件不需要一次性加载到内存中,减少了内存占用。2、更高效:可以立即开始传输文件的部分内容,而不需要等待整个文件加载完成。后端两种写下载的方式:返回void和返回byte[]
2024-09-24 15:56:12
1206
原创 Spring 过滤器:OncePerRequestFilter 应用详解
OncePerRequestFilter是Spring提供的一个过滤器基类,它确保了在一次完整的HTTP请求中,无论请求经过多少次内部转发,过滤器的逻辑都只会被执行一次。这对于需要在请求处理之前或之后进行一次性设置或清理资源的场景特别有用。OncePerRequestFilter是Spring框架中一个非常有用的工具,它可以帮助你在一次完整的HTTP请求中仅执行一次过滤器的逻辑。
2024-08-29 17:33:31
724
原创 拦截器(Interceptor)与过滤器(Filter)
拦截器是面向切面(AOP)编程中应用的一种统一处理方案,就是在你的Controller、Servie或者一个Method调用一个Method,或者在Method调用一个Method之后,统一的进行处理的方案,基于Java的反射机制。拦截器,在AOP(Aspect-Oriented Programming)中可以用于在某个方法或者字段被访问之前,进行拦截,然后在之前或者之后加入某些统一的处理方法。拦截是AOP的一种具象的实现方式。
2024-08-29 17:15:40
970
原创 Java三大器之拦截器(Interceptor)的实现原理及代码示例
拦截器的实现,用到的是JDK实现的动态代理,我们都知道,JDK实现的动态代理,需要依赖接口。会查找配置文件,并根据配置实例化相对的拦截器对象,然后串成一个列表(List),最后一个一个的调用列表中的拦截器。第三步:在需要使用Action中引用上述定义的拦截器,为了方便也可以将拦截器定义为默认的拦截器,这样在不加特殊说明的情况下,所有的。目前,我们需要掌握的主要是Spring的拦截器,Struts2的拦截器不用深究,知道即可。4.1,拦截器是基于java反射机制来实现的,而过滤器是基于函数回调来实现的。
2024-08-29 16:57:17
1737
原创 lombok的@AllArgsConstructor 和 @Value 冲突
但是发现此时a对象的age属性值为0,即没有注入成功。这是因为@AllArgsConstructor会把原来的不带参的构造函数覆盖掉,导致Spring没法找到符合的构造函数进行注入。解决方法是使用@RequiredArgsConstructor代替@AllArgsConstructor,这样就会保留不带参的构造函数用于Spring注入。给一个A对象,有两个属性name和age,分别用构造函数和注解@Value注入值。但是,如果同时使用Spring的@Value注解,则可能会出现无法注入值的情况。
2024-07-30 14:47:37
321
原创 ESB是什么?
对技术管理者来说,通过ESB把IT能力整个控制起来,便于管理、复用,降低成本和复杂性,进而对业务流程的梳理与优化提供技术与数据支撑。对于业务系统开发和维护者来说,把集成逻辑的复杂性从业务系统里解耦出来,丢到集成容器中去处理,降低了业务系统本身的复杂度。通过ESB,可以实现集成业务处理,监控系统间消息流动,管理系统间交互的业务服务。ESB的关注点是集成,核心概念是服务和消息,主要方式是协议适配和中介处理。各种中介处理,就是过滤器。中介服务:支持各种集成场景,支持各种消息处理与转换模式,特别是对EIP的支持。
2024-06-26 14:28:35
899
原创 cannot connect to already running IDE insrance execption:process 2837 is still running
lock属于隐藏文件,如果在这个目录下找不到这个文件可以用。找到idea项目的地址。然后重启idea即可。
2024-06-11 10:17:29
276
原创 正向代理和反向代理
正向代理:由于服务不能直接访问外面的网站,通过ng出去,配置是原样出去,在服务的代理里需要有porxyip和proxy port 用来指定该访问通过哪个ng,监听哪个端口号出去,(服务访问:http://esign.com:8080/gsgasd/);反向代理:服务访问http:ng的ip:ng的端口号/要访问的路径/、配置里面通过监听端口号代理出去,打到本台ng的服务,通过某个端口号就指定访问某个网站,(服务访问:http://9.234.0.14:7999/esign/gasgda);
2024-05-27 09:26:12
155
原创 ng反向代理 conf配置
意思是访问路径有/tsign的,通过rewrite 用proxy_pass 的值拼上/tsign后面的值。这两种写法同效,但如果访问路径不想过滤掉 /tsign。注意:proxy_pass后面没有/修改完conf后要重启才生效。
2024-04-22 16:17:04
275
原创 chain.doFilter(request,respnse)
DoFilter方法被容器调用,同时传入分别指向这个请求/响应链中的Servlet,Request,Servlet Response和Filter Chain对象的引用,然后过滤器在处理请求时,将处理任务传递给链中的下一个资源(通过调用Filter Chain对象引用上的doFIlter方法),之后在处理控制权返回该过滤器时处理的响应。chain.doFIlter(request,response)将请求转发给过滤器链上的下一个对象(filter), 如果没有filter那就是你的请求的资源。
2024-04-10 15:26:35
528
原创 Optional.ofNullable().orElse()
Optional.ofNullable(值1).orElse(值2)这个方法就是如果值1为null,就走值2,如果值1有值,就返回值1。
2024-04-08 09:46:45
1726
原创 spring注解@SneakyThrows
对于RuntimeException即运行时异常,在代码中可能会有RunTimeException,但是Java编译检查时是不会告诉你有这个异常的,它会在实际运行代码时则会暴露出来,比如经典的1/0,空指针等。使用注解后,在编译时,自动将注解替换为try-catch。java中常见的异常有两种:Exception即非运行时异常(编译异常)、RuntimeException即运行时异常。对于Exception即非运行时异常(编译异常),必须要开发者解决以后才能编译通过,解决的方法有两种,
2024-04-08 09:43:11
543
原创 gitLab server version 13.12.1 is not supported
版本太低了,这里不准备升级版本,打算继续使用账号密码来拉取代码。拉代码的时候,报的这个错,实际上就是因为。
2024-03-18 09:27:45
1057
原创 DDL和DML
适用范围:对数据库中的某些对象(例如,database,table)进行管理,如Create,Alter和Drop.适用范围:对数据库中的数据进行一些简单操作,如insert,delete,update,select等.二、DML (数据操纵语言,Data Manipulation Language )一、DDL(数据定义语言,Data Definition Language)建库、建表、设置约束等:create\drop\alter。desc stud;3、更改表结构(设置约束)4、删除表、删除数据库。
2024-03-09 16:03:15
328
原创 Spring注解@NoNull、@NotEmpty、@NotBlank的区别及注解无效以及嵌套对象的无效解决办法
isBlank(final CharSequence cs), 我自己更喜欢使用StringUtils.isBlank(final CharSequence cs)来执行判空操作,因为判断的条件更多更具体,特别是进行参数校验时,推荐使用。不能为null,但可以为empty(“”," “,” “) ,一般用在基本数据类型的非空校验上,而且被其标注的字段可以使用 @size/@Max/@Min对字段数值进行大小的控制。(2)嵌套对象,对象的对象中失效解决办法,需要在外层对象的属性上加@Valid。
2024-02-28 16:14:29
4213
1
原创 使用IDEA对于git项目版本的分支-合并(删除)管理
然后在将本地dev的分支push到远程仓库就ok啦。这样并删除了remote仓库中的一个dev-2020-0902这样的远程分支,记得将本地local也删除掉,操作方式同样!切换到本地某个分支,执行后,在push,这样远程兵创建了如下test分支。首先切换到别的分支,然后删除你想要删除的分支例如dev20181018。切换到本地当前某个分支,执行如下命令,成功后再点击push。拉取完新的分支后记得push,发布remote仓库中去。这样并从master远程仓库中拉取了一个你需要的分支!
2024-02-23 16:29:51
972
原创 Git常用指令:删除分支
2. 删除远程分支 dev:3. 查看远程分支与本地分支的同步情况:4. 清理本地不存在的远程分支:5. 查看本地和远程所有分支:
2024-02-23 16:25:21
220
ChineseTextualInference-master.zip
2021-05-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人