- 博客(99)
- 资源 (3)
- 收藏
- 关注

原创 java 根据pdf模板生成文件,插入文字、选项、签名、公章(详细步骤和代码)
java 根据pdf模板生成文件,插入文字、选项、签名、公章(详细步骤和代码)
2024-07-26 15:16:07
3829
6

原创 xxl-job集成springboot实战,xxl-job定时任务详解
xxl-job集成springboot实战,xxl-job定时任务详解
2022-01-17 17:51:58
6002
3

原创 springboot多数据源,DruidDataSource多数据源切换,不重启项目,修改数据库名解决方案
springboot多数据源,DruidDataSource多数据源切换,不重启项目,修改数据库名解决方案
2022-01-04 11:33:32
6200

原创 JAVA开启进程实现mysql数据库的自动备份和自动还原
JAVA实现mysql数据库的自动备份和自动还原在介绍前我要说一下,网上的例子不少,但是坑很多,有些代码看起来是对的,但是小问题不少,原因在于楼主没有测试过,或者没有交代使用时的特殊环境。项目背景:使用java实现远程备份mysql数据库到本地电脑,并可以将本地数据库的备份还原到远程mysql数据库。本机环境windows。注意:本机必须已经装了mysql数据库,并且将mysql 的bin加在了系统环境变量中。我的mysql在c盘,以下代码也是以C盘的mysql的bin下运行的。具体要以你实际
2020-08-10 10:54:39
438
2

