自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 C语言 实现socket服务器客户端通信

【代码】C语言 实现socket服务器客户端通信。

2024-06-27 09:39:19 244

原创 mybatis-plus笔记

在MyBatisPlus中支持我们定义一个枚举与数据库中的字段对应起来,然后在枚举类中,使用@EnumValue注解标注真实的值(与数据库的字段对应),然后定义一个String类型的字段表示这个枚举项代表的字符串含义;当我们在购买车票时,首先会进行票数的查询,例如A1在购买车票时查询到票还有100张,准备购买第100张票,与此同时,A2也查询到票数为100,也将购买第100张票;悲观锁虽然保证了程序的安全性,同时效率也降低了很多,在一个客户端操作时,其他客户端均不可操作,降低了系统的并发性能。

2024-06-17 09:39:59 790

原创 实体类的注解

GeneratedValue(strategy=GenerationType,generator=“”):可选,strategy属性表示主键生成策略,有AUTO,IDENTITY,SEQUENCE和TABLE.generator 表示主键生成器的名称。@Column 标识一些字段特性,字段别名,是否允许为空,是否唯一,是否进行插入和更新(比如由MySQL自动维护)@Table(name=“”,catalog=“”,schema=“”):可选, 注解表相关,如别名等。@Id:必须项, 注解主键。

2024-06-14 16:53:19 219

原创 微服务——参数校验

4、 消息队列校验:在消息队列中,对消息进行校验,确保消息的内容符合业务要求,以保证后续的流程的正确性。1、方便快捷:使用注解校验可以简单地将校验规则与被校验对象绑定在一起,无需手动编写复杂的校验逻辑。5、可扩展性:使用注解校验可以通过自定义注解实现更为复杂的校验规则,增强了校验的灵活性和可扩展性。3、 前端校验:在前端进行数据的校验,如表单校验、数据格式校验等,来确保用户输入数据的正确性。2、 后端校验:在后端进行数据的校验,如参数校验、业务校验等,来确保数据的合法性。

2024-06-12 16:37:56 677

原创 Maven的三种项目打包方式——pom,jar,war的区别

2、jar:工程的默认打包方式,打包成jar用作jar包使用。存放一些其他工程都会使用的类,工具类。我们可以在其他工程的pom文件中去引用它。3、 war:将会打包成war,发布在服务器上,如网站或服务。聚合工程只是用来帮助其他模块构建的工具,本身并没有实质的内容。具体每个工程代码的编写还是在生成的工程中去写。1、pom:用在父级工程或聚合工程中,用来做jar包的版本控制,必须指明这个聚合工程的打包方式为pom。对于在父工程中导的依赖工程也可享有。

2024-06-07 14:14:33 296

原创 C语言序列化和反序列化--TPL中的API(三)

(如果调用者希望移交释放内存缓冲区的责任,以便在调用tpl_free()时自动释放内存缓冲区和tpl,则常数TPL_UFREE可以与TPL_MEM按位或来实现这一点)。当从文件或内存(但不是从文件描述符)读取tpl映像时,文件或内存缓冲区的大小必须完全等于存储在其中的tpl映像的大小。Tpl图像是内部分隔的,因此tpl_load每次只读取一个图像,即使多个图像是连续的。tpl_unpack()函数的作用是:从tpl解包数据。tpl_unpack的第一个参数是tpl的tpl_node*,第二个参数是索引号。

2024-05-30 14:42:43 881

原创 C语言序列化与反序列化--TCL中支持的数据结构(二)

如果您计划在您的平台上使用tpl的f格式字符序列化double,首先要确保您的double是64位的。变长数组可以包含简单或复杂的元素——例如,整型数组A(i),整型/双精度对数组A(if),甚至是嵌套数组A(A(if))。一般来说,尽可能使用固定长度的数组,必要时使用可变长度的数组。)都有自己的索引号。将索引号传递给tpl_pack和tpl_unpack,以指定要处理哪个变长数组(或者索引号为0的情况下的非数组)。当您解包二进制缓冲区时,tpl将自动分配它,并将用它的地址和长度填充tpl_bin结构。

2024-05-30 10:46:44 762

原创 C语言序列化和反序列化--TPL(一)

