最近,我们的系统新增了一个客服模块,其中一个重要功能是能够以PDF格式导出客服与用户之间的聊天记录。这些聊天记录包含文字、图片和文件等多种内容。为了实现这一功能,我们首先使用了itextpdf 5.x版本制作了一个Demo。今天,我将与家人们分享一下这项进展。itextpdf.jpgiTextPDF 介绍iTextPDF 是一个用于创建和操作 PDF(Por ......
285
0
0
2024-05-15
Spring5深入浅出篇:Spring工厂设计模式拓展应用简单工厂实现这里直接上代码举例子UserService.javapublic interface UserService { public void register(User user); public void login(String name, String passw ......
287
0
0
2024-05-13
使用JMXJAVA Management Extensions的缩写,Java自带的一种管理资源的技术,比如对Java 应用程序,系统和网络等java自带的获取各种信息的工具类java自带的java.lang.management.ManagementFactory 可以看到它提供的一些列方法:可以看到它提供了包括类加载、内存、线程等MXBean以Memor ......
287
0
0
2024-05-13
1、什么是事务事务是访问并可能更新数据库中各种数据项的一个程序执行单元,这个操作单元要么全部执行成功,要么全部执行失败。同时也是恢复和并发控制的基本单位。事务的特性(ACID):原子性(Automicity):一个事务是一个不可分割的工作单元,该工作单元可以包含很多操作,要么都做,要么都不做。一致性(Consistency):事务必须使数据库从一个一致性状态 ......
220
0
0
2024-05-11
1、前言面试官:“看过Spring源码吧,简单说说Spring如何解决循环依赖问题?”大神仙:“Spring利用到了三级缓存来解决循环依赖问题”。面试官:“三级缓存是怎么处理的?为什么一定得是三级缓存?三级缓存别是对应存储的是什么?”大神仙:“......”2、什么是循环依赖?循环依赖,顾名思义就是类和类之间相互引用,形成了依赖的闭环关系。比如A依赖B,B又 ......
240
0
0
2024-05-11
1、前言面试官:“看过Spring源码吧,简单说说Spring中Bean的生命周期”大神仙:“基本生命周期会经历实例化 -> 属性赋值 -> 初始化 -> 销毁”。面试官:“......”2、Bean的生命周期如果是普通Bean的生命周期,那么上述的回答是真正确的。确实会经历“实例化 -> 属性赋值 -> 初始化 -> 销 ......
273
0
0
2024-05-11
1、前言面试官:“看过Spring源码吧,简单说说Spring中BeanFactory和FactoryBean的区别是什么?”大神仙:“BeanFactory是bean工厂,FactoryBean是工厂bean”。这么回答,等于面试官问你Spring是什么,你回答这个单词翻译叫春天。2、ChitGPT的回答首先看下C知道(ChitGPT)的回答没错,基本上已 ......
222
0
0
2024-05-11
什么是单元测试一个单元指的是应用程序中可测试的最小的一组源代码。源代码中包含明确的输入和输出的每一个方法被认为是一个可测试的单元。单元测试也就是在完成每个模块后都进行的测试。从确保每个模块没有问题,从而提高整体的程序质量。单元测试的目的是将应用程序的所有源代码,隔离成最小的可测试的单元,保证每个单元的正确性。理想情况下,如果每个单元都能保证正确,就能保证应用 ......
230
0
0
2024-05-11
业务场景:根据业务需要,这里将角色按照数据范围做权限限定,提供三级权限分别为:1、全部:可以查看所有的数据2、自定义:按照组织架构,可以查看当前所匹配的组织架构数据3、个人:仅能查看由自己创建,或者数据流转到自己节点的数据思路:1、定义Mybatis拦截器DataScopeInterceptor,用于每次拦截查询sql语句,附带数据范围权限sql条件2、定义 ......
177
0
0
2024-05-11
1、需要手动建表,如T_PRI_USER2、新建配置文件generator.properties:#工程src路径 project = E\:/java/eclipseVillage/icity-yuntv/src #工程存放mapper.xml路径 resource = E\:/java/eclipseVillage/icity-yuntv/reso ......
176
0
0
2024-05-09
MyBatis,这个名字在Java开发者的世界中犹如一道光芒,照亮着持久层操作的道路。而在MyBatis的映射文件中,动态SQL则是一个让人爱-hate的存在。有时候,你感叹它的灵活性,有时候,你可能会为它的繁琐而头痛。但别担心,我们将在本文中一起揭开动态SQL的神秘面纱,带你领略它的魅力。背景MyBatis的映射文件是定义SQL语句的地方,而动态SQL则是 ......
193
0
0
2024-05-07
mybatis缓存源码分析背景在java程序与数据库交互的过程中永远存在着性能瓶颈,所以需要一直进行优化.而我们大部分会直接将目标放到数据库优化,其实我们应该先从宏观上去解决问题进而再去解决微观上的问题.性能瓶颈体现在什么地方呢?第一网络通信开销,网络数据传输通信.一般jdbc的连接和创建一个个线程都需要网络开销.第二我们常用的比如mysql.Oracle这 ......
243
0
0
2024-04-22
前言随着软件系统的复杂性和规模的不断增长,权限管理成为了一个至关重要的问题。在大型多人协作的系统中,如何有效地管理不同用户的访问权限,确保系统的安全性和稳定性,是每一个开发者都需要面对的挑战。为了解决这一问题,业界提出了一种被广泛应用的权限管理模型——基于角色的访问控制(Role-Based Access Control,简称RBAC)。希望通过本篇博客的学 ......
259
0
0
2024-04-19
前言欢迎来到【设计模式】系列博客,今天我们将探讨其中一种重要的设计模式——命令模式。设计模式是软件开发中解决常见问题的最佳实践,而命令模式则是其中一种非常实用的设计模式,它可以帮助我们更好地组织和管理请求或命令。在本篇博客中,我们将详细介绍命令模式的定义、特点、使用场景以及实现方式。通过具体的案例和实践,我们将深入了解命令模式在实际项目中的应用和优势。同时, ......
271
0
0
2024-04-19
一、什么是 JWT?JWT (JSON Web Token) 是目前最流行的跨域认证解决方案,是一种基于 Token 的认证授权机制。 从 JWT 的全称可以看出,JWT 本身也是 Token,一种规范化之后的 JSON 结构的 Token。JWT 自身包含了身份验证所需要的所有信息,因此,我们的服务器不需要存储 Session 信息。这显然增加了系统的可用 ......
250
0
0
2024-04-18