- 博客(1160)
- 资源 (67)
- 问答 (12)
- 收藏
- 关注
原创 ThreadPoolExecutor - AbortPolicy.rejectedExecution 报错
【代码】ThreadPoolExecutor - AbortPolicy.rejectedExecution 报错。
2024-08-19 20:37:37 37
原创 JAVA开源的html转pdf、png转pdf项目
Open HTML to PDF是一个纯Java库,用于使用CSS 2.1(以及更高版本的标准)对合理子集的格式良好的XML/XHTML(甚至一些HTML5)进行布局和格式化,输出为PDF或图像。使用该库生成漂亮的PDF文档。但请注意,您不能将现代HTML5+直接应用于该引擎并期望获得出色的结果。您必须特别为该库制作HTML文档,并使用其扩展的CSS功能,比如#31或#32,才能获得良好的结果。避免在页面断点附近使用浮动,使用表格布局。
2024-07-30 14:44:56 103
原创 IllegalArgumentException: state should be: writes is not an empty list
mongo 在执行批量操作的时候, 如果list是一个空的list,就会报这个错。
2024-07-16 22:01:03 130
原创 mongo表table1的 rtId字段和mongo表table2的_id字段是关联字段,现要求,根据table1表的rtId字段关联table2表中记录,将table1 中的orderId字段的值更
这个脚本首先遍历table1表中的每一条记录,获取rtId和orderId字段的值。然后,通过rtId字段在table2表中查找相应的记录。如果找到对应的记录,则更新该记录的orderId字段为table1表中的orderId值。
2024-07-10 15:45:04 105
原创 Java如何通过Matcher匹配Pattern并将要匹配的内容替换为pattern中的内容
需要注意的是,替换字符串中的反斜杠()和美元符号($)可能导致结果与将其视为字面替换字符串时不同。美元符号可能被视为上述捕获子序列的引用,而反斜杠用于转义替换字符串中的字面字符。从输入序列中读取字符,从追加位置开始,并将它们追加到给定的字符串构建器中。该方法执行非终端的追加和替换步骤,允许在匹配期间将匹配到的内容进行替换操作。将此匹配器的追加位置设置为最后一个匹配字符的索引加一,即{@link #end()}。替换字符串允许包含对先前匹配期间捕获的子序列的引用。将指定的替换字符串追加到字符串构建器中。
2024-05-21 20:51:55 193
原创 java.sql.SQLDataException: Cannot determine value type from string 报错
因为mybatis 如果没有获取到无参构造方法,或者完全是按照顺序的全参构造,那么是按照顺序来获取构造器。1、resultmap中的实体对象,以及子resultMap中的实体对象都需要有无参构造函数。2、检查自己实体对象的对应实体成员变量的名字的类型和mysql的类型是否一致。是Long而不是String。我这里加了参数就好了。mybatis 源码。
2024-04-28 20:57:23 338
原创 mybatis 枚举值,映射为枚举类型,使用typehandle
要在存储到 MySQL 时使用枚举的代码值,然后在读取时将其转换为枚举对象,你可以使用 MyBatis 的类型处理器(TypeHandler)来实现这一点。这样,当你从数据库中读取 person_id_type 字段时,PersonIdTypeHandler 类会将存储的代码值转换为相应的枚举对象。在 PersonIdTypeHandler 类中,覆盖 getResult 方法以将从数据库中读取的值转换为枚举对象,并覆盖 setParameter 方法以将枚举对象转换为存储在数据库中的值。
2024-04-13 15:19:23 205
原创 left join limit offset 分页查询问题
在开始讨论LEFT JOIN的使用方法之前,让我们先简要回顾一下LEFT JOIN的概念。LEFT JOIN是一种用于将左表和右表连接起来的操作。它会返回左表中的所有记录,并且对于每条左表记录,如果在右表中找到符合条件的记录,就将其连接起来。如果没有匹配的记录,则右表的相应字段将被设置为NULL。
2024-04-13 15:12:36 202
原创 java: 找不到符号 符号: 方法 onMethod_() 位置: @interface lombok.Setter
比如和我这个冲突的插件就是。
2024-04-12 20:42:28 272
原创 limit offset 根据id查询,不连续会重复
比如1-100 的区间,有不连续的,id从98 直接到100 少了。那么此时limit 100 就会把下个区间的101也查出来,而下个区间,假如 limit offset 根据id查询,不连续,则返回数据会重复。比如101 ,也会再次被查询出来。
2024-04-10 14:51:12 75
原创 More than one argument (#0 and left as delegating for Creator) 报错解决
此时可以使用@JsonProperty来指定。如果有多个参数,则会无法绑定。
2024-04-10 14:24:31 45
原创 JsonCreator注解InvalidDefinitionException报错解决
其中包含了四种模式:DEFAULT(默认模式)、DELEGATING(委派模式)、PROPERTIES(属性模式)和DISABLED(禁用模式)。这些模式用于指示在创建对象时应该如何绑定参数。DELEGATING 默认只能用一个参数,如果要用多个,请使用PROPERTIES模式,并且使用。这样反序列化的时候也不会出问题,会使用反射来setter字段。注解指定,否则框架在反序列的话,无法区分。
2024-03-08 19:29:59 168
原创 通过aop实现通用日志
这个操作日志的模板最后记录的内容是这样的格式:修改了订单的配送员:从 “10090”,修改到 “10099”,显然用户看到这样的操作日志是不明白的。用户关心的是配送员的姓名和电话。下面的例子把变量放到了 LogRecordContext 中,然后 SpEL 表达式就可以顺利的解析方法上不存在的参数了,通过上面的 SpEL 的例子可以看出,要把方法的参数和 LogRecordContext 中的变量都放到 SpEL 的 getValue 方法的 Object 中才可以顺利的解析表达式的值。
2024-03-08 19:23:54 75
原创 Spring Security 存储密码之 JDBC
Spring Security的JdbcDaoImpl实现了UserDetailsService接口,通过使用JDBC提供支持基于用户名和密码的身份验证。JdbcUserDetailsManager扩展了JdbcDaoImpl,通过UserDetailsManager接口提供UserDetails的管理功能。当Spring Security配置为接受用户名/密码进行身份验证时,将使用基于UserDetails的身份验证。
2024-01-26 16:46:11 158
原创 Spring Security 密码存储 之 内存认证
Spring Security的InMemoryUserDetailsManager实现了UserDetailsService,以提供对存储在内存中的基于用户名/密码的身份验证的支持。在下面的示例中,我们使用User.withDefaultPasswordEncoder来确保存储在内存中的密码受到保护。在基于XML的配置中,没有简单的方法来使用User.withDefaultPasswordEncoder。前面的示例将密码以安全格式存储,但在入门体验方面还有很多需要改进的地方。
2024-01-24 20:56:59 145
原创 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 160
原创 Spring Security 之 基本认证
配置的 AuthenticationEntryPoint 是 BasicAuthenticationEntryPoint 的实例,它发送一个 WWW-Authenticate 标头。当用户提交他们的用户名和密码时,BasicAuthenticationFilter 通过从 HttpServletRequest 中提取用户名和密码创建一个 UsernamePasswordAuthenticationToken,这是一种认证类型。首先,用户对未经授权的资源 /private 发出未经身份验证的请求。
2024-01-24 19:37:21 149
原创 Spring Security 之 表单登录
当用户提交他们的用户名和密码时,UsernamePasswordAuthenticationFilter从HttpServletRequest实例中提取用户名和密码,创建一个UsernamePasswordAuthenticationToken,这是一种Authentication的类型。通常情况下,这是一个SimpleUrlAuthenticationSuccessHandler,它会重定向到由ExceptionTranslationFilter保存的请求,当我们重定向到登录页面。
2024-01-24 17:45:52 156
原创 Spring Security 之 用户名/密码认证
通常,Spring Security会在内部构建一个由DaoAuthenticationProvider组成的AuthenticationManager,用于处理用户名/密码身份验证。在某些情况下,可能仍然希望自定义Spring Security使用的AuthenticationManager实例。例如,您可能需要简单地禁用对缓存用户的凭据擦除。推荐的做法是简单地发布您自己的AuthenticationManager bean,Spring Security会使用它。
2024-01-22 21:12:29 212
原创 Spring - Security 之 Servlet身份验证架构
AbstractAuthenticationProcessingFilter是用作验证用户凭据的基础过滤器。在凭据可以被验证之前,Spring Security通常会使用AuthenticationEntryPoint来请求凭据。接下来,AbstractAuthenticationProcessingFilter可以对提交给它的任何认证请求进行身份验证。
2024-01-22 20:55:09 173
原创 Spring Security工作原理(三)
如处理安全异常中所示,当请求没有认证且需要认证资源时,需要保存请求以便在认证成功后重新请求受保护的资源。在Spring Security中,这是通过使用RequestCache实现来保存HttpServletRequest来实现的。
2024-01-22 15:46:05 175
原创 Spring Security工作原理(二)
大多数情况下,默认安全过滤器足以为应用程序提供安全性。然而,有时您可能想要向安全过滤器链中添加自定义过滤器。例如,假设您想要添加一个过滤器,该过滤器获取请求中的头部信息:租户 ID, 并检查当前用户是否有权访问该租户。根据前面的描述,我们已经可以得知在哪里添加该过滤器,因为我们需要知道当前用户,所以我们需要在认证过滤器后面添加它。(3) return;(4) } }
2024-01-22 14:57:11 223 1
原创 spring data mongo 在事务中,无法自动创建collection
这个错误表明在执行写操作时出现了问题,错误消息指出无法在多文档事务中创建命名空间"xxx.xxx"。这通常与MongoDB的事务性操作或者数据库命名空间相关。您可能需要检查数据库配置、事务管理以及数据模型,以确保操作的正确性和有效性。
2024-01-19 16:09:10 186
原创 Spring Security工作原理(一)
Spring Security的Servlet支持是基于Servlet过滤器的,因此首先了解过滤器的一般作用是很有帮助的。下图显示了单个HTTP请求处理程序的典型分层结构。处理客户端发送的请求时,容器创建一个FilterChain,其中包含Filter实例和Servlet,根据请求URI的路径处理HttpServletRequest。在Spring MVC应用程序中,Servlet是DispatcherServlet的一个实例。
2024-01-19 14:06:22 71
原创 Spring Security的使用条件
由于Spring Security旨在以自包含的方式运行,因此您无需在Java运行时环境中放置任何特殊的配置文件。特别是,您无需配置特殊的Java认证和授权服务(JAAS)策略文件,也无需将Spring Security放置在常见的类路径位置。同样,如果您使用EJB容器或Servlet容器,您无需在任何地方放置任何特殊的配置文件,也无需将Spring Security包含在服务器类加载器中。所有所需的文件都包含在您的应用程序中。Spring Security要求使用Java 8或更高版本的运行时环境。
2024-01-17 17:17:44 203
原创 跨站点请求伪造攻击 - Cross Site Request Forgery (CSRF)
最好理解CSRF攻击的方式是看一个具体的例子。假设你的银行网站提供一个表单,允许当前登录用户将钱转账到另一个银行账户。例如,转账表单可能如下所示:
2024-01-17 17:07:43 222
原创 AbstractHttpMessageConverter + easyexcell优雅下载附件
【代码】AbstractHttpMessageConverter + easyexcell优雅下载附件
2024-01-15 20:38:39 290
原创 Spring Security 中 Authentication和Authorization的区别
Spring Security提供了全面的认证支持。认证是用来验证试图访问特定资源的用户身份的方式。验证用户的常见方式是要求用户输入用户名和密码。一旦认证完成,我们就知道了用户的身份并且可以进行授权。Spring Security内置支持对用户进行认证。简单来说,认证就是【你是谁】
2024-01-15 16:02:51 127
原创 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 563
原创 java: java.lang.ExceptionInInitializerError com.sun.tools.javac.code.TypeTags
jdk版本不匹配,不兼容,降低或者升级即可。
2024-01-05 15:45:10 516
原创 mongodb “org.springframework.dao.dataintegrityviolationexception multi-document transaction
解决:Spring正在支持 MongoDB 4.0 提供的一个新功能,该功能支持多文档事务。该功能仅适用于现有集合,即多文档事务不能包括会导致创建新集合的插入操作。因此,在使用这个功能之前,应该提前创建您的集合。
2023-12-26 16:54:21 98
原创 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 321
原创 在使用mapstruct,想忽略掉List<DTO>字段里面的,`data` 字段的映射, 如何写ignore: 使用@IterableMapping
在使用mapstruct,想忽略掉List字段里面的,字段的映射, 如何写ignore。
2023-12-20 16:09:52 421
原创 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 262
原创 两个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 219
原创 DDD设计模式需要在存储层之前就需要有ID,如何实现?
在DDD设计领域中, 聚合根 或者实体在存储层之前就需要有id。一般采用如下类提前生成,然后直接落库。
2023-11-14 17:32:06 446
生产者消费者问题.ppt
2021-02-14
多生产者多消费者软件课设报告.doc
2021-02-14
同样的sql,用select * 和select id 结果竟然不一样
2019-10-28
【ibatis】sql的返回类型与java接受类型不一致竟然不报错!
2017-10-17
Myeclipse引入项目后JSP文件中报错,棘手。。
2015-10-16
为什么是这个样子呢,兄弟,不信你看。。。
2015-09-29
这个题目怎么做啊,,类似高中但是又是大学算法的题目
2015-09-29
这究竟是怎么回事。。Interger
2015-09-23
eclipse怎么实现点击一个变量,它的所有变量都会显示标记出来
2015-09-12
java如何查询变量的大小,求解
2015-09-12
有点难的字符串的匹配问题
2015-09-12
同一进程的各个线程可以共享哪些内容?
2015-09-07
浏览器和服务器在基于https进行请求链接到数据传输过程中,用到了哪些技术(多选)?
2015-09-07
Mysql中设置表的外键的时候报错
2015-06-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人