它的目的有两个:调试(手工检查tpl中的数据),以及与基于xml的程序的互操作性。如果程序需要两个这样的列表(例如,一个用于普通用户,一个用于管理员),则可以表示为A(si)A(si)。使用tpl_gather(或TPL_FD模式下的tpl_load)的读取器一次只能获得一个tpl映像。例如,如果您有一个数字id列表和相应的用户名,那么您的格式字符串是a (is)。虽然tpl映像是一个二进制实体,但是您可以使用lang/perl目录中包含的tplxml实用程序查看XML格式的任何tpl映像。

2024-05-29 17:22:33 869

原创 WebUtils工具类解析

15.Servlet规范的错误属性,Servlet2.3规范中定义的属性,用于错误页面直接呈现,而不是通过Servlet容器的错误页面解析。使用值{@code [“a”,“b”]}的密钥{@code“q1”}和{@code“q2”}和{@code [“a”,“b”,“c”]}。其中有些方法还是挺有用的,比如可以获取Session中的会话属性,获取Cookies,设置Session中的会话属性的值等等。9.通过给定的名称和值设置session中的属性,如果session值为空,会移除session的属性。

2024-05-28 14:43:40 648

原创 goahead中的WebsSocket结构体

【代码】goahead中的WebsSocket结构体。

2024-03-14 17:07:42 114

原创 C语言socket怎么保持开启

如果你想要在多次数据传输后关闭socket,你需要在数据传输完成后调用close(sockfd)。如果你想要保持这个连接,就不要调用close(sockfd),直到你确实想要关闭连接。在C语言中使用socket保持连接通常意味着要防止socket在数据传输结束后自动关闭。请注意,在实际应用程序中,你需要处理可能发生的各种错误,并且可能需要使用线程或其他同步机制来管理并发socket连接。以下是一个简单的例子,展示了如何在Unix系统上使用C语言编程来创建一个socket,保持连接,然后接收数据。

2024-03-14 10:33:54 295

原创 c语言读写日志代码实现

上述代码中,writeLog函数用于将日志信息写入到文件中。首先,通过time函数获取当前时间,并使用localtime函数将时间转换为本地时间。接下来,使用fopen函数打开日志文件,以追加写入的方式。最后,使用fprintf函数将带有时间戳的日志信息写入文件中,并使用fclose函数关闭文件。你可以根据需要修改日志文件的名称和路径,以及日志信息的格式。另外,你还可以添加其他功能,比如读取日志文件、设置日志级别等。在C语言中,可以使用标准库函数来实现读写日志的功能。

2024-03-13 10:15:34 243

原创 springboot整合MQTT代码

以下是一个简单的示例代码,演示了如何在Spring Boot应用程序中使用MQTT。现在,你可以在其他组件中注入MqttPahoClientFactory,并使用它来发布消息到MQTT服务器,或者使用MessageChannel来发送消息。最后,在Spring Boot应用程序的主类上添加@EnableIntegration注解,以启用Spring Integration。在上述代码中,需要根据实际情况配置MQTT连接的相关参数,如broker、clientId和topic。

2024-03-12 14:36:20 266 1

原创 springboot整合MQTT

Spring Boot是一个用于创建独立的、基于Spring的应用程序的框架,而MQTT是一种轻量级的消息传输协议。在Spring Boot中,我们可以通过使用Spring Integration来实现与MQTT的整合。

2024-03-12 14:33:04 132

原创 Linux进程间通信方式之socket使用实例

TCP/IP协议族包括运输层、网络层、链路层,而socket所在位置如图,Socket是应用层与TCP/IP协议族通信的中间软件抽象层。

2024-03-04 15:13:35 968

原创 js实现文件下载,并传给后端

在HTML中,我们使用一个文件选择器来让用户选择要上传的文件。在handleFileSelect函数中,我们获取选择的文件并调用uploadFile函数将其上传到后端。在这个示例中,uploadFile函数接受一个文件对象作为参数,并使用FormData创建一个包含文件的表单数据。在JavaScript中,可以通过创建一个链接并设置其href属性为文件的URL,然后使用download属性指定文件的名称来实现文件下载。在这个示例中,downloadFile函数接受文件的URL和要保存的文件名作为参数。

2024-02-29 16:45:04 681

原创 C语言创建json数据

