- 博客(123)
- 收藏
- 关注
原创 MySQL的BLOB和TEXT区别
在 MySQL中,BLOB 和TEXT数据类型都用于存储大量数据。BLOB的全称是BinaryLarge Object,所以他主要被设计出来是存储二进制数据的,而TEXT主要是用于存储文本数据。
2024-10-18 17:03:36
494
1
原创 java 8 CompletableFuture使用
CompletableFuture是java.util.concurrent库在java 8中新增的主要工具,同传统的Future相比,其支持流式计算、函数式编程、完成通知、自定义异常处理等很多新的特性。由于函数式编程在java中越来越多的被使用到,熟练掌握CompletableFuture,对于更好的使用java 8后的主要新特性很重要。简单起见,本文使用的CompletableFuture版本为java 8(java 11的CompletableFuture新增了一些方法)。
2024-10-12 15:53:07
896
1
原创 泛型—类型擦除
类型擦除指的是通过类型参数合并,将泛型类型实例关联到同一份字节码上。类型擦除的关键在于从泛型类型中清除类型参数的相关信息,并且在必要的时候添加类型检查和类型转换的方法。在代码中的Foo<String>和 Foo<Integer>使用的类,经过编译后都是同一个类。这种擦除的过程,被称之为--类型擦除。类型擦除可以简单的理解为将泛型java代码转换为普通java代码,只不过编译器更直接点,将泛型java代码直接转换成普通java字节码。E-Element(在集合中使用,因为集合中存放的是元素)
2024-10-08 09:18:33
297
原创 如何spring启动过程中做一些额外操作
在应用程序启动时,可以通过监听应用启动事件,或者在应用的初始化阶段,加一些需要的操作。ApplicationReadyEvent 是 Spring Boot 框架中的一个事件类,它表示应用程序已经准备好接收请求,即应用程序已启动且上下文已刷新。这个事件是在 ApplicationContext 被初始化和刷新,并且应用程序已经准备好处理请求时触发的。基于ApplicationReadyEvent,我们可以在应用程序完全启动并处于可用状态后执行一些初始化逻辑。
2024-09-20 18:31:51
500
1
原创 spring 事务失效的 12 种场景
在使用 @Transactional 注解声明事务时,有时我们想自定义回滚的异常,spring 也是支持的。可以通过设置参数,来完成这个功能。@Slf4j@Service如果在执行上面这段代码,保存和更新数据时,程序报错了,抛了 SqlException、DuplicateKeyException 等异常。而 BusinessException 是我们自定义的异常,报错的异常不属于 BusinessException,所以事务也不会回滚。
2024-09-01 20:27:56
1070
原创 达梦数据库(DM8)常用SQL
INSERT INTO TEST_TEMP(ID,PROJECT_KEY,CREAT_TIME) VALUES (1, '测试项目', '2022-12-15 14:15:30');INSERT INTO employee VALUES (9999, '王达梦','2008-05-30 00:00:00', 30000, 666);COMMENT ON COLUMN "SYSDBA"."TEST_TEMP"."CREATE_TIME" IS '数据创建时间';-- 初始化数据,自增id赋值。
2024-08-18 20:57:36
1025
1
原创 ElasticSearch倒排索引
对于一个包含多个词汇的文档,倒排索引会将每个词汇作为一个关键字(Term),然后记录下该词汇所在的文档编号(DocumentID)及该词汇在文档中的位置(Term Position)。倒排索引的结构与传统的索引结构相反,传统的结构是有文档组成,文档对应了若干词汇,而倒排索引是由词汇构成,每个词汇对应的若干个文档,然后根据这些个文档建立索引。在这个例子中,单词 “Java” 出现在所有三个文档中,因此它的倒排列表包含文档ID {1, 2, 3}。倒排索引是一种常用的索引结构,用于快速搜索文档中的某个词汇。
2024-08-04 20:57:49
217
原创 python模块化编程
在Python中一个扩展名为.py的文件就是一个模块,一个模块中可以包含N多个函数,使用模块后,方便其它程序和脚本的导入并使用,可以避免函数名和变量名冲突,提高代码的可维护性,提高代码的可重用性。新建一个.py文件,名称尽量不要与Python自带的标准模块名称相同。
2024-07-21 21:57:00
316
原创 Linux的load(负载)
负载(load)是Linux机器的一个重要指标,直观了反应了机器当前的状态。在Linux系统中,系统负载是对当前CPU工作量的度量,被定义为特定时间间隔内运行队列中的平均线程数。Linux的负载高,主要是由于CPU使用、内存使用、10消耗三部分构成。任意一项使用过多,都将导致服务器负载的急剧攀升。
2024-07-14 21:47:02
1075
1
原创 MySQL 中 blob 和 text 数据类型
MySQL的这两个数据类型,实际的业务用的机会很少,一般varchar就完全够用了,使用需要结合自己的业务场景。
2024-07-07 20:58:52
431
1
原创 Java Stream API中peek操作
在Java的Stream API中,peek()是一个中间操作,它允许你查看流中的元素,但是并不会对它们进行修改或影响流的后续处理。换句话说,peek()方法提供了一个“窥视”流中元素的机会,但并不改变流本身或其元素的顺序。peek()方法接受一个类型的参数,该参数是一个函数接口,它定义了一个方法,用于处理流中的每一个元素。
2024-06-30 21:22:52
551
1
原创 python函数
函数就是执行特定任务以完成特定功能的一段代码函数定义时,给形参设置默认值,只有默认值不符的时候才需要传递测试语句:def fun(a,b=10): #b称之为默认值参数print(a,b)#直接传参给函数,再执行函数执行体print('world') #hello world(把end值修改为\t,非\n换行)测试语句:def fun(a,b,c): #a,b,c在函数的定义处,所以是形式参数#参数的调用。
2024-06-23 20:04:46
543
原创 python学习:语法(2)
该函数用于生成一个随机的整数,跟java的 Math.random()函数差不多的意思,不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,因为仅仅需要存储start,stop和step,只有当用到range对象时,才会去计算序列中的相关元素。这些对象的布尔值为False:False、数值0、None、空字符串、空列表、空元组、空字典、空集合。Python一切皆对象,所有对象都有一个布尔值,通过内置函数bool()获取对象的布尔值。
2024-06-16 21:59:05
469
1
原创 python学习:语法(1)
标识:表示对象所存储的内存地址,使用内置函数id(obj)来获取类型:表示的是对象的数据类型,使用内置函数type(obj)来获取值:表示对象所存储的具体数据,使用print(obj)可以将值进行打印输出name='玛利亚' #name是变量;=是赋值运算符;玛利亚是值print(name) #打印出name的变量值#name中包含:id、type、value(2353242352,str,玛利亚)print('标识',id(name))print('类型',type(name))
2024-06-02 22:33:13
587
原创 python学习:基础语句
用在 for 循环和 while 循环语句中,用来终止本次循环。在 for 循环和 while 循环语句中,用来终止整个循环。for 循环可以遍历任何序列,比如:字符串、集合。Python 提供了 for 循环和 while 循环。满足条件时进行循环,不满足条件时退出循环。
2024-05-26 22:51:52
661
1
原创 安装python开发环境
如果你选择使用Anaconda作为你的Python分发版,那么conda将成为你的默认包管理器。出现这个页面就是安装成功了!
2024-05-19 21:39:04
320
1
原创 时间范围交集查询
数据库中时开始时间与结束时间,筛选数据条件将这两个字段(开始时间、结束时间)糅合成一个字段,并且是范围筛选。or (startTime <= "开始时间" and "结束时间" <= endTime)or ("开始时间"<=startTime and startTime <="结束时间")("开始时间" <=endTime and endTime<="结束时间")# 全部包含(子集)和左边包含。# 全部包含(被子集)
2024-05-11 19:02:33
474
1
原创 Java Future模式
Future模式是并发编程的一个重要的设计模式。比如有个方法需要很长的时间才能得到结果,不会让调用的程序一直等待,而是先返回给它一张“提货卡”。其实相当于消息队列,当你下了订单之后,在并发情况下,实际不是即时就完成了整个订单流程,而是通过一个消息队列告知你完成订单,实际后台还在走逻辑。
2024-04-21 22:58:47
1179
原创 redis事务
Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。总结的来说,redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令。基于上面的问题,那我在一个客户端操作的时候,把所有的指令一次性按照顺序排他的放在一个队列中,执行完了之后再让其他的客户端操作。加入事务的命令暂时进入到任务队列中,并没有立即执行,只有执行exec命令才开始执行。
2024-04-07 18:03:43
208
1
原创 自定义数据源
可以注册一个DataSource数据实现类的bean,根据springboot的条件注解配置规则。//单个数据源@Bean//多个数据源配置@Primary@Bean@Bean。
2024-04-01 09:32:50
279
1
原创 hashMap数据结构
当遇到上述的情况时,就需要平衡二叉树的出场,也就是AVL树,这个树他会在每次插入的时候检查每个节点的的左子树和右子树的高度差至多等于1,如果>1,就需要进行左旋或者右旋的操作,从而使其查询的复杂度一直维持在O(logN)。任何相邻的结点都不能同时为红色,红色结点是被黑色结点隔开的,每个节点,从该节点到达其可到达的叶子结点的所有路径都包含相同数目的黑色结点。红黑树不会追求像平衡二叉树那样绝对的平衡,插入最多两次旋转,删除最多三次旋转,在应对频繁插入、删除的业务场景时,红黑树的时间复杂度是由于平衡二叉树的。
2024-03-10 20:01:23
381
原创 SpringBoot缓存
中使用@EnableCaching注解启用缓存功能时,如果你想使用Redis作为缓存存储,你需要在配置文件中指定Redis的相关配置。注解来启用缓存功能。缓存类型type的值。加入依赖后,通过使用。
2024-03-03 20:18:43
607
2
原创 SpringBootRest服务调用
一般使用RestTemplateBuilder创建一个自定义的RestTemplate,可以设置请求、读取时间等。通过实现并注册一个 RestTemplateCustomizer 接口的实例,实现附加其他的自定义配置。@Slf4j@Component@Override@Override可以通过WebClient.Builder来自定义WebClient的配置。
2024-02-25 22:49:03
1187
4
原创 spring boot 常用的 Cron 表达式
在使用定时调度任务的时候,我们最常用的,就是cron表达式了。通过cron表达式来指定任务在某个时间点或者周期性的执行。cron表达式配置起来简洁方便,无论是Spring的@Scheduled还是用Quartz框架,都支持cron表达式。
2024-01-21 22:17:11
531
2
原创 spring boot 自动配置
Spring Boot自动装配(Auto Configuration)是Spring Boot框架的一个关键特性,它通过约定大于配置的方式来简化项目的配置过程。自动装配允许开发人员使用默认的配置,同时也可以根据需要进行定制化。Spring通过使用@Autowired注解、注解以及条件化配置等机制,实现了自动装配的功能。通过在类的构造方法、成员变量或方法上使用@Autowired注解,Spring容器可以自动满足Bean之间的依赖关系。当容器启动时,它会扫描并识别带有@Autowired。
2024-01-07 20:40:26
1469
2
原创 Java使用Steam流对数据进行分组并排序
collect(Collectors.groupingBy(PlanManagerTotalVo::getAreaCode)) // 根据Map对象中的"areaCode"属性进行分组。// 将结果放入有序的LinkedHashMap中。.sorted(Map.Entry.comparingByKey()) // 按照键("areaCode"属性的值)进行排序。
2024-01-01 17:26:42
5793
2
原创 RabbitMQ
它接收、存储和转发消息,并确保消息按照预定的规则路由到合适的接收者。通过使用RabbitMQ,开发人员可以构建可扩展、高性能和松耦合的分布式系统,实现异步通信,提高系统的可靠性和可伸缩性。RabbitMQ是一个开源的消息中间件软件,用于在分布式系统中进行消息的传递和处理。它实现了高级消息队列协议(AMQP),提供了可靠的消息传递、灵活的消息路由和消息处理的能力。RabbitMQ是一个功能丰富且可靠的消息中间件,提供灵活的消息路由和异步通信机制,帮助开发人员构建可靠、可扩展和松耦合的分布式系统。
2023-12-17 16:38:38
429
2
原创 SpringBootAdmin设置邮件通知
,以及协议和其他 SMTP 属性。请替换示例中的占位符和值为你的实际信息。这些配置项包括邮件通知的启用状态 ()、SMTP 服务器信息 (
2023-12-10 22:07:04
1385
3
原创 SpringBoot Admin
Spring Boot Admin 是一个管理和监控 Spring Boot 应用程序的开源项目,它提供了一个简洁的 Web 界面来监控 Spring Boot 应用程序的状态和各种运行时指标。Spring Boot Admin 可以帮助开发者快速了解应用程序的状态,并快速定位错误或性能问题。下面是 Spring Boot Admin 的一些主要特点:1. 界面友好:Spring Boot Admin 提供了一个漂亮、干净、响应式的 Web 界面,支持数据实时更新和各种交互式组件。
2023-11-22 11:35:11
553
2
原创 Spring Boot Actuator:自定义端点
该类需要使用`@Endpoint`注解进行标记,并使用`@Component`注解将其作为Spring Bean进行管理。@Component在上述示例中,我们创建了一个自定义端点类`CustomEndpoint`,并使用`@Endpoint`注解指定了端点的ID为`customEndpoint`。`@ReadOperation`注解用于标识该方法处理读取操作的请求。在本例中,该方法返回一个自定义的响应字符串。
2023-11-17 17:00:00
738
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人