原创 使用前端QrCode.js实现根据输入内容生成二维码,并提供二维码下载功能(已使用在交付项目中)
这是一个使用前端QrCode自动生成二维码并下载二维码图片的项目。
2020-08-08 16:55:20
1712
2
原创 java 根据前端传回的png图片数组,后端加水印加密码生成pdf,返回给前端
pdf使用A4大小,但是要考虑。根据A4宽高缩放图片后,图片仍然大于A4长度,此时要对图片进行裁剪(2页,3页…当前需求,前端通过html2canvas将页面报表生成图片下载,可以仍然不满意。需要java后端将前端传过来的图片生成pdf,并且加密码加水印。
2025-01-22 17:59:36
928
原创 vue elementUI Plus实现拖拽流程图,不引入插件,纯手写实现。
左侧button列表是要拖拽的组件。中间是拖拽后的流程图。右侧是拖拽后的数据列表。我们拖动左侧组件放入中间的流程图中,并把button携带的数据信息带过来。左侧button组件列表可拖动并携带信息,当拖动到中间流程图上方时,流程图网格变色。当鼠标释放后,数据传递,流程图变化。拖拽事件流程和参数dragstart:当元素开始被拖拽时触发。drag:元素正在被拖拽时持续触发(某些浏览器支持)。dragend:当拖拽结束时触发。dragenter:当拖拽的元素进入目标元素时触发。dra
2024-12-31 17:34:00
2645
1
原创 Java面试宝典-并发编程学习02
在 Java 中,时间片轮转算法通常是由 JVM 调度器来执行的,其中线程的执行被分为几个连续的时间片,JVM 会根据一定的规则决定当前线程活动时长是否已超过最大时间片,如果该时间已超过,则强制暂停当前线程的执行,并将 CPU 时间片分配给下一个线程。因此,在设计多线程程序时,应当尽量减少不必要的上下文切换,以提高系统的整体效率。如果在非同步的上下文中调用这些方法,可能会导致所谓的“丢失唤醒”问题,即一个线程可能在没有获得锁的情况下被唤醒,这是非常危险的,因为它可能导致线程在不安全的情况下操作共享数据。
2024-10-18 09:42:04
309
原创 java springboot定时任务、创建线程池,创建定时任务
在上述代码中,我们创建了一个大小为10的定时任务线程池,并设置了线程名称的前缀为。接下来,我们可以使用上述定时任务线程池创建不同类型的定时任务。方法可以手动创建一个定时任务,并指定任务的执行逻辑和调度规则。注意:以上示例中的定时任务需要在入口类(如。表示基于Cron表达式的定时调度。将线程池配置应用到定时任务中。注解可以指定任务的调度规则,如。同时,还可以在需要的地方注入。表示间隔固定的时间执行,注解开启定时任务的支持。
2024-10-11 16:47:36
525
原创 Java面试宝典-并发编程学习01
线程池大小设置为N,也就是和cpu的线程数相同,可以尽可能地避免线程间上下文切换,但在实际开发中,一般会设置为N+1,为了防止意外情况出现线程阻塞,如果出现阻塞,多出来的线程会继续执行任务,保证CPU的利用效率。2. 直接调用run()方法会在当前线程中执行普通的方法调用,没有创建新的线程,只是按照顺序执行方法中的代码。线程池的工作原理是:当有任务到来时,线程池从池中取出一个线程去执行该任务,任务执行结束后,线程被放回池中以备循环使用。1. run()方法是线程的主体,包含了线程要执行的代码;
2024-10-10 17:54:09
430
原创 Java面试宝典-WEB学习
在javax.servlet包中定义了所有的Servlet类都必须实现或扩展的通用接口和类,而在javax.servlet.http包中定义了支持HTTP通信协议的HttpServlet类。5、定义不同:Forward-—客户端和浏览器只发出一次请求,Servlet、JSP或其它信息资源,由第二 个信息资源响应该请求,在请求对象request中,保存的对象对于每个信息资源是共享的。Servlet是用Java编写的服务器端程序,它的主要功能是处理客户端的请求并生成动态Web内容。
2024-10-10 16:56:47
1287
原创 Java面试宝典-Java集合02
这增加了额外的内存开销,但使得在链表中间添加或删 除元素的操作变得高效。通过使用WeakHashMap,可以将某些对象与其他应用逻辑分离开来,使得它们的生命周期仅由其它对象的引用决定,当没有任何对象引用 时,这些对象会被自动清除,从而释放系统资源。在使用时需要注意,映射视图只是一个视图,即对原Map进行的修改会反映到相应的映射视图中,反之亦然,因此要谨慎使用。队列则不同,他基于地址指针进行遍历,而且可以从头或尾部开始遍历,但不能同时遍历,无需开辟临时空间,因为在遍历的过程中不影像 数据结构,速度要快的多。
2024-10-10 15:35:51
570
原创 Java面试宝典-Java集合01
ConcurrentHashMap的原理是引用了内部的 Segment ( ReentrantLock ) 分段锁,保证在操作不同段 map 的时候, 可以并发执行, 操作 同段 map 的时候,进行锁的竞争和等待。Java 8 中的 ConcurrentHashMap 放弃了分段锁,而是引入了 CAS 操作,即 Compare and Swap,利用原子性的操作和无锁编程的思想, 来实现并发写入:采用一种乐观锁的方式,通过比较当前值与期望值是否相等,来决定是否更新。这是为了避免不一致行为和潜在的错误。
2024-10-10 13:35:45
767
原创 java高并发的使用
高并发是指在同一时间段内,系统能够处理大量的并发请求。以上是Java中实现高并发的一些常用方法。根据具体的场景和需求,可以结合使用这些方法来实现高并发的应用程序。
2024-10-08 17:54:38
236
原创 mysql触发器的用法
现在,每当向"user"表插入一条新用户记录时,触发器会自动计算用户年龄是否大于18岁,并将结果存储在"age_results"表中。现在,我们将创建一个触发器,用于在插入新用户时自动计算用户年龄是否大于18岁,并将结果存储在另一个表中。
2024-10-08 17:49:28
278
原创 如何学习Java分布式数据库
学习Java分布式数据库需要熟悉数据库基础知识和分布式系统的原理,了解分布式数据库的实现技术和性能优化方法。同时,要掌握数据库集群的管理和监控技术,以及故障恢复和事务处理等关键技术。
2024-10-01 11:24:33
560
原创 java 从基础到入门 到架构师所需要学习的路线
以上是从基础到入门再到架构师所需要学习的Java知识点,学习过程中需要通过参考书籍、在线教程、实践项目等多种方式来加深理解和熟练应用。通过以上的学习路线,您可以逐步提高自己在Java开发中的技术水平,并最终成为一名合格的Java架构师。了解Java的安全机制和常见的安全漏洞,如跨站脚本攻击、SQL注入等。学习Java的单元测试和集成测试框架,如JUnit、TestNG等。学习Java的基本语法,包括变量、数据类型、运算符、控制结构等。熟悉Java的常用类库,如String、Math、Date等。
2024-10-01 11:18:23
720
原创 go语言 常用的web框架
然后,创建了一个服务器实例s,并使用BindHandler绑定了一个根路径的处理函数,该处理函数接收一个*ghttp.Request作为参数,并向响应中写入一条消息。上述示例中,首先创建了一个模板文件index.html,使用{{.}}表示模板中的变量,然后在处理函数中通过Response.Assign方法为模板变量赋值,最后使用Response.RenderFile方法渲染输出。GoFrame是一款基于Go语言的开源Web框架,它提供了一套完整的工具和组件,用于简化Web应用程序的开发过程。
2024-09-30 16:25:26
1645
原创 Go AI 编程助手的使用 Fitten Code
今天为大家推荐一款 VSCode 的插件 Fitten Code,Fitten Code 是由非十大模型驱动的 AI 编程助手,它可以自动生成代码,提升开发效率,帮您调试 Bug,节省您的时间,另外还可以对话聊天,解决您编程碰到的问题。安装 VSCode 且版本大于等于 1.68.0,打开 VSCode,点击左侧 Extensions(扩展)按钮,在搜索框写入关键字 Fitten Code。选中对应代码段,然后右键选择 “Fitten Code 优化代码”,Fitten Code给出的优化代码和优化点。
2024-09-30 11:32:08
1298
原创 安装Go语言、搭建开发环境、依赖包下载(保姆教程)
而从Go 1.8版本开始,Go开发包在安装完成后会为GOPATH设置一个默认目录,并且在Go1.14及之后的版本中启用了Go Module模式之后,不一定非要将代码写到GOPATH目录下,所以也就不需要我们再自己配置GOPATH了,使用默认的即可。你可以手动编辑go.mod文件来指定依赖版本,但不推荐这样做,除非你需要引入特定的bug修复版本或者必须使用某个未发布的版本。在你的Windows终端下执行完上述命令后,再执行下面的命令,得到的就是能够在Linux平台运行的可执行文件了。
2024-09-29 16:17:49
11947
1
原创 idea 开发工具让开发效率翻倍
IntelliJ IDEA由JetBrains开发,以其智能的代码补全、强大的重构工具和集成的版本控制系统(如Git、Subversion等)而闻名,这些功能有助于提高开发人员的编码速度和准确性,同时优化代码的可读性和维护性。1.自动导包和优化导入语句:在File -> Settings -> Editor -> General -> Auto Import中,选择自动导入常用类库,并优化多余的导入语句,以减少不必要的代码和提升代码的可读性。
2024-09-23 09:11:53
1053
1
原创 java的排序算法,代码详细说明
这些是Java中常见的排序算法,每个算法都有其优缺点,适用于不同的场景和数据规模。例如,冒泡排序和选择排序适用于小数据规模,快速排序和归并排序适用于大数据规模。
2024-09-19 17:50:25
430
原创 JAVA 根据开始和结束ip,计算中间的所有ip
这个方法首先将起始IP地址和结束IP地址转换为InetAddress对象,然后获取它们的字节数组表示。对于IP地址的每个字节,它会遍历可能的值,为每个字节创建一个新的字节数组,并将其转换回IP地址,添加到结果列表中。最后,将列表转换为字符串数组并返回。要计算两个IP地址之间的所有IP地址,你可以将IP地址转换为整数,然后使用循环来递增整数,并将每个整数转换回IP地址。以下是一个Java方法,它将两个IP地址字符串作为参数,并返回一个字符串数组,其中包含所有中间IP地址。
2024-09-19 11:29:45
457
原创 js与ts区别
综上所述,TypeScript通过引入静态类型、类和接口等概念,以及更好的工具支持,为JavaScript开发提供了更多的可能性和效率提升。TypeScript提供了丰富的类型注解功能,包括变量、函数参数和返回值的类型注解,以及更好的开发工具支持,如代码编辑器、调试器和自动化构建工具等。JavaScript是一种动态类型语言,类型检查是在运行时进行的,这意味着变量的类型可以在运行时改变,且没有静态类型检查。JavaScript没有内置的类型注解机制,虽然可以通过其他方式实现一些类型检查,但缺乏直接的支持。
2024-09-12 09:17:26
637
原创 chunk [mini-css-extract-plugin] Conflicting order. Following module has been added:
这是 mini-css-extract-plugin插件使用问题。出现的原因是两个组件引用时。import的顺序不一致.问题找到了,去代码里查一下,改一下,就能解决。
2024-09-10 15:14:04
1134
原创 idea常用快捷键详细
这只是一小部分常用的快捷键,实际应用中还有很多其他的快捷键可供使用。具体的快捷键还可以根据不同的应用程序和个人的习惯进行自定义。常用的快捷键可以根据不同的操作系统和应用程序而有所不同。
2024-09-10 11:03:10
380
原创 VS Code 支持编辑许多编程语言工具的优势
总的来说,VS Code通过其轻量级、多平台支持、强大的代码编辑功能、集成终端、插件生态系统、Git集成和调试工具等特点,能够提高开发人员的工作效率,使编码更加高效、便捷和舒适。VS Code是一款轻量级、可扩展的编程工具,具有许多功能和特点,可以提高开发人员的工作效率。此外,VS Code还支持许多其他语言的语法高亮、代码片段、调试器等扩展。你可以通过安装相关插件来扩展VS Code的语言支持。
2024-09-05 09:09:52
616
原创 要在nginx中配置后端三个服务器的轮询和加权
在http块内添加一个upstream块用于定义后端服务器列表。例如,我们定义一个名为。配置完成后,nginx将按照配置的方式将请求按照轮询或加权的方式转发到后端的服务器上。打开nginx的配置文件,一般位于。
2024-09-03 11:28:17
637
原创 工厂模式和策略模式的区别,以及java代码示例
策略模式主要用于解决在运行时根据不同的需求选择不同的算法的问题。客户端通过使用不同的策略对象来选择不同的算法,从而达到动态改变行为的目的。工厂模式是一种创建型模式,用来创建对象的实例。工厂模式主要用于解决对象的创建过程复杂或不适合直接在客户端创建的问题。工厂模式将创建对象的过程封装在一个工厂类中,客户端只需要通过工厂类来创建所需的对象。工厂模式通过一个工厂类来创建不同的形状对象,策略模式通过不同的策略对象来选择不同的排序算法。工厂模式和策略模式是两种不同的设计模式,主要用来解决不同的问题。
2024-09-03 11:02:33
418
原创 安装和配置Oracle数据库
配置数据库参数:安装完成后,您需要配置数据库的参数。请注意,这只是一个简单的概述,实际的安装和配置过程可能因操作系统和Oracle版本的不同而有所差异。建议您参考Oracle官方文档或安装指南,以获得更详细和具体的安装和配置说明。下载Oracle数据库软件:前往Oracle官方网站下载适用于您的操作系统的Oracle数据库软件。在安装过程中,需要选择安装类型(如标准版或企业版)、安装路径和数据库实例名称等。是您在创建数据库时设置的用户名和密码,是您想要为数据库指定的名称。是要修改的数据库参数名称,
2024-09-03 10:59:43
480
原创 mysql创建数据库和表详细步骤
上述示例中,id列为主键,自动递增。name列存储学生姓名,age列存储学生年龄,grade列存储学生年级。打开MySQL命令行终端或者MySQL客户端工具(如phpMyAdmin)。这些是在MySQL中创建School数据库和student表的详细步骤。你应该能够在列表中看到名为student的表。你将在列表中看到名为School的数据库。
2024-09-03 10:56:40
667
原创 在Java中23种设计模式,分类以及代码示例
这些设计模式各自具有不同的目的和应用场景,可以帮助开发者解决各种不同的问题,并提供良好的代码结构和可维护性。在Java中,设计模式可以分为23种,以三个不同的分类进行划分。结构型模式(Structural Patterns)行为型模式(Behavioral Patterns)
2024-09-02 16:32:12
1405
原创 java 根据给定的子网掩码和网关计算起始IP和结束IP
以下是一个Java工具类,用于根据给定的子网掩码和网关计算起始IP和结束IP。使用上述工具类,您可以通过修改。变量来计算起始IP和结束IP。
2024-09-02 16:17:19
446
健身房管理系统毕业设计
2024-09-30
OWASP与ZAP工具使用 (2023总结)
2024-09-29
OWASP top10 中文版翻译
2024-09-29
xxl-job集成springboot实战代码
2022-01-17
springboot集成kafka实战项目,kafka生产者、消费者、创建topic,指定消费分区
2022-01-04
springboot多数据源,DruidDataSource多数据源切换,不重启项目,修改数据库名解决方案
2022-01-04
作为Java程序员,我们接下去的路因该何去何从?
2024-09-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人