自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(164)
  • 资源 (1)
  • 收藏
  • 关注

原创 【Spring Boot 3】【YAML】读取YAML文件

本文介绍开发Spring Boot应用如何读取resources目录下YAML格式文件的内容,注意并不是介绍使用@Value或读取或配置文件,而是读取额外的YAML格式文件,这些文件中的数据也并不一定用于应用配置。本文介绍两种读取YAML使用 Jackson使用 SnakeYaml本文仅说明了读取resources目录下YAML格式文件内容,实际开发中YAML。

2024-03-20 21:41:50 791

原创 【Spring Boot 3】【JSON】读取JSON文件

本文介绍开发Spring Boot应用如何读取resources目录下JSON格式文件的内容。有些情况下应用需要额外加载一些配置信息,这些配置信息既不在或bootstrap配置文件中,也不在由或bootstrap配置文件包含(include)的其他配置文件中,而是存储在一些额外的JSON格式文件中,需要应用启动时加载这些配置信息。本文演示了使用Spring Boot默认的Jackson框架读取JSON的方法,也可以切换为Fastjson2、GSON等其他框架;

2024-03-13 22:11:13 1144

原创 【Spring Boot 3】【Camel 4】动态路由

使用Java DSL定义动态路由使用XML DSL定义动态路由Java DSL动态路由:调用的addRoutes方法,参数类型为;XML DSL动态路由:通过从路由定义文本中构建Resource对象,调用的方法从当前对象中获取,然后调用的loadRoutes方法加载Resource对象。注意:这是Camel 4中的动态添加XML DSL路由的方法,在Camel 3及之前的版本中并不这样处理。

2024-03-11 23:24:52 1029

原创 【Spring Boot 3】【Camel 4】静态路由

本文介绍开发Spring Boot应用如何集成Apache Camel 4.x版本实现静态路由定义。Apache Camel是一个基于《【Apache Camel】基础知识》。Apache Camel提供了多种用于创建EIP模式路由的领域特定语言(Domain Specific Language,DSL),本文演示了最常用的三种:Java DSL、XML DSL、YAML DSL。Timer和Log,关于其他组件的使用在后续文章中陆续补充介绍。

2024-03-11 22:00:23 960

原创 【Spring Boot 3】读取resource文件

本文介绍开发Spring Boot应用如何读取resources目录下文件的内容。本文介绍了开发Spring Boot应用读取resources构造Spring实例,构造参数是resources目录下文件的相对路径;调用当前类的方法,方法参数是加上resources目录下文件的相对路径;调用Spring自动注入的对象的方法,方法参数是加上resources目录下文件的相对路径;调用Spring自动注入的对象的方法,方法参数是加上resources目录下文件的相对路径。

2024-03-08 22:46:22 580

原创 【Spring Boot 3】动态注入和移除Bean

本文介绍开发Spring Boot应用如何动态注入及移除Bean实例。获取;通过获取;通过构建;调用的方法注入。

2024-03-08 21:48:10 1141

原创 【Spring Boot 3】获取已注入的Bean

本文介绍开发Spring Boot应用如何获取已注入的Bean实例。测试用的Bean和配置注入放在src/test目录下是为了辅助测试。

2024-03-07 22:46:21 668

原创 【Spring Cloud 2023】【ZooKeeper】配置中心

本文介绍开发Spring Cloud应用集成ZooKeeper实现配置中心。本文引入 Apache Curator 是为了辅助测试配置中心相关功能;配置项说明::全局配置节点名称,默认。:默认true,启用ZooKeeper配置功能。:默认true,查找配置会抛出异常,否则只会记录警告日志。:替代用于在ZooKeeper中查值。:附加到应用程序名称的配置文件的分隔符,默认英文逗号。:配置根节点名称,默认config。

2024-03-07 22:11:39 947

原创 【Apache Camel】基础知识

通常应用程序中只有一个 CamelContext,但也可以同时存在多个 CamelContext,但多个 CamelContext 之间彼此需要隔离,如果要在多个 CamelContext 之间通信,则需要加入一个传输层(如消息队列)。Message 接口提供了单个消息的抽象表示,如请求消息、回复消息、异常消息。Routes 用于连接源 Endpoints 和目标 Endpoints,Routes 描述了消息从源 Endpoints 到目标 Endpoints 的移动过程。

