自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(348)
  • 资源 (2)
  • 收藏
  • 关注

原创 java读取过来的文件乱码?指定字符集。操作文件的几种方式

OutputStreamWriter 主要用于将字符转换为字节并写入到字节流中。BufferedWriter 主要用于提供缓冲功能,以提高向字符流中写入文本数据的性能。OutputStreamWriter 是字符流向字节流的桥梁,而 BufferedWriter 是用于字符输出流的缓冲写入。虽然它们都用于字符输出,但主要的功能和使用场景是不同的,根据具体的需求选择合适的类来实现相应的功能。

2024-04-18 16:26:01 266

原创 druid连接池参数对数据库的影响

可以通过执行此查询来检测连接是否仍然有效,如果连接无效,则将其从连接池中移除并创建一个新的连接。如果设置为 true,则在获取连接时会执行连接检测,以确保获取到的连接是有效的;使用 Druid 连接池时,你可以通过配置一系列参数来调整连接池的行为,这些参数可以对数据库的性能和应用程序的行为产生影响。testWhileIdle(空闲连接检测):指定连接池在空闲连接上执行空闲连接检测的频率。如果应用程序的数据库连接需求是变化的,可以设置一个适当的最小空闲连接数,以确保连接池中始终有足够的连接可供使用。

2024-04-09 14:59:59 284

原创 分区表、PostgreSql做分区表、建立分区索引、按照年月分区、删除分区

分区表是一种将表按照特定规则分割成多个子表的技术。这些子表被称为分区,每个分区可以存储特定范围或特定条件下的数据。分区表可以基于列值、时间范围、列表等条件进行分区。使用分区表可以提高查询性能,简化数据管理,并提高数据库的可维护性。

2024-04-01 17:27:47 435

原创 要导出 PostgreSQL 数据库中的数据使用 pg_dump 命令

如果只需要导出数据库中的数据(不包括表结构),可以使用 -a 选项。-f output_file.sql:指定输出文件名,导出的数据将保存到该文件中。使用 pg_dump 命令来导出整个数据库,包括表结构、数据等。如果只需要导出特定表的数据,可以使用 -t 选项指定表名。-d dbname:指定要导出的数据库名。-h hostname:指定数据库主机名。-U username:指定数据库用户。-t tablename 指定表名。-p port:指定数据库端口号。

2024-03-15 08:52:18 812

原创 开发过程中使用RocketMq的过程及遇到的问题

最近开发的业务有使用到rocketMq技术,整体过程及拓展知识记录一下以便学习。

2024-03-13 18:18:35 877

原创 java中对文件读写操作的几种方式

如果我们要从一个文件向另一个文件中写数据,那么会有几种方式呢,来看下。

2024-03-06 08:56:54 375 1

原创 c中execl命令了解

在这个例子中,/bin/ls是要执行的可执行文件路径,ls是新进程的argv[0]参数,-l和/tmp分别是传递给ls命令的两个参数,(char *)0表示参数列表的结束。const char *arg0:这是新进程的argv[0]参数,通常用来传递可执行文件的名称。在一般情况下,这个参数应该与path参数相同,即可执行文件的名称。:这表示可变数量的参数列表,用来传递给新程序的命令行参数。在execl函数中,你可以在arg0后面列出多个参数,这些参数会被传递给新程序。

2024-03-01 09:03:02 619

原创 java文件复制的方法,linux中可以使用mv复制并改名,java使用文件复制也可以实现。

使用 transferFrom() 方法来实现文件复制操作。这种方法利用了底层操作系统的零拷贝特性,效率更高。的方法实现文件的移动并改名以及文件的复制并改名。在java中可以使用其他方法代替。文件复制到指定路径并删除源文件 = 文件移动。

2024-02-29 09:45:29 481

原创 java中@PostConstruct的作用

