自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

悟已往之不谏,知来者之可追

内存虽快,但不持久

  • 博客(1154)
  • 资源 (67)
  • 问答 (12)
  • 收藏
  • 关注

原创 mybatis 枚举值,映射为枚举类型,使用typehandle

要在存储到 MySQL 时使用枚举的代码值,然后在读取时将其转换为枚举对象,你可以使用 MyBatis 的类型处理器(TypeHandler)来实现这一点。这样,当你从数据库中读取 person_id_type 字段时,PersonIdTypeHandler 类会将存储的代码值转换为相应的枚举对象。在 PersonIdTypeHandler 类中,覆盖 getResult 方法以将从数据库中读取的值转换为枚举对象,并覆盖 setParameter 方法以将枚举对象转换为存储在数据库中的值。

2024-04-13 15:19:23 34

原创 left join limit offset 分页查询问题

在开始讨论LEFT JOIN的使用方法之前,让我们先简要回顾一下LEFT JOIN的概念。LEFT JOIN是一种用于将左表和右表连接起来的操作。它会返回左表中的所有记录,并且对于每条左表记录,如果在右表中找到符合条件的记录,就将其连接起来。如果没有匹配的记录,则右表的相应字段将被设置为NULL。

2024-04-13 15:12:36 59

原创 java: 找不到符号 符号: 方法 onMethod_() 位置: @interface lombok.Setter

比如和我这个冲突的插件就是。

2024-04-12 20:42:28 30 1

原创 limit offset 根据id查询,不连续会重复

比如1-100 的区间,有不连续的,id从98 直接到100 少了。那么此时limit 100 就会把下个区间的101也查出来,而下个区间,假如 limit offset 根据id查询,不连续,则返回数据会重复。比如101 ,也会再次被查询出来。

2024-04-10 14:51:12 16