在C语言中创建JSON数据可以使用第三方库,比如 cJSON。cJSON是一个轻量级的JSON解析器和生成器,可以用于创建、解析和操作JSON数据。

2024-02-28 16:45:22 404

原创 goahead中WebsUpload结构体

【代码】goahead中WebsUpload结构体。

2024-02-21 17:20:24 118

原创 goahead中WebsValue结构体

【代码】goahead中WebsValue结构体。

2024-02-21 17:18:11 102

原创 goahead中WebsKey结构体

【代码】goahead中WebsKey结构体。

2024-02-21 17:16:28 78

原创 开始一个vue项目

router等价于:router:router,也是因为,变量名和属性名一样,如果你的路由实例名不是router,则不要省略。在 src/main.js 入口文件中,导入并挂载路由模块。以管理员身份打开命令行界面,进入任意一个想要创建项目的文件夹。使用npm run serve运行项目,出现。2.1 在项目中安装 vue-router。输入:vue create vue01。2.4 声明路由链接和占位符。2.3 导入并挂载路由模块。原因:main.js文件中。用cmd命令创建项目。2.2 创建路由模块。

2024-01-29 17:26:32 337

转载 SpringBoot如何整合Redis

前言简单介绍下SpringBoot对Jedis的支持吧,在1.×版本的时候,SpringBoot的底层还是使用Jedis来连接Redis的,但是在2.×版本后,就换成了Lettuce。两者的区别如下:Jedis: 采用的直连,多个线程操作的话,是不安全的,如果想要避免不安全的,使用 jedis pool 连接池! 更像 BIO 模式!Lettuce: 采用netty,实例可以再多个线程中进行共享,不存在线程不安全的情况!可以减少线程数据了,更像 NIO 模式!添加POM依赖: <depend

2024-01-06 23:33:34 45

原创 Spring Cloud Sleuth+zipkin实现链路追踪

Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案,并且兼容支持了 zipkin,你只需要在pom文件中引入相应的依赖即可。微服务架构上通过业务来划分服务的,通过REST调用,对外暴露的一个接口,可能需要很多个服务协同才能完成这个接口功能,如果链路上任何一个服务出现问题或者网络超时,都会形成导致接口调用失败。随着业务的不断扩张,服务之间互相调用会越来越复杂。

2024-01-06 23:12:07 389

原创 使用sentinel作为熔断器

Sentinel,中文翻译为哨兵,是为微服务提供流量控制、熔断降级的功能,它和Hystrix提供的功能一样,可以有效的解决微服务调用产生的“雪崩”效应,为微服务系统提供了稳定性的解决方案。随着Hytrxi进入了维护期,不再提供新功能,Sentinel是一个不错的替代方案。

2024-01-06 23:00:39 669

原创 使用spring cloud gateway作为服务网关

Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,取代Zuul网关。网关作为流量的,在微服务系统中有着非常作用,网关常见的功能有路由转发、权限校验、限流控制等作用。

2024-01-06 22:51:09 873

原创 C语言需要释放静态变量吗

C语言中的静态变量不需要手动释放。静态变量是在程序运行期间一直存在的,它们的内存分配是在程序加载时完成的,并且在程序结束时自动释放。静态变量的生命周期与程序的生命周期相同,它们在程序的整个执行过程中都可以被访问和使用。静态变量的作用域是局部的,但是它们的生命周期是全局的。在函数内部定义的静态变量只能在该函数内部访问,但是它们的值在函数调用结束后仍然保持不变。这使得静态变量非常适合用于在函数调用之间保持数据的持久性。因此,不需要手动释放静态变量,系统会在程序结束时自动释放它们。

2024-01-03 15:21:24 467

原创 C语言使用free出现段错误(核心已转储)

2、释放非动态分配的内存:当你试图使用free函数释放一个非动态分配的内存块时,也会导致段错误。因为free函数只能释放由malloc、calloc或realloc函数动态分配的内存。为了避免出现段错误,你应该确保在使用free函数释放内存之前,该内存块是通过malloc、calloc或realloc函数动态分配的,并且只释放一次。1、重复释放内存:当你使用free函数释放一个已经被释放的内存块时,就会导致段错误。3、使用已经释放的指针:当你试图使用已经释放的指针访问内存时,也会导致段错误。