在上面的示例中,init() 方法使用 @PostConstruct 注解标记,表示这个方法会在 MyClass 对象创建后立即被调用。此外,只有标记为受管组件(如 EJB、Servlet、Spring Bean 等)的类中才能使用 @PostConstruct 注解,容器会负责调用这些方法。@PostConstruct 是 Java EE(现在更名为 Jakarta EE)中的注解,用于标记一个方法,在该类被实例化后(由容器创建并初始化之后),在调用构造函数之后立即调用此方法。

2024-02-27 10:00:49 408

原创 x86 和 x64 arm的区别

假设我们现在要开发一个cpu,就好比说我们去修建一栋楼,开发商会先将图纸设计好。设计好之后由施工单位按照设计图去建造。在建造的这个过程中,施工方是要按照国家一定的规范来设计的,比如每层楼的高度,窗户的大小,排水管大小以及消防通道的设置等,这个设计规范对于这栋楼(CPU)来说就是指令集架构。指令集架构就是机器的语言,包含了各种各样的指令,像我们常见的x86个arm就是两个不同的指令集架构。像是Intel(英特尔)和amd都是采用x86指令级架构,而手机平板等才用的大多就是ARM指令集架构。

2024-01-19 20:11:09 1357

原创 @RequestBody 注解内置的 HttpMessageConverter 实现类来解析请求体

在 Spring MVC 中,@RequestBody 注解默认使用内置的 HttpMessageConverter 实现类来解析请求体,并尝试将其转换为方法参数所需的对象类型。如果需要指定解析的数据类型,可以通过在方法参数上添加更具体的注解来实现。

2024-01-14 14:59:18 415

原创 kafka生产者设置ack、消费者设置自动提交实例

其中,通过设置 ACKS_CONFIG 参数为 “all”,将生产者的确认模式设置为 “all”,表示只有当所有副本都成功写入消息后,生产者才认为消息发送成功。在消费消息时,使用 poll() 方法从 Kafka 集群拉取一批消息,并进行手动提交位移操作(通过 commitSync() 方法)。在发送消息时,使用 send() 方法发送消息,并通过 get() 方法阻塞等待消息发送完成。在上述示例中,我们通过遍历消息列表,构建了一个分区列表,并将其传递给 commitSync() 方法。

2024-01-06 21:47:53 912

原创 总结项目中oauth2模块的配置流程及实际业务oauth2认证记录(Spring Security)

项目中用过的spring security,拿来温习一下,一个简单版本的笔记。有问题欢迎大佬们指正!

2023-12-31 23:05:31 1249

原创 cms垃圾回收器的优点和垃圾收集的详细过程

与其他传统的垃圾回收器比如标记-清除(Mark-Sweep)算法相比,CMS采用了并发的方式进行垃圾回收,即在应用程序执行的同时进行垃圾回收操作。然而,为了达到较短的回收停顿时间,CMS必须牺牲一定的吞吐量。较短的停顿时间:CMS垃圾回收器采用了标记-清除算法,可以将整个垃圾回收过程分为多个阶段,每个阶段的暂停时间都较短,从而减少了应用程序的停顿时间。重新标记阶段:在这个阶段中,CMS垃圾回收器会暂停应用程序,重新扫描堆空间,标记在并发标记阶段有被修改的存活对象,并记录下所有被标记的对象。

2023-12-26 20:55:11 206

原创 mybatis的一级缓存和二级缓存

当开启二级缓存后,同一个 namespace 下的 SQL 语句执行的结果将会被缓存起来,当其他 SqlSession 执行相同的 SQL 语句时,会先查看二级缓存中是否存在对应的数据,如果存在则直接返回缓存中的数据,而不需要再去执行 SQL 查询。一级缓存是 MyBatis 默认开启的缓存机制,它指的是在同一个 SqlSession 中进行的查询操作会将查询结果缓存在内存中,下次再执行相同的查询时,如果命中了缓存,就会直接从缓存中获取结果,而不需要再去数据库中查询。

2023-12-26 16:32:18 147

原创 rabbitmq的事务实现、消费者的事务实现