2024-03-06 21:12:23 1034

原创 【Spring Cloud 2023】【ZooKeeper】服务注册与发现

本文介绍开发Spring Cloud应用集成ZooKeeper实现服务注册与发现。:提供服务:消费服务使用Spring Cloud ZooKeeper服务注册与发现时默认的namespace是/services,如ZooInspector中所示,如果想替换成其他名称可以设置;本文中的作为服务消费者,不需要对外提供服务,所以不需要作为一个服务注册到ZooKeeper上,可以设置或;如果应用添加了依赖,又不想启用服务注册与发现功能,则可以设置;

2024-03-04 21:23:28 935

原创 【Docker】【ZooKeeper】单机部署

本文介绍Docker安装ZooKeeper并实现单机模式部署的方法及步骤。本文是对ZooKeeper单机模式部署的说明,虽然使用的是Windows操作系统,但在其它操作系统中的部署也基本类似;因为是单机模式部署,所以docker run命令中的参数可以省略,这两个参数主要用在集群部署场景;ZooKeeper单机模式部署仅适用于日常开发及功能类测试,不适用于性能、稳定性测试,也不建议用在上线前的测试环境和实际生产环境中。

2024-02-28 22:40:26 535

原创 【Docker】【Nacos】单机部署

本文介绍Docker安装Nacos并实现单机模式部署的方法及步骤。本文是对Nacos单机模式部署的说明,虽然使用的是Windows操作系统,但在其它操作系统中的部署也基本类似;Nacos单机模式部署仅适用于日常开发及功能类测试,不适用于性能、稳定性测试,也不建议用在上线前的测试环境和实际生产环境中;完整的Nacos配置属性说明请参考Nacos Docker 快速开始。

2024-02-28 21:55:25 510

原创 【Spring Boot 3】【JPA】一对多双向关联

