自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 问答 (1)
  • 收藏
  • 关注

原创 【mybatis 一级缓存】

mybatis 默认开启一级缓存,为什么我们很少遇到缓存带来的问题呢;这篇文章主要是记录当时排查这个问题的过程。今天这篇文主要回顾一下的知识。

2024-07-22 08:00:00 127

原创 SQL 子查询中,查询了一个不存在的字段,居然不报错

前几天在做一个需求,用户所在的部门被删除了,对应用户的角色也要清空。测试测的时候发现,只要测我的这个需求系统的所有角色都被删除了。。。。。。。我看了日志也没报错呀,我也没有删除所有账号的角色呀。我有点不相信,就再让测试测一下,发现真的执行了我的需求,账号角色立马就没了。

2024-07-18 14:51:41 271

原创 说说实际开发中合并代码的方式吧

去一个新的公司一定要遵守的开发规范,肯定是分支管理规范了。如果你不弄清楚分支的管理规范,真的生产环境变发开环境。今年团队招了不少人,进来之后没有负责人给你讲开发规范啥。所以有哪些规范你得主动问同事,今年有新同事直接把dev分支的代码合到master了。。。。说说常见的两种分支开发规范吧。

2024-07-10 08:00:00 290

原创 把sql拿到数据库中执行,和程序返回的值不一样??????

看到这儿,原来是开发直接在原有结果集的引用上修改了值,导致后面查询出来的是被修改过的值。第二次查询缓存中的数据,也没有打印sql,让同事们连连叫怪。。。。。最后大家还是不要直接修改mapper结果集的数据。。。。。。。。。

2024-06-24 08:45:00 849

原创 入职小“国企”一年多了

大家好!我是大飞!去年三月,我入职了成都的一家小"国企"。距离现在也一年多了,现在也算核心开发吧,毕竟是小团队嘛。目前的开发团队人员配置是8后两前,一个20多年经验的技术经理。今天和大家分享一下我们公司目前的情况,吐槽一下吧。

2024-06-13 09:00:00 473 2

原创 springboot事件发布机制之生产运用

大家好我是大飞!现在大环境不好了,防御式编程当然是现在必不可少的技能了,今天说一下防御式编程之事件发布机制。之前也写过一篇【关于事件发布机制源码浅析】的文章,如果之前还没了解过事件发布机制的同学可以看一下这篇文章,没有用过的可以先看一下我的这篇文章。之前简单介绍过事件发布机制,今天讲一下在实际情况中的运用需要注意哪些问题。做了六年的java开发了,在业务开发中比较难受的就是维护别的代码,特别是那种不写注释,还滥用设计模式的代码了。

2024-06-10 14:28:53 616

原创 【 Quartz框架中各个表及其字段含义】

Quartz是一个强大的任务调度框架,它通过在数据库中维护多张表来存储和管理任务信息。了解这些表的结构和字段含义,有助于我们更好地理解Quartz的工作原理,并在实际应用中进行有针对性的优化和管理。想了解Quartz框架其他信息可以参考下面的博客。

2024-05-29 22:00:47 1518 2

原创 AI时代下对于bloger的影响

确实AI 对于知识博主而言,能极大的提升我们的创作效率。当然我们也要看到实物的两面性,ai真的可以平替很多的知识博主。继续加油吧!—阿飞。

2024-05-19 17:42:44 245

原创 【Spring AI 来了】

Spring AI 是一个用于人工智能工程的应用框架。它的目标是将 Spring 生态系统的设计原则,如可移植性和模块化设计,应用于人工智能领域,并促进将 POJO 作为应用的构建块在人工智能领域的使用。

2024-04-24 23:11:54 411

原创 一个java程序员,正在经历公司从0-1的过程