2024-01-03 15:18:05 723

原创 spring cloud alibaba学习(4)---OpenFeign服务调用

服务提供者1、在pom中引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>com.alibaba.cloud</groupId> <arti

2023-12-18 14:38:05 374

原创 spring cloud alibaba学习(3)---Nacos作为配置中心

在nacos 网页上更改name的配置,在不重启nacos-provider工程的情况下,重新访问http://localhost:8762/getName,返回的事修改后的值,可见nacos作为配置中心实现了热加载功能。在上面的配置中,配置了nacos config server的地址,配置的扩展名是yamll(目前仅支持yaml和properties)。注意是没有配置server.port的,sever.port的属性在nacos中配置。1、pom文件中引入依赖。

2023-12-18 14:19:34 181

原创 spring cloud alibaba学习(2)---Nacos作为服务注册中心

在上述的配置的中,程序的启动端口为8762,应用名为nacos-provider,向nacos server注册的地址为127.0.0.1:8848。2、在主类上添加**@EnableDiscoveryClient**注解。4、启动服务, 观察nacos的控制面板中是否有注册上来的微服务。3、在application.yml中添加nacos服务的地址。1、在pom文件中引入依赖。

2023-12-18 14:09:03 33

原创 spring cloud alibaba学习(1)---Windows安装Nacos作为注册中心

下载地址:https://github.com/alibaba/nacos/releases。

2023-12-18 13:58:16 34

原创 JPA配置类的注解

JPA配置类的注解

2023-12-05 16:21:20 209

原创 cjson解析json

【代码】cjson解析json。

2023-11-23 15:55:04 40

原创 引用libxml2遇到函数未定义的引用

这些函数都是libxml2库中的函数,因此您需要确保已正确安装该库并将其链接到您的代码中。4、如果您仍然无法解决问题,请确保您的代码中没有拼写错误,并且您正在调用正确的函数。goahead.c:(.text+0x89f):对‘xmlDocGetRootElement’未定义的引用。goahead.c:(.text+0x94e):对‘xmlNodeSetContent’未定义的引用。2、如果您使用的是Windows系统,则可以在libxml2的官方网站上下载并安装相应的二进制文件。

2023-11-23 11:01:53 57

原创 libxml/parser.h: 没有那个文件或目录

如果您已经安装了libxml2-dev软件包,但仍然遇到此错误,请确保libxml/parser.h文件位于正确的位置。如果找到多个文件,请确保您的编译器使用正确的文件。如果仍然无法解决问题,请尝试重新安装libxml2-dev软件包。这个错误通常是由于缺少libxml2-dev软件包引起的。

2023-11-22 17:17:10 473

原创 C语言修改XML文件数据

C语言可以使用libxml2库来修改XML文件数据。1、 引入libxml2库头文件和相关函数库。4、遍历XML文件中的所有节点,找到需要修改的节点。2、定义需要修改的XML文件路径和节点名称。5、对需要修改的节点进行修改操作。3、解析XML文件并获取根节点。6、保存修改后的XML文件。

2023-11-22 15:28:55 167

原创 在Vue中获取input输入的值

【代码】在Vue中获取input输入的值可以使用v-model指令或者事件监听的方式。

2023-11-17 17:25:43 1666

原创 使用C语言获取文件创建时间

获取文件创建时间

2023-07-17 15:32:58 881 1

原创 VUE学习笔记(二)

打开网页的时候,页面Title是index.html中定义的Title,而正文部分是App.vue中定义的内容。main.js是项目的入口文件,定义了vue实例,并引入根组件app.vue,将其挂载到index.html中id为‘app’的节点上。index.html是页面的入口文件,里面包含一个id为app挂载点,main.js中定义的Vue根实例就会挂载到该挂载点上。App.vue是主组件,所有页面都是在App.vue下进行切换,可以理解为所有的路由都是App.vue的子组件。

2023-07-17 10:46:28 91 1

原创 VUE+goahead项目开发

第一步:在goahead.c 文件中的MAIN函数注册Action函数。通过前端页面的action/AAA可以访问到XXX函数。在goahead.c中编写XXX函数。

2023-07-11 15:18:56 300 1

空空如也

空空如也

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

TA关注的人

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