【Spring Boot 3】【JPA】@OneToMany 实现一对多单向关联和【Spring Boot 3】【JPA】@ManyToOne 实现一对多单向关联中分别介绍了如何使用@OneToMany和@ManyToOne注解处理一对多单向关联关系,本文介绍结合使用@OneToMany和@ManyToOne注解处理一对多双向关联关系,涵盖主从双数据表和带有中间关联关系表的三数据表这两种存储关联关系的实现。本文定义了公司(Company)、工程师(Engineer)、经理(Manager。

2024-02-26 22:18:48 745

原创 【Spring Boot 3】【JPA】@ManyToOne 实现一对多单向关联

【Spring Boot 3】【JPA】一对多单向关联》说明了开发Spring Boot应用时如何使用@OneToMany注解处理一对多关联关系,但是因为@OneToMany无法控制获取记录的数量,存在内存溢出的风险,因此日常开发中多数情况下会使用@ManyToOne注解处理一对多关联关系。本文介绍开发Spring Boot应用时如何使用@ManyToOne注解处理一对多单向关联关系,涵盖主从双数据表和带有中间关联关系表的三数据表这两种存储一对多关联关系的实现。本文定义了公司(Company。

2024-02-23 23:06:55 1046

原创 【Spring Boot 3】【JPA】@OneToMany 实现一对多单向关联

本文介绍开发Spring Boot应用时如何使用@OneToMany注解处理一对多单向关联关系,涵盖主从双数据表和带有中间关联关系表的三数据表这两种存储一对多关联关系的实现。本文定义了公司(Company)、工程师(Engineer)、经理(Manager)三个实体,其中公司(Company)与工程师(Engineer)、公司(Company)与经理(Manager)都是一对多单向关联,且关系主控方(即关系拥有方)都是公司(Company本文将中间表对应的Entity()和Repository(

2024-02-22 22:20:05 511

原创 【Spring Boot 3】【JPA】一对一中间表关联

存储一对一关联关系可以使用主从双数据表或带有中间关联关系表的三数据表,在《【Spring Boot 3】【JPA】一对一单向关联》和《【Spring Boot 3】【JPA】一对一双向关联》中说明了基于主从双数据表的实现,本文介绍带有中间关联关系表的三数据表实现。本文定义了房屋(House)、地址(Address)、房产证()三个实体,其中房屋(House)与地址(Address)一对一单向关联,房屋(House)与房产证()一对一双向关联,关系主控方(即关系拥有方)都是房屋(House。

2024-02-21 21:18:34 858

原创 【Spring Boot 3】【JPA】一对一双向关联

【Spring Boot 3】【JPA】一对一单向关联》说明了开发Spring Boot应用时如何使用@OneToOne注解处理一对一单向关联关系,本文介绍如何处理一对一双向关联关系。存储一对一关联关系通常使用主从双数据表,其中主表中有外键指向从表,有时也会使用三数据表,即存在一个中间关联关系表。本文基于主从双数据表实现。本文使用级联权限设置,因此主表的增加操作会影响从表,修改和删除操作都不会影响从表,级联权限设置包括:ALL:拥有以下所有权限。PERSIST。

2024-02-19 22:40:23 928

原创 【Spring Boot 3】【JPA】一对一单向关联

本文介绍开发Spring Boot应用时如何使用@OneToOne注解处理一对一单向关联关系。存储一对一关联关系通常使用主从双数据表,其中主表中有外键指向从表,有时也会使用三数据表,即存在一个中间关联关系表。本文基于主从双数据表实现。本文使用级联权限设置,因此主表的所有增、删、改操作都会影响从表;本文针对价格类字段使用Double数据类型,开发中应根据实际情况采用Long或BigDecimal类型代替,不建议直接使用Double数据类型。

2024-02-19 22:13:09 1016

原创 【Linux】单机可建立的最大TCP连接数

本文介绍Linux单机作为客户端或服务端时可建立的最大TCP连接数。注意:本文基于IPv4场景。

2024-02-18 22:27:57 544

原创 【Spring Boot 3】【JPA】@ElementCollection处理一对多关系

OneToMany@ManyToOne本文介绍开发Spring Boot应用时如何使用处理集合属性处理集合属性处理集合属性处理类集合。

2024-02-18 21:51:22 559

原创 【Spring Boot 3】【JPA】嵌入式对象

日常开发过程中经常会遇到一些拥有很多字段的表,这些字段可以按照一定范围进行分组,但考虑到效率等因素不得已将所有这些字段都放在同一张表内,譬如员工信息表中既包含姓名、出生日期等基本信息,同时也包含该员工的联系信息,联系信息又由邮箱、手机号、通讯地址等组成,本可以将联系信息设计成单独的一张数据表,但为了避免多表联合查询的效率问题,将所有的这些字段都放入一张表内,从代码开发的角度出发,如果只定义一个员工Entity实体类并不一定合理,更合理的方案是将联系信息拆分成一个独立的类嵌入到员工Entity类中。

2024-02-02 22:44:10 855

原创 【Spring Boot 3】事件机制

定义事件类定义事件发布定时事件监听其中每一步都有多种方法实现,本文即是介绍开发Spring Boot应用实现事件机制的这些方法。Spring事件默认是单线程执行的,好处在于事件监听和事件发布可以使用同样的事务(Transaction)上下文;本文介绍的配置多线程执行的方法将对应用中所有的事件监听器生效,如果想控制只为其中某些监听器生效,则不需要本文中的定义,只需在需要多线程执行的事件监听器方法上添加@Async注解即可。

2024-02-01 23:05:42 1351

原创 【Spring Boot 3】应用启动执行特定逻辑

实现接口run方法;实现接口run方法;实现接口方法;使用注解;使用注解,设置。和接口是在Spring Boot应用程序启动后回调的接口,因此需要等待启动完成后才能执行的逻辑要使用这两种方法实现;在Bean初始化之前执行,的方法在Bean属性初始化后执行,他们只与当前Bean相关,并不会等到应用完全启动完成,因此他们的执行要早于和;@Scheduled也不依赖于应用完全启动,通过设置延迟执行时间可以尽量确保在应用完全启动后执行,但这种方法用得较少。默认情况下的执行在之前,通过的。

2024-02-01 22:19:22 877

原创 【Spring Boot 3】【@Scheduled】多线程执行定时任务

Scheduled使用@Scheduled注解的方法同时使用@Async注解;调用的 `` 方法设置执行定时任务的线程池。前序任务的执行时长制约后续任务的执行,导致任务实际执行的时间间隔超过了配置的时间间隔;任务执行需要抢占线程资源,很可能某些任务永远抢占不到线程资源,导致定时执行任务的逻辑实际是无效的。

2024-01-30 22:59:32 1718

原创 【Spring Boot 3】异步线程任务

本文介绍开发Spring Boot应用实现异步线程任务的方法及步骤。Spring Boot使用注解开启对异步线程的支持,使用@Async注解标注异步任务,@Async注解在类上,则该类中所有方法都是异步线程执行,需要注意使用@Async注解的类对象必须是Spring上下文管理的Bean实例;注解在方法上,只有标注注解的方法是异步线程执行。Spring异步任务的原理是通过Spring AOP动态代理实现的,Spring容器初始化Bean实例时会扫描@Async。

2024-01-29 23:16:37 849

原创 【Spring Boot 3】【@Scheduled】动态删除定时任务

【Spring Boot 3】【@Scheduled】动态新增定时任务说明了开发Spring Boot应用时如何动态新增定时任务,本文将在其基础上继续介绍如何动态删除定时任务。1> 本文展示的添加定时任务的实现方法与【Spring Boot 3】【@Scheduled】动态新增定时任务不同,没有使用,而是自定义了一个类型的实例,通过调用此实例的schedule*方法添加定时任务,也未使用到注解;2> 本文使用了缓存所有的定时任务对象,后续所有对定时任务的控制本质上都是调用这些定时任务对象的方法;

2024-01-28 10:48:24 1276

原创 【Spring Boot 3】【@Scheduled】动态新增定时任务

【Spring Boot 3】【@Scheduled】动态修改定时任务时间说明了开发Spring Boot应用如何动态修改定时任务的时间,本文介绍如何动态新增定时任务。1> 本文配置定时任务使用的方法与【Spring Boot 3】【@Scheduled】动态修改定时任务时间中有所区别,没有使用方法,而是直接使用了等方法,需要关注的是,使用这些方法在添加完定时任务后需要执行语句,否则定时任务不会生效;

2024-01-27 22:14:13 1207

原创 【Spring Boot 3】【@Scheduled】动态修改定时任务时间

Spring Boot 3】【@Scheduled】静态定时任务说明了开发Spring Boot应用时如何配置静态定时任务,本文介绍如何动态调整定时任务时间。1> 如果要实现动态修改定时任务触发时间,则需要自定义接口的实现类,在实现方法时调用Spring提供的Bean的相关方法配置定时任务;2> 通过配置定时任务的方法除了外,还有等,在使用上稍有不同,本文中并未做出相关介绍;

2024-01-27 18:10:46 1475

原创 【Spring Boot 3】【@Scheduled】静态定时任务

使用@Scheduled注解实现创建静态定时任务;实现接口自定义配置定时任务;集成 Quarz、ElasticJob、xxl-job 等第三方任务调用框架。本文介绍最基本的使用@Scheduled注解实现创建静态定时任务。@ScheduledfixedRate:按照固定频率节奏执行任务,即每隔一段时间都会执行任务。无论上一次定时任务是否已执行完成;fixedDelay:按照固定时间间隔执行任务,即上一次任务结束至下一次任务开始之间的时间间隔是固定的。cron。

2024-01-25 23:43:07 709

原创 【Spring Boot 3】【JPA】日期时间类型持久化

本文介绍开发Spring Boot应用时使用JPA如何处理日期时间类型的持久化。和虽然是JDK8开始引入的新的日期时间类型,但本文重点不在于分析这几种日期时间类型的应用场景差异,仅说明Spring Boot Data JPA如何处理这几种日期时间类型的持久化。

2024-01-25 22:56:56 1031

原创 【Spring Boot 3】【JPA】枚举类型持久化

使用注解,存储枚举类型实例的定义顺序(从0开始递增),这也是JPA处理枚举类型的默认行为;使用注解,存储枚举类型实例的name属性,即name()方法返回值;自定义实现接口的转换类:方法将枚举转换成存储到数据库中的数据;方法将从数据库中查询到的数据转换成枚举。如果在自定义转换器上添加注解,则这个转换器会自动应用到所有的Entity上。

2024-01-23 22:55:04 1238

原创 【Spring Boot 3】【Redis】集成Redisson实现消息发布订阅

Redisson区别与Lettuce和Jedis之处在于,Redisson不再是一个纯粹的Redis客户端,还提供了很多高级的分布式服务,本文介绍开发Spring Boot应用集成Redisson实现消息的发布及订阅。:定义消息主题(Topic)及消息对象类。:定时发布消息。:订阅消息。

2024-01-22 22:37:13 1185

原创 【Spring Boot 3】【Redis】集成Redisson

除Lettuce和Jedis外,Redisson也是一个较为流行的Redis客户端,本文介绍开发Spring Boot应用集成Redisson实现对Redis常见数据类型的基本操作。本文只介绍了Redisson对Redis基本数据类型的操作,但Redisson有别于Lettuce和Jedis的地方在于,Redisson并非一个纯粹的Redis客户端,还提供了很多高级的分布式服务,如分布式环境下的读写锁、公平锁、ID生成器、限流器等功能,在后续文章中会逐步介绍。

2024-01-22 21:14:39 927

原创 【Spring Boot 3】【Redis】消息发布及订阅

Redis常见用途包括被用作分布式环境中的消息队列服务,本文介绍开发Spring Boot应用时借助Spring Data Redis实现消息的发布及订阅。:定时发布消息。:订阅消息。虽然使用Redis可是实现分布式环境下的消息发布及订阅功能,但这仅适用于较为简单的应用场景,复杂场景下还是建议多考虑专用的MQ产品,如Kafka、RabbitMQ、RocketMQ等。

2024-01-20 13:42:16 1177

原创 【Spring Boot 3】【Redis】分布式唯一ID生成器

本文介绍开发Spring Boot应用借助Spring Data Redis实现分布式唯一ID生成器。注意单元测试中使用的Set实际是线程安全的(),使用了JDK21引入的虚拟线程测试并发情境下分布式ID的唯一性。

2024-01-19 22:22:24 673

原创 【Spring Boot 3】【Redis】基本数据类型操作

本文介绍开发Spring Boot应用时借助Spring Data Redis实现对Redis五种基本数据(字符串string、哈希hash、列表list、集合set、有序集合zset)类型的操作。

2024-01-19 21:55:41 597

原创 【Spring Boot 3】【Redis】分布式锁

本文介绍Spring Boot + Redis实现分布式锁。注意一定要添加。

2024-01-17 22:44:58 577

原创 【Spring Boot 3】【Redis】集成Jedis

Spring Data Redis整合了Lettuce和Jedis两个流行的Redis客户端,本文介绍Jedis客户端在Spring Boot应用开发中的基本使用。因为默认使用Lettuce作为Redis客户端,所以如果要更换为Jedis,需要排除中对的依赖,并引入jedis依赖。

2024-01-17 22:30:13 773

原创 【Spring Boot 3】【Redis】集成Lettuce

Spring Data Redis整合了Lettuce和Jedis两个流行的Redis客户端,本文介绍Lettuce客户端在Spring Boot应用开发中的使用。Spring Boot应用中引入自动生成Bean实例,用于创建对象;自动生成Bean实例作为Redis客户端,实际类型是。

2024-01-17 22:15:48 862

原创 【Spring Boot 3】【数据源】自定义混合多数据源

在《【Spring Boot 3】【数据源】自定义JDBC多数据源》《【Spring Boot 3】【数据源】自定义JPA多数据源》和【Spring Boot 3】【数据源】自定义MyBatis多数据源中分别说明了开发Spring Boot应用集成JDBC、JPA、MyBatis实现数据库操作时如何自定义多数据源,有时开发可能需要使用多种数据库访问技术和ORM框架,本文介绍在同时启用JDBC、JPA、MyBatis时如何自定义多数据库。要注意pom。

2024-01-14 09:32:49 1203

AXMLPrinter2

2017-02-19

空空如也

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

TA关注的人

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