原创 More than one argument (#0 and left as delegating for Creator) 报错解决

此时可以使用@JsonProperty来指定。如果有多个参数,则会无法绑定。

2024-04-10 14:24:31 18

原创 JAVA如何获取上周一凌晨和上周日24点

【代码】JAVA如何获取上周一凌晨和上周日24点。

2024-03-20 10:47:27 21

原创 JsonCreator注解InvalidDefinitionException报错解决

其中包含了四种模式:DEFAULT(默认模式)、DELEGATING(委派模式)、PROPERTIES(属性模式)和DISABLED(禁用模式)。这些模式用于指示在创建对象时应该如何绑定参数。DELEGATING 默认只能用一个参数,如果要用多个,请使用PROPERTIES模式,并且使用。这样反序列化的时候也不会出问题,会使用反射来setter字段。注解指定,否则框架在反序列的话,无法区分。

2024-03-08 19:29:59 120

原创 通过aop实现通用日志

这个操作日志的模板最后记录的内容是这样的格式:修改了订单的配送员:从 “10090”,修改到 “10099”,显然用户看到这样的操作日志是不明白的。用户关心的是配送员的姓名和电话。下面的例子把变量放到了 LogRecordContext 中,然后 SpEL 表达式就可以顺利的解析方法上不存在的参数了,通过上面的 SpEL 的例子可以看出,要把方法的参数和 LogRecordContext 中的变量都放到 SpEL 的 getValue 方法的 Object 中才可以顺利的解析表达式的值。

2024-03-08 19:23:54 47

原创 Spring Security 存储密码之 JDBC

Spring Security的JdbcDaoImpl实现了UserDetailsService接口,通过使用JDBC提供支持基于用户名和密码的身份验证。JdbcUserDetailsManager扩展了JdbcDaoImpl,通过UserDetailsManager接口提供UserDetails的管理功能。当Spring Security配置为接受用户名/密码进行身份验证时,将使用基于UserDetails的身份验证。

2024-01-26 16:46:11 124

原创 Spring Security 密码存储 之 内存认证

Spring Security的InMemoryUserDetailsManager实现了UserDetailsService,以提供对存储在内存中的基于用户名/密码的身份验证的支持。在下面的示例中,我们使用User.withDefaultPasswordEncoder来确保存储在内存中的密码受到保护。在基于XML的配置中,没有简单的方法来使用User.withDefaultPasswordEncoder。前面的示例将密码以安全格式存储,但在入门体验方面还有很多需要改进的地方。

2024-01-24 20:56:59 93

原创 Spring Security 之摘要认证

HTTP摘要认证的标准由RFC 2617定义,它更新了由RFC 2069规定的早期版本的摘要认证标准。Spring Security对摘要认证的支持与RFC 2617规定的“auth”质量保护(qop)兼容,并提供了与RFC 2069的向后兼容性。如果需要使用未加密的HTTP(无TLS或HTTPS)并希望最大程度地提高认证过程的安全性,摘要认证被视为更有吸引力的选项。相反,你应该使用单向自适应密码哈希(如 bCrypt、PBKDF2、SCrypt 等)来存储凭据,而这是摘要认证不支持的。

2024-01-24 19:49:30 129

原创 Spring Security 之 基本认证

配置的 AuthenticationEntryPoint 是 BasicAuthenticationEntryPoint 的实例,它发送一个 WWW-Authenticate 标头。当用户提交他们的用户名和密码时,BasicAuthenticationFilter 通过从 HttpServletRequest 中提取用户名和密码创建一个 UsernamePasswordAuthenticationToken,这是一种认证类型。首先,用户对未经授权的资源 /private 发出未经身份验证的请求。

2024-01-24 19:37:21 117

原创 Spring Security 之 表单登录

当用户提交他们的用户名和密码时,UsernamePasswordAuthenticationFilter从HttpServletRequest实例中提取用户名和密码,创建一个UsernamePasswordAuthenticationToken,这是一种Authentication的类型。通常情况下,这是一个SimpleUrlAuthenticationSuccessHandler,它会重定向到由ExceptionTranslationFilter保存的请求,当我们重定向到登录页面。

2024-01-24 17:45:52 122

原创 mongo 聚合查询 - 小试牛刀

聚合查询configId为1231231312,且返回id和sum的map结构。

2024-01-24 14:38:23 36

原创 Spring Security 之 用户名/密码认证

通常,Spring Security会在内部构建一个由DaoAuthenticationProvider组成的AuthenticationManager,用于处理用户名/密码身份验证。在某些情况下,可能仍然希望自定义Spring Security使用的AuthenticationManager实例。例如,您可能需要简单地禁用对缓存用户的凭据擦除。推荐的做法是简单地发布您自己的AuthenticationManager bean,Spring Security会使用它。

2024-01-22 21:12:29 139

原创 Spring - Security 之 Servlet身份验证架构

AbstractAuthenticationProcessingFilter是用作验证用户凭据的基础过滤器。在凭据可以被验证之前,Spring Security通常会使用AuthenticationEntryPoint来请求凭据。接下来,AbstractAuthenticationProcessingFilter可以对提交给它的任何认证请求进行身份验证。

2024-01-22 20:55:09 146

原创 Spring Security工作原理(三)

如处理安全异常中所示,当请求没有认证且需要认证资源时,需要保存请求以便在认证成功后重新请求受保护的资源。在Spring Security中,这是通过使用RequestCache实现来保存HttpServletRequest来实现的。

2024-01-22 15:46:05 150

原创 Spring Security工作原理(二)

大多数情况下,默认安全过滤器足以为应用程序提供安全性。然而,有时您可能想要向安全过滤器链中添加自定义过滤器。例如,假设您想要添加一个过滤器,该过滤器获取请求中的头部信息:租户 ID, 并检查当前用户是否有权访问该租户。根据前面的描述,我们已经可以得知在哪里添加该过滤器,因为我们需要知道当前用户,所以我们需要在认证过滤器后面添加它。(3) return;(4) } }

2024-01-22 14:57:11 133 1

原创 spring data mongo 在事务中,无法自动创建collection

这个错误表明在执行写操作时出现了问题,错误消息指出无法在多文档事务中创建命名空间"xxx.xxx"。这通常与MongoDB的事务性操作或者数据库命名空间相关。您可能需要检查数据库配置、事务管理以及数据模型,以确保操作的正确性和有效性。

2024-01-19 16:09:10 139

原创 Spring Security工作原理(一)

Spring Security的Servlet支持是基于Servlet过滤器的,因此首先了解过滤器的一般作用是很有帮助的。下图显示了单个HTTP请求处理程序的典型分层结构。处理客户端发送的请求时,容器创建一个FilterChain,其中包含Filter实例和Servlet,根据请求URI的路径处理HttpServletRequest。在Spring MVC应用程序中,Servlet是DispatcherServlet的一个实例。