手动确认模式(Manual Acknowledgement):在消费者处理消息之前,将通道设置为手动确认模式(channel.basicQos(1)),并在处理完成后调用channel.basicAck(deliveryTag, false)进行手动确认。然后,在 handleDelivery() 方法中,对每条消息进行处理,并根据处理结果调用 channel.basicAck()、channel.basicNack() 或 channel.basicReject() 进行消息确认操作。

2023-12-25 22:15:27 553

原创 二、uniCloud操作语法、js操作

仅作参考 文章作为记录使用 不适合作为教程。

2023-12-24 12:09:18 125

原创 为什么两个值明明相等,==判断却反回false?

先看第一段返回false,既然这样那为什么又返回true呢。为什么两个值明明相等,==判断却反回false?

2023-10-25 17:47:47 840

原创 poi读取word中的目录大纲,导入

在做一个导入word的业务时,发现poi并不能很好的读取到文档中的目录和级别,这段代码做个记录。

2023-10-20 11:20:36 1074

原创 OnlyOffice集成Springboot以及web端

上次我们已经搭建好了onlyoffice的服务,不知道如何搭建的伙伴可以看看上篇文章。以下是springboot和前端web简单集成的页面,亲测jdk8和jdk17都适用。

2023-10-19 09:31:07 1511

原创 onlyoffice的介绍搭建、集成过程。Windows、Linux

在本地服务器上安装ONLYOFFICE Docs Community EditionCommunity Edition允许您在本地服务器上安装ONLYOFFICE文档,并将在线编辑器与ONLYOFFICE协作平台或其他流行系统集成。ONLYOFFICE Docs是一个在线办公套件,包括文本、电子表格和演示文稿的查看器和编辑器,完全兼容office Open XML格式:.docx、.xlsx、.pptx,并支持实时协作编辑。

2023-10-16 12:07:45 2291 1

原创 一、uniCloud的简介

uniCloud 是 DCloud 联合阿里云、腾讯云,为开发者提供的基于 serverless 模式和 js 编程的云开发平台。serverless是目前很火的概念,它是下一代云技术,是真正的“云”。传统的云服务,让开发者免于购买实体服务器硬件,改为购买虚拟机。但开发者仍然要自己装操作系统、web服务器、数据库,自己处理热备,自己新购服务器来应对高并发,自己抗DDOS攻击…这不是成熟的“云”!真正的云计算,就像用水用电,没有复杂的门槛,即用即有、按需付费。简单回顾下用电的历史。

2023-10-08 15:55:30 801

原创 js返回的promise对象有值,为什么返回里面的值就为““了呢

如果您在Promise对象的回调函数中返回了一个值,并且这个值变成了Promise的成功状态(fulfilled),那么您应该能够在Promise链的后续部分访问到这个值。:如果Promise对象最终变成了rejected状态,那么在Promise链中返回的值将不再是成功的值,而是失败的原因。这可能会导致返回的值为空字符串,具体原因取决于您的异步操作失败的情况。:如果在Promise对象的回调函数中访问Promise的值,但是该Promise对象尚未完成异步操作,那么值可能会为空字符串。

2023-09-19 11:28:01 264

原创 JAVA查询当地天气,天气api

天气预报接口服务使用的聚合数据提供的免费接口,每天可以100次免费调用。可以通过https://www.juhe.cn/docs/api/id/73注册及开通。请求示例:http://apis.juhe.cn/simpleWeather/query?city=%E8%8B%8F%E5%B7%9E&key=接口地址:http://apis.juhe.cn/simpleWeather/query。接口备注:通过城市名称或城市ID查询天气预报情况。请求方式:http get/post。

2023-08-23 16:06:08 691

原创 Redis的持久化策略及修改方式