大家好!我是阿飞,今天站在java程序员的角度分享一下在公司成立初期的面临的问题(说说废话啦介绍一下公司背景吧,公司性质属于半个国企吧,是集团的子公司,今年成立的。我呢是去年3月入职的,去年入的是集团的另一个公司。所以从本质上来说不是完全从0开始,但公司确实今年才成立,目前公司一共30多个人,一半的人都是最近一年到岗的,剩下的一般就是母公司迁出来的,主要就是给成都某事业单位做项目。0-1的过程,虽然赚不到米,在不把自己累死的情况下,多积累一点经验,主动和开发同事多沟通,还是可以学点经验的。

2024-04-17 23:35:50 574 3

原创 到底需要加唯一索引不

唯一索引、逻辑删除,相信这两个词对于java程序员来说一点都不陌生吧。唯一索引:索引列的值必须是唯一的,不允许重复逻辑删除:用字段的状态记录数据是否被删除最近项目上遇到因为没有正确使用这两个东西,导致一系列的问题。比如删除的时候逻辑删除,并且比如身份证号,手机号又加了唯一索引,再次保存就报错。有些项目从业务上来讲身份证,手机号必须唯一但是没有加唯一索引,但是产生了很多重复数据,今天就来分析一下什么场景下使用这两个东西。

2024-04-16 22:24:23 321 2

原创 分析Quartz(v2.3.2)QuartzSchedulerThread.run核心方法

最近项目中的定时任务,用Quartz框架取代了。最近也在学习Quartz框架这方面的知识,但是看代码过程有很多难以理解的地方。项目中使用数据库来存储的任务,本篇文章就从方法入手,分析任务是如何被选择执行的。

2024-04-15 23:01:37 326 2

原创 历时一个月,才定位到quartz任务偶尔执行失败问题

本片文章主要介绍了,实际开发中因为项目架构的问题,引发的一系列让人摸不做头脑的问题。实际上不是技术框架bug,和开发同事的写法问题。

2024-04-15 17:33:12 1080

原创 入职国企有一年了

先介绍一下自己吧,18年进入程序员行业,现在已经是我的第三家公司。由于第二家公司加班比较多,再加上自己认为本人不适合干程序员,所以去年就找了一家国企让自己有时间思考下一步应该怎么走。来国企一年多了,确实还是有很多感受可以和jrm分享一下的。

2024-04-09 13:18:20 741 1

原创 数据库卡死,不要再重启了

说实话数据库卡死,还是比较少见的,我工作六七年也只遇到过两三次。上周就遇到一次,而且上周发生的十分的频繁。可能适合数据库有很大关系,因为我们搞了国产化,用了人大金仓的数据库。今天就讨论一下面临数据库卡死的时候,如何查到问题所在。(ps:本篇文章只是提一个一种排查的思路)本篇文章主要分析了pg_locks的字段含义,以及在排查数据库问题时的应用场景。在面临数据卡死的场景时候,可以查询这两个视图分析问题,而不是直接重启。

2024-04-08 13:15:25 1108

原创 【基于springboot分析Quartz(v2.3.2)的启动流程】

通过启动日志、以及在任务中debug,反向推理出Quartz在springboot中的启动流程,以及Quartz框架调度任务的核心逻辑。授人以鱼不如授人以渔,希望本篇文章不仅仅能帮助大家理解Quartz,还能帮助大家学会去阅读框架源码。

2024-03-30 01:01:09 1348 3

原创 sql中使用了in直接卡死

最近在做数据迁移的工作,会员库有200多万数据,组织机构有4万数据。要把这些数据迁移到新系统的数据库中,开发新系统之前完全没考虑过数据量。当数据导入之后,页面就各种报错。。。。。。。。。。。。。。。

2024-03-28 22:52:38 483

原创 redis 必须掌握的面试题

Redis 的数据淘汰策略包括:noeviction(不淘汰数据)、volatile-lru(在设置了过期时间的键中,选择最近最少使用的键进行淘汰)、volatile-ttl(在设置了过期时间的键中,选择剩余时间最短的键进行淘汰)、volatile-random(在设置了过期时间的键中,随机选择键进行淘汰)和 allkeys-lru(从所有键中选择最近最少使用的键进行淘汰)等。ACL 允许细粒度的权限控制,可以限制命令的执行、键的访问和操作等,以保护 Redis 数据的安全性。

2024-03-19 18:46:49 773 1

原创 Quartz 框架集群模式简介

Spring Boot框架提供了集成Quartz的便捷方式,使得任务调度变得简单且高效。在本篇博客中,我们将介绍如何在Spring Boot框架中使用Quartz的集群模式来实现高可用性的任务调度。(springboot 集成Quartz框架,以及简单的demo 在我上篇文章【springboot集成Quartz定时任务组件】

2024-03-14 13:53:24 1100

原创 springboot集成Quartz定时任务组件

平时开发中相信大家都经常用到定时任务吧,最近简单的就是直接使用@Scheduled注解标注到方法上用注解的方式在项目运行时无法去对任务进行管理。现在开发过程中用得比较多的就是Quartz框架了。下面直接介绍其最常见的使用方式。以上是Quartz框架基于springboot简单demo,如果你还在springboot中使用@Scheduled注解不妨试一下Quartz定时任务框架demo仓库:https://gitee.com/fei96/springboot-quartz.git。

2024-03-12 21:16:09 1018

原创 【mybatis 拦截器在实际开发中的运用】

实际开发中经常遇到数据更新了忘记修改更新时间,并且测试也很容易忽略测试更新时间。直到有一天排查生成环境数据问题,发现更新数据一直没有被更新。我们可以在框架中添加拦截器,拦截update语句更新 UpdateTime字段。如果字段存在,我们将其设置为当前时间和指定的更新用户(这里假设为 “admin”)。在 MyBatis 的配置文件中,需要注册这个拦截器。字段,可以使用 MyBatis 的拦截器机制来实现。操作时,拦截器会自动设置这两个字段的值。替换为实际的拦截器类的完整路径。语句,并进行相应的处理。

2024-02-28 12:44:18 665 2

原创 mybatis执行sql流程

通过加载配置文件、创建 SqlSessionFactory、创建 SqlSession、加载映射文件、执行 SQL 语句、数据库操作、结果映射、事务管理和关闭资源等步骤,MyBatis 提供了简洁而强大的方式来执行数据库操作。在执行 SQL 语句之前,MyBatis 会根据映射文件中的配置,将 SQL 语句和参数进行解析和绑定,生成最终的可执行的 SQL 语句。需要注意的是,MyBatis 还提供了许多高级特性和灵活的配置选项,如动态 SQL、缓存、拦截器等,可以根据具体的需求进行配置和使用。

2024-02-28 12:29:44 690

原创 spring mvc 执行流程

当涉及到构建 Web 应用程序时,Spring MVC 是一个受欢迎的框架,它提供了一种简化开发过程的方式。在本博客中,我们将探讨 Spring MVC 的执行流程,以帮助开发人员更好地理解该框架的工作原理。

2024-02-22 22:53:03 544 1

原创 【apollo在springboot中运行原理】

(监听apollo配置变化)配置中心我相信有一年开发经验的程序员都听过吧,有三年开发经验的程序100%都使用过配置中心配置吧。apollo做为常用的配置中心,你知道它的原理吗?你知道它是怎么集成到springboot的吗?本篇文章带你了解其原理,让你也能够自定义组件。分析apollo在Springboot启动的哪个环节被集成初始化的,以及跟了同步远程配置的逻辑,初始化时同步一次,定时同步,长轮询监听配置是否发生变化,发生变化又通知程序进行同步。并且同步后也会发布一个事件,放开发者去监听配置变化。

2024-01-24 00:01:12 696 1

原创 B树和B+树的区别

2.B树和B+数据的区别也有以上原因,B树的每个节点不仅仅存键值还要存数据,这样一来每个页16k的空间就存的节点比B+树的节点要少,这样就增加了io读取次数,所以B+树只有叶子节点存数据,这样16k一页的空间能存更多的索引节点,减少io遍历次数同时也降低了树的高度。4.上面说的叶子节点存储数据的值的聚簇索引,每个表的主键用的索引,叶子节点才会存数据,其他索引称为二级索引叶子节点存的主键的值。如果表没有主键,sql也会隐式的创建一个主键索引。3.B+树的叶子节点有顺序指针适合范围查询,排序操作。

2024-01-13 22:57:01 463 1

原创 【mybatisplus使用示例】

本篇博客将介绍MyBatis-Plus的使用,包括基本配置、实体类映射、通用CRUD操作、条件查询、分页查询等内容

2024-01-12 23:49:38 595 2

原创 程序员兼职网站

其实还有一个网站我觉得是比较靠谱的,我在这上面接过项目,就是boss上面。现如今boss上面招兼职开发的比以前多了好多。大家可以去boss搜索兼职岗位。

2024-01-11 15:41:48 1324

原创 springboot常用扩展点

springboot常用的扩展点。Spring Boot提供了一些扩展点,使开发人员可以根据自己的需求轻松地扩展和定制Spring Boot的行为。本篇博客将介绍几个常用的Spring Boot扩展点,并提供相应的代码示例。

2024-01-10 22:06:18 1499 1

原创 历时4小时的原型评审会

本次评审的项目属于政务类管理系统。具体业务肯定就不能透露了,按照正常流程执行话,我预计评审时间在1.5h。这次却达到了惊人的4小时,本篇文章简单陈诉一下个人主观上总结的问题,同时也希望自己的总结能够给位同学的思考及帮助。产品原型问题:为了提高操作数据录入效率,操作极其复杂,某些功能开发都难以理解。对于一个TOG管理系统,在满足需求的同时,产品界面统一简洁、操作方便 是非常重要的,因为公职人员群体年龄基本都是35+的偏多,所以在产品的设计上一定要考虑操作简单以及又容错性。

2024-01-09 17:49:36 437 2

原创 java开发必须了解的工具类之HuTool

今天给大家介绍一下平时开发中经常用到的工具类HuTool。Hutool是一个Java工具类库,提供了丰富的工具方法和功能,帮助开发者简化日常Java开发中的常见任务。

2024-01-07 22:53:03 1141 1

原创 【在没有去捕捉异常的代码里面,没有报错日志,程序就真的没有报错吗】

log4j:WARN No appenders could be found for logger (com.alibaba.dubbo.common.logger.LoggerFactory).

2024-01-05 23:30:54 879 2

原创 【springboot配置文件加载源码分析】

发布事件进行一系列的处理,监听处理器,调用接口处理环境加载配置,关键的接口实现是类去处理,最后是读取我们本地资源,根据不同的配置文件找到对应的去加载我们的properties,yaml 得到PropertySource,然后最后经过层层的封装,最后还是会放到environment中问题遗留:配置文件优先级、远程配置如何加载的源码体现,后面再补充。

2024-01-03 17:17:15 1153 2

原创 【Spring Boot配置文件简介】

简单介绍一下spring boot的配置文件吧,主要介绍一下配置文件的优先级以及配置文件的使用,后面我会写一篇关于配置文件的源码分析文章,今天就先给大家热一下身,自己今天也摸一下鱼,嘿嘿!!!Spring Boot会自动加载默认的配置文件。对于properties文件,Spring Boot会默认加载文件;对于YAML文件,Spring Boot会默认加载或文件。这些文件可以放置在classpath下的/config目录或者项目根目录下。Spring Boot支持基于不同环境的配置文件。通过使用。

2024-01-01 22:20:52 626

原创 spring-session-data-redis升级之坑

因为某些组件低版本存在漏洞问题,本次对项目的springboot版本从1.x升级到了2.x,因为其他相关的中间件也随着一起升级,在升级最后发现项目用户信息无法获取到了。

2023-12-28 14:54:51 1173 2

原创 【springboot 事件发布机制源码浅析】

事件发布机制在Spring Boot框架中扮演着重要的角色,它是实现模块解耦、扩展和定制以及自动化配置的关键机制之一。通过事件发布机制,开发者可以实现高度可扩展和可定制的应用程序,并更好地利用Spring Boot框架的各种特性和功能。文章主要包含两个部分,一个是如何使用springboot的事件发布,另一个就是分析其运行原理。事件发布机制也是使用了观察者模式来实现的,如果你没了解过观察者模式建议先了解一下观察者模式自定义实现类,实现ApplicationEvent类/*** 获取事件属性。

2023-12-27 15:51:54 916 1

原创 线程池核心参数配置及动态调节

在实际生产中我们用线程池的难点很多时候实在配置核心参数时,因为很多时候我们也无法预计生产环境的一个使用情况,可能和我们预估情况有所差别,这时候可能我们就会去动态的去调整我们的核心参数。下面还是先简单介绍一下核心参数,再提供一个动态修改参数的demo。

2023-12-26 15:21:15 1511 4

原创 线程池入门使用篇

通过以上不同的方法,可以根据任务的特性和需求选择合适的方式来提交任务给线程池执行。:当线程池中的线程数已达到最大线程数且任务队列已满时,线程池会根据配置的拒绝策略来处理新的任务。通过重复利用已创建的线程,线程池减少了线程创建和销毁的开销,提高了系统的并发效率。:非核心线程的空闲存活时间,当线程池中的线程数超过核心线程数时,空闲的非核心线程在经过一段时间后会被回收。:线程池的核心线程数,即线程池中保持活动状态的最小线程数。:线程池的最大线程数,即线程池中允许存在的最大线程数。时,新的任务会被放入任务队列中。

2023-12-20 15:30:05 770 1

原创 使用 Spring 的 StopWatch 实现代码性能监控

StopWatch 是 Spring 框架中的一个工具类,用于测量代码块的执行时间。StopWatch 可以精确地测量代码块的执行时间,比是并提供了方便的方法来记录和输出执行时间的信息。使用 Spring 的 StopWatch 工具类可以方便地测量代码块的执行时间,从而实现代码性能监控。本文介绍了 StopWatch 的基本用法,并通过示例演示了如何在项目中使用 StopWatch。这样又少些一点代码了,代码又变高级了。

2023-12-12 14:11:30 673

原创 java JDK 11的新特性

java JDK 11的新特性

2023-12-11 23:19:48 2432 1

原创 方法不会覆盖或实现超类型的方法

当你在Java中遇到"方法不会覆盖或实现超类型的方法"的错误时,通常是因为你的方法签名(包括方法名称、参数列表和返回类型)与父类或接口中的方法签名不匹配。在Java中,实现接口或继承父类时,子类或实现类必须覆盖(重写)父类或接口中定义的方法,并且方法签名必须完全一致。返回类型不匹配:子类或实现类中的方法的返回类型必须与父类或接口中定义的方法的返回类型相同。方法名称不匹配:子类或实现类中的方法名称必须与父类或接口中定义的方法名称完全一致。估计上面这些情况大家都不会犯,出现。

2023-12-07 14:59:12 3553 1

空空如也

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

TA关注的人

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