2024-01-19 14:06:22 51

原创 Spring Security的使用条件

由于Spring Security旨在以自包含的方式运行,因此您无需在Java运行时环境中放置任何特殊的配置文件。特别是,您无需配置特殊的Java认证和授权服务(JAAS)策略文件,也无需将Spring Security放置在常见的类路径位置。同样,如果您使用EJB容器或Servlet容器,您无需在任何地方放置任何特殊的配置文件,也无需将Spring Security包含在服务器类加载器中。所有所需的文件都包含在您的应用程序中。Spring Security要求使用Java 8或更高版本的运行时环境。

2024-01-17 17:17:44 174

原创 跨站点请求伪造攻击 - Cross Site Request Forgery (CSRF)

最好理解CSRF攻击的方式是看一个具体的例子。假设你的银行网站提供一个表单,允许当前登录用户将钱转账到另一个银行账户。例如,转账表单可能如下所示:

2024-01-17 17:07:43 183

原创 AbstractHttpMessageConverter + easyexcell优雅下载附件

【代码】AbstractHttpMessageConverter + easyexcell优雅下载附件

2024-01-15 20:38:39 251

原创 Spring Security 中 Authentication和Authorization的区别

Spring Security提供了全面的认证支持。认证是用来验证试图访问特定资源的用户身份的方式。验证用户的常见方式是要求用户输入用户名和密码。一旦认证完成,我们就知道了用户的身份并且可以进行授权。Spring Security内置支持对用户进行认证。简单来说,认证就是【你是谁】

2024-01-15 16:02:51 81

原创 com.fasterxml.jackson.databind.exc.InvalidFormatException异常

因为报错是找不到构造方法,只能按照枚举的类index来找,而总共有3个元素,最大的index =2,给了index =3 ,自然无法找到。序列化问题,低版本的服务,jackson-databind 调用了高版本的依赖服务。2.10.0调用2.15.0.升级依赖到至少2.13.0以上。

2024-01-11 17:58:11 387

原创 java: java.lang.ExceptionInInitializerError com.sun.tools.javac.code.TypeTags

jdk版本不匹配,不兼容,降低或者升级即可。

2024-01-05 15:45:10 437

原创 如何将本文中的表情符号,使用正则表达式pattern,匹配并替换

如下面的文本:xxxxx 🤟如何替换这些特殊的unicode呢?

2024-01-03 14:58:48 620

原创 mongodb “org.springframework.dao.dataintegrityviolationexception multi-document transaction

解决:Spring正在支持 MongoDB 4.0 提供的一个新功能,该功能支持多文档事务。该功能仅适用于现有集合,即多文档事务不能包括会导致创建新集合的插入操作。因此,在使用这个功能之前,应该提前创建您的集合。

2023-12-26 16:54:21 68

原创 MySQL 使用 order by 某个字段 limit offset 分页排序可能会导致数据丢失和重复

如果查询数据进行排序和分页时,如果排序字段没有使用索引,一定要添加一个有索引的字段,比如主键 ID,保证顺序稳定。否则,查询的数据会导致数据丢失和重复。理解此问题出现的原因后,赶紧去看看你的项目中有没有这种情况吧!要不然出问题就不好办了!相关 SQL 语句COLLATE utf8_general_ci DEFAULT NULL COMMENT '分类名称',`sort` int DEFAULT NULL COMMENT '分类排序',

2023-12-22 10:34:08 185

原创 在使用mapstruct,想忽略掉List<DTO>字段里面的,`data` 字段的映射, 如何写ignore: 使用@IterableMapping

在使用mapstruct,想忽略掉List字段里面的,字段的映射, 如何写ignore。

2023-12-20 16:09:52 334

原创 target\generatedintersects with a source root. Only files that were created by build will be cleaned

主要是rebuild产生的编译类,与你target中标记的source root 有交集,然后只会重新build,target目录中有交集的部分,这部分会被clean掉,而不是所有的target,如果想要所有的target在rebuild之前都执行clean,那么可以在maven的命令中勾上【Execute before Rebuild】或者【Execute before build】忽略此告警,因为相当于是部分更新。

2023-12-19 11:26:05 148

