- 博客(34)
- 收藏
- 关注
原创 @PropertySource使用记录
PropertySource 是 Spring 框架中的一个注解,用于指定要加载的属性文件(通常是 .properties 文件)@PropertySource(value = “classpath:common-satoken.yml”, factory = YmlPropertySourceFactory.class)指定的是resources。
2025-10-23 17:27:55
396
原创 SpringBoot项目在logback-spring.xml中读取application.yml中配置获取不到问题
因为logback-spring.xml的加载要先于application.yml,所以直接通过${参数key}的形式获取是无法获取到application.yml对应参数值的。具体的执行顺序是:bootstrap.properties > bootstrap.yml > application.properties > application.yml。使用application.properties或者bootstrap.yml配置。application.properties添加如下配置,也可以。
2025-10-17 18:08:44
185
原创 Spring Boot 多数据源配置
异构数据库:同时使用 MySQL、PostgreSQL、Oracle 等不同数据库。三、方案一:基于 dynamic-datasource 的配置(推荐)数据库分库分表:业务数据分布在不同的数据库实例中。数据迁移和同步:需要同时访问新旧两个数据库系统。读写分离:主库处理写操作,从库处理读操作。多租户系统:每个租户使用独立的数据源。四、方案二:手动配置多数据源。3.2 使用注解切换数据源。五、方案三:动态数据源路由。一、为什么需要多数据源?5.1 数据源路由配置。3.1 配置文件设置。4.2 从数据源配置。
2025-09-08 16:40:19
553
1
转载 flowable 驳回摘抄
addCommentAndUpdateProcessStatus 这个方法是添加审批意见和更新流程状态,由于流程状态没有,我这里扩展了一张表,状态主要有审批中,驳回,暂存,转办,撤回,终止等等状态。AddChildExecutionCmd 添加一个流程实例下面的执行实例。DeleteChildExecutionCmd 删除执行实例。DeleteTaskCmd 删除任务命令。JumpActivityCmd 执行跳转。
2025-05-30 09:53:08
157
原创 Spring Boot 中的条件注解
/ 当类路径下存在org.example.SomeService类时,该配置类生效// 当JNDI中存在指定名称的数据源时,该配置类生效// 当类路径下不存在org.example.ExpensiveLibrary类时,该配置类生效// 非WAR包部署时,该配置类生效// 非Web应用场景下,该配置类生效// 当类路径下存在config/custom.properties文件时,该配置类生效// 当容器中UserService类型的Bean只有一个时,该配置类生效。
2025-04-27 10:56:35
755
原创 SpringBoot注解--@Import
Import 注解能够在一个配置类中引入其他的配置类、组件,或者通过 ImportSelector、ImportBeanDefinitionRegistrar 动态地注册 Bean。此注解可接收一个或多个类作为参数,Spring 会依据这些类的类型进行不同的处理。
2025-04-27 10:28:56
246
原创 优雅获取 @ApiModelProperty 中的 value 值
例如,在自定义的 MyBatis Generator 插件中,可以在生成 Java 模型类时,获取字段上的@ApiModelProperty注解信息,并将value值存储在一个与模型类对应的配置文件中。获取@ApiModelProperty中的value值虽然看似是一个小需求,但在实际项目开发中,通过合理利用反射、代码生成工具以及 AOP 等技术,可以实现优雅且高效的获取方式,为项目的日志记录、用户交互提示等方面带来极大的便利。Java 的反射机制为我们提供了强大的能力来操作类的各种元素,包括注解。
2025-04-14 07:50:48
732
原创 会计名称解释
它的主要目的是将当期的收入、费用等临时性账户的余额结转到所有者权益类账户中,以便为下一个会计期间做好准备。3、更新所有者权益:将当期的净利润或净亏损结转到所有者权益类账户(如“未分配利润”),反映企业的经营成果。1、清零临时性账户:将收入、费用等临时性账户的余额清零,以便下一个会计期间重新记录。含义:指某个会计科目在当前会计期间内,所有借方发生额的累计总和。含义:指某个会计科目在当前会计期间内,所有贷方发生额的累计总和。通过“本年利润”账户的余额,计算出当期的净利润或净亏损。
2025-03-05 10:41:52
484
原创 理解 InheritableThreadLocal
在多线程编程中,ThreadLocal 是一个非常有用的工具,它为每个线程提供了一个独立的变量副本,从而避免了线程之间的数据共享问题。然而,在某些场景下,我们可能需要让子线程能够继承父线程的 ThreadLocal 变量值。这时,InheritableThreadLocal 就派上了用场。
2025-02-10 09:29:38
774
原创 判断公式之间的是否存在循环调用
举个例子,在下方的无向连通图中,假设我们要从起始点A出发,使用深度优先搜索算法进行搜索,首先访问A->B->E,走不通了,回溯到A起始点,走第二个分支节点B,路径为A->C->F->H->G->D,走不通了,再回溯到起始点A,发现所有的节点都已经走过一次了,因此本次搜索结束。租金 = 实收电费 - 实收电费服务费 - 农户租金 - 农户租金服务费 - 运维费 - 运维费管理费 - 管理费 - 管理费服务费;运维费 = 基础运维费 + 考核运维费 + 租金;运维费管理费 = 运维费 * 0.034;
2025-01-21 10:01:33
374
原创 自定义校验时间字符串
Class<?Class<?@Override@Override// 允许 null 值,如果不允许可以修改为 falsetry {// Getter 和 Setter 方法。
2024-12-16 11:09:38
170
原创 手动提交事务代码
如果业务逻辑需要操作多个数据源,而Spring的声明式事务管理默认只能管理单一数据源的事务,这时就需要手动控制事务,以确保所有数据源的一致性。在复杂的业务逻辑中,可能需要在不同的时间点对不同的数据库操作进行提交或回滚。在某些情况下,可能需要对事务的隔离级别、传播行为等进行细粒度的控制,而自动事务管理可能无法提供足够的灵活性。当需要自定义事务的行为,比如在事务提交前执行一些特定的逻辑时,手动控制事务可以提供这种能力。对于一些读多写少的操作,可能需要手动控制事务以减少锁定资源的时间,从而提高性能。
2024-12-06 18:34:20
368
原创 xk-flyflow代码整理
4、递归遍历所有节点,如果节点是审批节点没有设置表单元素的权限(formPerms),默认设置为只读。8.2.5.2 构建开始节点,无触发条件的开始事件(StartEvent)、自动完成用户任务(UserTask)8.2.5.4 构建审批节点,用户任务(UserTask)、自动化的任务(ServiceTask)5、递归遍历所有节点,如果节点是抄送节点,设置表单元素的权限(formPerms)8.3 将BpmnModel对象信息写入到flow_id.bpmn20.xml的文件中。
2024-11-27 16:54:01
517
原创 Java 多态类型进行JSON序列化、反序列化
Override@Data@Data/*** 根据传入的对象值确定一个自定义的类型标识字符串。* 此方法用于在序列化过程中,根据具体的对象类型生成对应的类型标识,以便在JSON数据中存储。* @param value 要确定类型标识的对象实例* @return 如果对象是Circle类型,返回 "CIRCLE_CODE";如果是Rectangle类型,返回 "RECTANGLE_CODE";否则返回null*/@Override/**
2024-11-22 10:41:28
1308
原创 使用git submodule踩坑
4、在项目根目录执行git clone重新拉取xk-basic、xk-base-starter。2、执行git命令添加更新xk-base-starter、xk-basic。2、删除代码中的xk-basic、xk-base-starter。3、在项目根目录下创建.gitmodules文件,如上操作。5、提交代码,git远程仓库如下说明。出现提交哈希码(代码版本)说明OK了。1、idea拉取xk-flow项目。1、git拉取xk-flow项目。3、添加.gitmodules。gitmodules内容如下。
2024-11-06 17:42:03
490
原创 Java静态方法代替构造器
静态方法在某些情况下是构造器的一个有效替代方案,特别是在需要控制对象创建、创建不可变对象或实现工厂模式时。4、避免对象创建:如果一个操作不需要对象的状态,或者可以共享相同的状态,那么使用静态方法可以避免不必要的对象创建,从而节省内存。静态方法:属于类而不是对象实例,不能访问类的实例变量或调用实例方法,但可以访问类的静态变量和调用静态方法。2、不可变对象:如果一个类的对象一旦创建就不应该被修改,那么使用静态方法来创建对象可以确保对象的不可变性。节省资源:避免不必要的对象创建,节省内存和提高性能。
2024-10-21 07:41:19
266
原创 @Transactional方法添加了调用远程方法、分布式锁是否合适
finally中释放锁是在spring事务提交之前,所以此时锁已经释放,但是事务还没有提交!而且,这个代码里面也没有抛出异常,简单地来说,就算是不考虑重复提交的问题,也不能回滚!事务标签,@Transactional下的代码应该行数最小,不包含数据准备、逻辑计算,尽量避免远程调用,慢查询。远程服务的调用可能不会受到这个事务的控制,这意味着如果远程服务的调用失败,你可能需要手动回滚本地事务。一致性问题:如果本地事务已经提交,但远程调用失败,那么你可能需要实现额外的逻辑来保证数据的最终一致性。
2024-10-14 09:26:03
372
原创 springboot 校验参数常用注解
NotBlank:校验字段值不能为null或空字符串,且去除前后空格后长度至少为1。@NotEmpty:校验字段值不能为null且去除前后空格后长度必须大于0。@Min和@Max:校验数字类型的字段值是否在指定的最小值和最大值之间。@Length:校验字符串字段的长度,可以指定最小值和最大值。@Pattern:校验字段值是否符合指定的正则表达式。@Email:校验字段值是否为有效的电子邮件地址。@Size:校验集合或字符串的大小在指定范围内。@NotNull:校验字段值不能为null。
2024-10-09 08:00:12
543
原创 mybatis-自动映射枚举
未声明的枚举将使用 mybatis 的 defaultEnumTypeHandler 的默认值 EnumTypeHandler 进行映射。枚举属性使用 @EnumValue 注解,指定枚举值在数据库中存储的实际值。支持枚举类中的任意字段,如序号或编码。在枚举中重写 toString 方法,以上两种方式任选其一。可以通过修改全局配置来变更,不过这对上面步骤声明的枚举无效。在枚举中重写 toString 方法,以上两种方式任选其一。一、重写 toString 方法。一、重写 toString 方法。
2024-09-23 08:10:12
397
原创 任务拆分总结
1、一个复杂的任务需要拆分成N个任务模块,每个任务都是完成总目标的一小步,遵循原则从简到难2、每个任务模块可以分为M个步骤,每个步骤要达到具体、可衡量3、任务实行可以分为正向和逆向,正向就是从顶往下执行,逆向就是从底往上(类似将房子从地基开始)
2024-08-16 17:24:39
598
原创 金融市场概念、功能
金融市场是创造和交易金融资产的市场,它是以金融资产为交易对象而形成的供求关系和交易机制的总和。这个定义强调了金融市场的两个核心要素:一是金融资产的创造和交易,二是供求关系和交易机制的形成。金融资产包括但不限于股票、债券、基金、期货、期权、衍生品等市场是指买卖商品的场所。
2024-07-27 22:03:14
464
原创 Gateway结合zookeeper动态路由配置说明
系统会自动生成默认的id=xservice,uri: lb://xserver,path=/serviceId/**的路由信息。请求serverA接口地址:http://localhost:14000/serverA/hello。请求serverB接口地址:http://localhost:14000/serverB/hello。#Spring Cloud Zookeeper服务注册中心的配置属性,用于指定注册服务的根路径。#将当前服务实例注册到Spring Cloud Zookeeper服务注册中心。
2024-07-26 14:20:52
796
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