- 博客(56)
- 收藏
- 关注
原创 mybatis-plus笔记
在MyBatisPlus中支持我们定义一个枚举与数据库中的字段对应起来,然后在枚举类中,使用@EnumValue注解标注真实的值(与数据库的字段对应),然后定义一个String类型的字段表示这个枚举项代表的字符串含义;当我们在购买车票时,首先会进行票数的查询,例如A1在购买车票时查询到票还有100张,准备购买第100张票,与此同时,A2也查询到票数为100,也将购买第100张票;悲观锁虽然保证了程序的安全性,同时效率也降低了很多,在一个客户端操作时,其他客户端均不可操作,降低了系统的并发性能。
2024-06-17 09:39:59 823
原创 实体类的注解
GeneratedValue(strategy=GenerationType,generator=“”):可选,strategy属性表示主键生成策略,有AUTO,IDENTITY,SEQUENCE和TABLE.generator 表示主键生成器的名称。@Column 标识一些字段特性,字段别名,是否允许为空,是否唯一,是否进行插入和更新(比如由MySQL自动维护)@Table(name=“”,catalog=“”,schema=“”):可选, 注解表相关,如别名等。@Id:必须项, 注解主键。
2024-06-14 16:53:19 264
原创 微服务——参数校验
4、 消息队列校验:在消息队列中,对消息进行校验,确保消息的内容符合业务要求,以保证后续的流程的正确性。1、方便快捷:使用注解校验可以简单地将校验规则与被校验对象绑定在一起,无需手动编写复杂的校验逻辑。5、可扩展性:使用注解校验可以通过自定义注解实现更为复杂的校验规则,增强了校验的灵活性和可扩展性。3、 前端校验:在前端进行数据的校验,如表单校验、数据格式校验等,来确保用户输入数据的正确性。2、 后端校验:在后端进行数据的校验,如参数校验、业务校验等,来确保数据的合法性。
2024-06-12 16:37:56 703
原创 Maven的三种项目打包方式——pom,jar,war的区别
2、jar:工程的默认打包方式,打包成jar用作jar包使用。存放一些其他工程都会使用的类,工具类。我们可以在其他工程的pom文件中去引用它。3、 war:将会打包成war,发布在服务器上,如网站或服务。聚合工程只是用来帮助其他模块构建的工具,本身并没有实质的内容。具体每个工程代码的编写还是在生成的工程中去写。1、pom:用在父级工程或聚合工程中,用来做jar包的版本控制,必须指明这个聚合工程的打包方式为pom。对于在父工程中导的依赖工程也可享有。
2024-06-07 14:14:33 484
原创 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 903
原创 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 793
原创 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 1001
原创 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 717
原创 C语言socket怎么保持开启
如果你想要在多次数据传输后关闭socket,你需要在数据传输完成后调用close(sockfd)。如果你想要保持这个连接,就不要调用close(sockfd),直到你确实想要关闭连接。在C语言中使用socket保持连接通常意味着要防止socket在数据传输结束后自动关闭。请注意,在实际应用程序中,你需要处理可能发生的各种错误,并且可能需要使用线程或其他同步机制来管理并发socket连接。以下是一个简单的例子,展示了如何在Unix系统上使用C语言编程来创建一个socket,保持连接,然后接收数据。
2024-03-14 10:33:54 333
原创 c语言读写日志代码实现
上述代码中,writeLog函数用于将日志信息写入到文件中。首先,通过time函数获取当前时间,并使用localtime函数将时间转换为本地时间。接下来,使用fopen函数打开日志文件,以追加写入的方式。最后,使用fprintf函数将带有时间戳的日志信息写入文件中,并使用fclose函数关闭文件。你可以根据需要修改日志文件的名称和路径,以及日志信息的格式。另外,你还可以添加其他功能,比如读取日志文件、设置日志级别等。在C语言中,可以使用标准库函数来实现读写日志的功能。
2024-03-13 10:15:34 277
原创 springboot整合MQTT代码
以下是一个简单的示例代码,演示了如何在Spring Boot应用程序中使用MQTT。现在,你可以在其他组件中注入MqttPahoClientFactory,并使用它来发布消息到MQTT服务器,或者使用MessageChannel来发送消息。最后,在Spring Boot应用程序的主类上添加@EnableIntegration注解,以启用Spring Integration。在上述代码中,需要根据实际情况配置MQTT连接的相关参数,如broker、clientId和topic。
2024-03-12 14:36:20 283 1
原创 springboot整合MQTT
Spring Boot是一个用于创建独立的、基于Spring的应用程序的框架,而MQTT是一种轻量级的消息传输协议。在Spring Boot中,我们可以通过使用Spring Integration来实现与MQTT的整合。
2024-03-12 14:33:04 148
原创 Linux进程间通信方式之socket使用实例
TCP/IP协议族包括运输层、网络层、链路层,而socket所在位置如图,Socket是应用层与TCP/IP协议族通信的中间软件抽象层。
2024-03-04 15:13:35 1002
原创 js实现文件下载,并传给后端
在HTML中,我们使用一个文件选择器来让用户选择要上传的文件。在handleFileSelect函数中,我们获取选择的文件并调用uploadFile函数将其上传到后端。在这个示例中,uploadFile函数接受一个文件对象作为参数,并使用FormData创建一个包含文件的表单数据。在JavaScript中,可以通过创建一个链接并设置其href属性为文件的URL,然后使用download属性指定文件的名称来实现文件下载。在这个示例中,downloadFile函数接受文件的URL和要保存的文件名作为参数。
2024-02-29 16:45:04 793
原创 C语言创建json数据
在C语言中创建JSON数据可以使用第三方库,比如 cJSON。cJSON是一个轻量级的JSON解析器和生成器,可以用于创建、解析和操作JSON数据。
2024-02-28 16:45:22 452
原创 开始一个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 346
转载 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 53
原创 Spring Cloud Sleuth+zipkin实现链路追踪
Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案,并且兼容支持了 zipkin,你只需要在pom文件中引入相应的依赖即可。微服务架构上通过业务来划分服务的,通过REST调用,对外暴露的一个接口,可能需要很多个服务协同才能完成这个接口功能,如果链路上任何一个服务出现问题或者网络超时,都会形成导致接口调用失败。随着业务的不断扩张,服务之间互相调用会越来越复杂。
2024-01-06 23:12:07 396
原创 使用sentinel作为熔断器
Sentinel,中文翻译为哨兵,是为微服务提供流量控制、熔断降级的功能,它和Hystrix提供的功能一样,可以有效的解决微服务调用产生的“雪崩”效应,为微服务系统提供了稳定性的解决方案。随着Hytrxi进入了维护期,不再提供新功能,Sentinel是一个不错的替代方案。
2024-01-06 23:00:39 676
原创 使用spring cloud gateway作为服务网关
Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,取代Zuul网关。网关作为流量的,在微服务系统中有着非常作用,网关常见的功能有路由转发、权限校验、限流控制等作用。
2024-01-06 22:51:09 883
原创 C语言需要释放静态变量吗
C语言中的静态变量不需要手动释放。静态变量是在程序运行期间一直存在的,它们的内存分配是在程序加载时完成的,并且在程序结束时自动释放。静态变量的生命周期与程序的生命周期相同,它们在程序的整个执行过程中都可以被访问和使用。静态变量的作用域是局部的,但是它们的生命周期是全局的。在函数内部定义的静态变量只能在该函数内部访问,但是它们的值在函数调用结束后仍然保持不变。这使得静态变量非常适合用于在函数调用之间保持数据的持久性。因此,不需要手动释放静态变量,系统会在程序结束时自动释放它们。
2024-01-03 15:21:24 530
原创 C语言使用free出现段错误(核心已转储)
2、释放非动态分配的内存:当你试图使用free函数释放一个非动态分配的内存块时,也会导致段错误。因为free函数只能释放由malloc、calloc或realloc函数动态分配的内存。为了避免出现段错误,你应该确保在使用free函数释放内存之前,该内存块是通过malloc、calloc或realloc函数动态分配的,并且只释放一次。1、重复释放内存:当你使用free函数释放一个已经被释放的内存块时,就会导致段错误。3、使用已经释放的指针:当你试图使用已经释放的指针访问内存时,也会导致段错误。
2024-01-03 15:18:05 905
原创 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 425
原创 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 201
原创 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 47
原创 spring cloud alibaba学习(1)---Windows安装Nacos作为注册中心
下载地址:https://github.com/alibaba/nacos/releases。
2023-12-18 13:58:16 47
原创 引用libxml2遇到函数未定义的引用
这些函数都是libxml2库中的函数,因此您需要确保已正确安装该库并将其链接到您的代码中。4、如果您仍然无法解决问题,请确保您的代码中没有拼写错误,并且您正在调用正确的函数。goahead.c:(.text+0x89f):对‘xmlDocGetRootElement’未定义的引用。goahead.c:(.text+0x94e):对‘xmlNodeSetContent’未定义的引用。2、如果您使用的是Windows系统,则可以在libxml2的官方网站上下载并安装相应的二进制文件。
2023-11-23 11:01:53 93
原创 libxml/parser.h: 没有那个文件或目录
如果您已经安装了libxml2-dev软件包,但仍然遇到此错误,请确保libxml/parser.h文件位于正确的位置。如果找到多个文件,请确保您的编译器使用正确的文件。如果仍然无法解决问题,请尝试重新安装libxml2-dev软件包。这个错误通常是由于缺少libxml2-dev软件包引起的。
2023-11-22 17:17:10 611
原创 C语言修改XML文件数据
C语言可以使用libxml2库来修改XML文件数据。1、 引入libxml2库头文件和相关函数库。4、遍历XML文件中的所有节点,找到需要修改的节点。2、定义需要修改的XML文件路径和节点名称。5、对需要修改的节点进行修改操作。3、解析XML文件并获取根节点。6、保存修改后的XML文件。
2023-11-22 15:28:55 211
原创 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 111 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人