原创 两个mongo表,A和B,以A中的_id记录的为准, 删掉B表中A表中没有的记录

这个查询首先使用 $lookup 将集合 B 中的每个记录与集合 A 中的对应记录进行关联。最后,使用 $project 仅保留 _id 字段,并使用 forEach 循环遍历结果,并使用 deleteOne 删除集合 B 中多余的记录。在上述代码中的 $match 阶段,matching_docs: { $eq: [] } 表示匹配那些 “matching_docs” 字段的值为空数组的记录。{ $eq: [] } 是 MongoDB 查询语句中的一个条件表达式,表示判断数组是否为空。

2023-11-28 14:56:18 175

原创 “Invalid privatekey“ when using JSch

jsch ssh解析prvkey的时候报错。

2023-11-27 20:53:16 130

原创 DDD设计模式需要在存储层之前就需要有ID,如何实现?

在DDD设计领域中, 聚合根 或者实体在存储层之前就需要有id。一般采用如下类提前生成,然后直接落库。

2023-11-14 17:32:06 407

原创 @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思

JetCache 是一款基于注解的缓存框架,提供了丰富的缓存功能和灵活的配置选项,可用于增强应用程序的性能和可扩展性。使用 @CacheInvalidate 注解,可以方便地在方法执行后无效化指定的缓存数据,确保下次访问时能够获取最新的数据。它的作用是在指定的缓存中,根据给定的条件,使缓存中的数据无效化(即删除或失效)。属性的组合作为缓存的键(key),将缓存中匹配的数据进行无效化。属性发生变化时,通过该代码可以立即使缓存中与这些变化相关的数据失效,以确保下次访问时能够重新从数据源获取最新的数据。

2023-11-13 10:28:53 640

原创 mongo实际业务场景实战

查询时将员工的具体属性(如部门、岗位、职级、专业)和“ALL”作为查询条件,从而找到适用的业务值。在这个设计中,每个字段都存储了一个数组,包含了该业务值适用的所有层级、岗位、职级和专业。现在使用mongo作为存储介质,请分别设计存储和查询的方法,在保证高效的情况下,能够快速的将员工找到对应的业务值。操作符,可以同时匹配员工的具体属性和“ALL”,“ALL”相当于是一个通配符,表示适用于所有的情况。此时,有一个员工,是来自部门是D001002003,岗位是岗位C,职级是M-3,专业是专业C。

2023-11-10 13:45:13 103

原创 一句话介绍spring的依赖倒置

依赖注入是指Spring容器将依赖关系从代码中移除,通过配置文件或注解来进行管理,使得对象之间的依赖关系更加清晰和易于维护。依赖倒置是指,高层次的模块不应该依赖于底层次的模块,二者都应该依赖于抽象。Spring是一个开源的Java应用程序框架,它提供了一系列的工具和组件,用于开发企业级Java应用程序。总之,Spring的依赖倒置是一种非常有用的设计模式,它将应用程序的不同部分解耦,提高了代码的可维护性和可。Spring容器将对象的创建和管理交给了框架,应用程序只需要关注对象的使用,降低了代码的复杂度。

2023-11-07 15:49:06 81

原创 DDD领域模式的模块层级及其依赖关系

DDD领域模型设计是一种常用的软件设计模式,它强调将业务逻辑和数据模型放在最核心的位置,以便更好地满足业务需求。在DDD领域模型设计中,应用程序被分为四个层次:用户界面层、应用服务层、领域模型层和基础设施层。

2023-11-07 15:32:26 189

原创 如何写出匹配Java方法注释的正则表达式

如何写出匹配Java方法注释的正则表达式

2023-11-06 17:20:03 344

原创 在idea命令行,or linux 终端执行命令,快速获取通过脚本上证指数、创业板实时行情

编写shell脚本如下,并保存命名为stock。

2023-11-06 11:43:20 132

Oracle_10g数据库基础教程[习题解答][1].doc

Oracle_10g数据库基础教程[习题解答][1].doc

2021-02-15

簿客平台 Bookor.pptx

创业薄客平台

2021-02-15

Java vm.pptx

Java vm.pptx

2021-02-15

二分查找法.pptx

二分查找法.pptx

2021-02-15

360前端星-公开课.pdf

360前端星

2021-02-15

交通信息检索技术—关于信号降噪的综述.docx

交通信息检索技术—关于信号降噪的综述