尽管 RDB 是 Redis 的默认持久化策略,但你也可以选择使用另一种持久化方式,即 AOF(Append-Only File)持久化。要配置 Redis 使用 AOF(Append-Only File)持久化,你需要编辑 Redis 的配置文件,通常是 redis.conf,并根据你的需求进行设置。他们分别代表Redis 会在不同的时间间隔内(900秒、300秒、60秒)内,如果至少有 1 个 key 发生了变化,就会执行一次 RDB 持久化。RDB 持久化可以通过配置文件中的设置来启用或禁用。

2023-08-10 15:40:12 422

原创 socket传数据时遇见的错误java.io.EOFException at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillR

今天将socket服务部署到生产时出现的问题,java.io.EOFException at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillR。使用了反向代理,因此超过60S没有数据传输的连接会断开。在生产环境使用socket时由于服务器端口没有开启,所以这里使用socket使用的nginx反向代理。:后台写个定时程序每

2023-08-10 12:06:59 1508

原创 项目中使用过的线程池ThreadPoolTaskExecutor

默认情况下,Spring中的方法是同步执行的,即方法调用会等待方法的执行完成后再继续。但有时候,某些方法可能需要执行一些耗时的操作,如果在主线程中执行,可能会导致响应时间过长或影响系统的吞吐量。这时,你可以使用 @Async 注解并结合 @EnableAsync 启用异步执行,从而将这些耗时操作放在独立的线程中执行,提高系统的性能和响应性。需要注意的是,为了使 @EnableAsync 注解生效,还需要配置一个 Executor(执行器),它负责管理异步方法的线程池。注解才会开启多线程的执行。

2023-07-31 10:44:22 265

原创 MQTT工具类

项目中用到的MQTT物联网通信协议,记录一下工具类,方便翻阅。

2023-07-31 10:05:36 293

原创 session的工作原理,及session实现登录验证示例

服务器创建 Session: 服务器接收到请求后,如果该请求没有携带有效的 Session 标识(如 Session ID),服务器会为该用户创建一个新的 Session。Session 超时: 通常情况下,Session 有一个超时时间,即当用户在一段时间内没有发起新的请求时,服务器会自动删除该用户的 Session 数据,以释放服务器资源。服务器检索 Session 数据: 当服务器接收到客户端的请求时,会根据请求中的 Session ID 来检索对应的 Session 数据。

2023-07-28 11:57:42 2147

原创 Java文字转语音功能实现

但是项目启动后出现了no jacob-1.18-x64 in java.library.path。找不到的可以私信我。下载之后ddl文件放在JDK的目录下即可。需要下载jacob-1.18,网上一堆。项目中引入pom文件。

2023-07-26 13:35:37 252

原创 定义全局异常拦截处理器

通过@ResponseBody,将异常处理的结果直接返回。在Java中,我们通过注解。来进行全局的异常处理。

2023-07-13 16:46:45 321

原创 Jenkins持续集成

Jenkins 是一个开源的持续集成(Continuous Integration)工具,它可以帮助开发团队自动化构建、测试和部署应用程序。

2023-07-09 17:39:23 2044 2

原创 Swagger-Bootstrap-UI

该UI增强包主要包括两大核心功能:文档说明 和 在线调试文档说明:根据Swagger的规范说明,详细列出接口文档的说明,包括接口地址、类型、请求示例、请求参数、响应示例、响应参数、响应码等信息,使用swagger-bootstrap-ui能根据该文档说明,对该接口的使用情况一目了然。

2023-07-09 10:19:09 2599

原创 项目配置日志的打印目录,输出日志

最近的项目需要在服务器上跑,配个日志方便查看。这样项目启动就会在配置的目录下生产日志文件。然后在yml文件选择配置的文件就好啦。可以根据内容进行自定义的配置。

2023-07-09 10:02:40 325

原创 springbboot拦截器,过滤器,监听器及执行流程