2021-02-15

交通信息检测-Matlab实验1-信号降噪.pdf

交通信息检测-Matlab实验1-信号降噪.pdf

2021-02-15

交通信号检测技术-实验3-图像复原.pdf

交通信号检测技术-实验3-图像复原.pdf

2021-02-15

交通信号检测技术仿真实验2-图像增强.pdf

交通信号检测技术仿真实验2-图像增强.pdf

2021-02-15

计算机组成原理试题答案2.doc

计算机组成原理试题答案2.doc

2021-02-14

计算机组成原理前五套本科自测题答案选择题答案更新.doc

计算机组成原理前五套本科自测题答案选择题答案更新.doc

2021-02-14

计算机组成原理10套试卷整理出资料—第三次修改.pdf

计算机组成原理10套试卷整理出资料—第三次修改.pdf

2021-02-14

计算机组成原理(四版)本科生试题库整理附答案.doc

计算机组成原理(四版)本科生试题库整理附答案.doc

2021-02-14

计算机控制技术—Matlabe仿真实验5.pdf

计算机控制技术—Matlabe仿真实验5.pdf

2021-02-14

第7章控制系统的计算机辅助分析.ppt

第7章控制系统的计算机辅助分析.ppt

2021-02-14

第4章连续系统按环节离散化的数字仿真.ppt

第4章连续系统按环节离散化的数字仿真.ppt

2021-02-14

第2章控制系统的数学模型及其转换.ppt

第2章控制系统的数学模型及其转换.ppt

2021-02-14

第1章仿真软件-MATLAB.ppt

第1章仿真软件-MATLAB.ppt

2021-02-14

HC110117000 访问控制列表.ppt

HC110117000 访问控制列表.ppt

2021-02-14

HC110116003 网络地址转换.ppt

HC110116003 网络地址转换.ppt

2021-02-14

生产者消费者问题.ppt

生产者与消费者问题是经典进程同步问题的典型代表之一。该课程设计通过了解进程间的同步互斥关系,从而理解Java多线程通信机制;通过对经典进程同步问题的剖析,初步掌握运用Java多线程解决进程同步问题的方法。

2021-02-14

多生产者多消费者软件课设报告.doc

生产者与消费者问题是经典进程同步问题的典型代表之一。该课程设计通过了解进程间的同步互斥关系,从而理解Java多线程通信机制;通过对经典进程同步问题的剖析,初步掌握运用Java多线程解决进程同步问题的方法。

2021-02-14

Scheduling policies in hadoop.pdf

hadoop的调度

2021-02-14

基于ARM和GPRS的无线图像传输系统.doc

基于ARM和GPRS的无线图像传输系统.doc

2021-02-14

第16章基于Oracle数据库的应用开发.ppt

第16章基于Oracle数据库的应用开发.ppt

2021-02-14

第15章 PLSQL程序设计.ppt

第15章 PLSQL程序设计.ppt

2021-02-14

第14章 PLSQL语言基础.ppt

第14章 PLSQL语言基础.ppt

2021-02-14

第13章SQL语言基础.ppt

第13章SQL语言基础.ppt

2021-02-14

第12章闪回技术.ppt

第12章闪回技术.ppt

2021-02-14

第11章 数据库备份与恢复.ppt

第11章 数据库备份与恢复.ppt

2021-02-14

第10章安全管理.ppt

第10章安全管理.ppt

2021-02-14

第9章模式对象.ppt

第9章模式对象.ppt

2021-02-14

第8章数据库的启动与关闭.ppt

第8章数据库的启动与关闭.ppt

2021-02-14

第7章数据库实例.ppt

第7章数据库实例.ppt

2021-02-14

第6章逻辑存储结构.ppt

第6章逻辑存储结构.ppt

2021-02-14

第5章物理存储结构.ppt

第5章物理存储结构.ppt

2021-02-14

第4章OEM与SQL Plus.ppt

第4章OEM与SQL Plus.ppt

2021-02-14

第3章创建数据库.ppt

第3章创建数据库.ppt

2021-02-14

第2章数据库服务器的安装与卸载.ppt

第2章数据库服务器的安装与卸载.ppt

2021-02-14

第1章oracle数据库概述.ppt

第1章oracle数据库概述.ppt

2021-02-14

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

TA关注的人

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