过滤器是Servlet规范中定义的一种组件,可以用于在请求进入Web应用程序之前或响应离开Web应用程序之前对请求进行预处理或后处理。监听器是Servlet规范中定义的一种组件,可以用于监听Web应用程序中的事件,例如应用程序启动、请求到达、会话创建和销毁等。该接口定义了在请求处理的不同阶段执行的方法,例如在请求之前、请求处理之后以及请求完成之后。请求进入Web容器 → 过滤器预处理请求 → 请求传递给下一个过滤器或目标Servlet → 响应离开Web容器之前过滤器后处理响应。

2023-07-09 09:53:11 813

原创 File类中常用的一些方法

File类提供了许多方法,用于操作文件和目录。

2023-07-07 18:05:23 345

原创 Mybatis-Plus新版代码生成器使用,SpringBoot3.0+JDK17 整合Mybatis-Plus,Mybatis-Plus生成器及模板新旧对比。

在公司开发的新项目,使用到的是SpringBoot3.0+JDK17 ,顺带也将mybatis-plus的版本给提升了,升级了后发现老的代码生成器没办法使用了哎。可以根据需要修改,我这里使用了微服务。运行工具类中的方法。

2023-07-03 22:30:13 2241

原创 导航栏,封装Api接口,数据处理 过滤器,Echarts使用(二)

接上篇(一),简单的知识直接过滤了,所以记录并不是那么全,适合当做个人笔记参考哈,如果想学基础,还是要系统性的学习。这篇之后都是一些简单的控件的使用了,就不多记录啦。想看项目源码的可以私信我哈。

2023-07-03 09:43:45 410

原创 在Linux系统下jar包的运行、后台运行、查看端口、终止

后台挂起程序,当账户退出或终端关闭时程序停止,日志文件存储在当前目录的nohup.out文件中;:指定输出日志到log.txt文件,后台挂起程序,当账户退出或终端关闭时,程序仍然运行;:当前ssh窗口被锁定,不可进行其它操作,ctrl + c或直接关闭窗口停止程序;: 当前ssh窗口不被锁定,可进行其它操作,当窗口关闭时,程序退出;查看所有 进程 可以看到哪一列是PID 和PPID。表示后台新启一个线程执行该命令。查看当前运行的java进程。查看当前运行的jar进程。

2023-06-29 22:24:46 2009

原创 apt命令概述,apt命令在Ubuntu16.04安装openjdk-7-jdk

apt是一条linux命令,适用于deb包管理式操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。deb包是Debian软件包格式的文件扩展名。翻译过来就是:apt是一个命令行包管理器,为搜索和管理以及查询关于包的信息。它提供与专用APT工具相同的功能,像apt-get和apt-cache,但启用了更适合默认情况下为交互式使用。list-根据包名称列出包搜索-在包描述中搜索show-显示包详细信息install-安装软件包。

2023-06-27 17:53:20 1247

RabbitMQ入门到精通笔记

RabbitMQ是一个开源的遵循 AMQP协议实现的基于 Erlang语言编写,支持多种客户端(语言),用于在分布式系统中存储消息,转发消息,具有高可用,高可扩性,易用性等特征\ RabbitMQ是采用 Erlang语言开发的,所以系统环境必须提供 Erlang环境,第一步就是安装 Erlang 中间件(Middleware)是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必须要有一个通信中间件,即中间件+平台+通信,这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和使用软件区分开来

2022-05-02

(狂神)ElasticSearch快速入门笔记,ElasticSearch基本操作以及爬虫(Java-ES仿京东实战)

(狂神)ElasticSearch快速入门笔记,ElasticSearch基本操作以及爬虫(Java-ES仿京东实战),包含了小狂神讲的东西,特别适合新手学习,笔记保存下来可以多看看。好记性不如烂笔头哦~,ElasticSearch,简称es,es是一个开源的高拓展的分布式全文搜索引擎它可以近乎实时的存储、检索数据;本身拓展性很好,可以拓展到上百台服务器,处理PB级别的数据。es也是用Java开发并使用Lucene作为其核心来实现所有索引和搜索功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。es基本是开箱即用(解压就可以用!),非常简单。Solr安装略微复杂一点!

2022-04-18

空空如也

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

TA关注的人

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