<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[鹏鹏2077]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/pengjun_ge</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; pengjun_ge]]></copyright><item><title><![CDATA[2025年回顾]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/156617263</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/156617263</guid><author>pengjun_ge</author><pubDate>Mon, 05 Jan 2026 22:26:21 +0800</pubDate><description><![CDATA[每天三点一线并没有突出的点，只有每日公司和出租屋，个人身体的管理懈怠状态： 出差居多，通过出差的这些日子也是体会到了工作上有哪些不一样，个人体验就是和客户近距离沟通需求、了解客户真实的想法以及如何和客户去沟通这件事，在4月份以后更换了一份工作，从原来铁路相关的业务改为换了近两年热火朝天的低空领域的业务。目前个人对于这份工作的环境很满意：在自考方面的并没有去参加考试，当时在出差，而且上半年的考试因为天气原因还给提供了退费操作。我也没有准备考试的事情，属于是深得我心了。。。]]></description><category></category></item><item><title><![CDATA[springboot项目改war包启动方式，出现filter注册问题]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/148995479</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/148995479</guid><author>pengjun_ge</author><pubDate>Sun, 29 Jun 2025 11:46:26 +0800</pubDate><description><![CDATA[暂时标题记录，后期更新补充上去，如果有需要的私信或者评论催促一下，我会更新，最近太懒了。]]></description><category></category></item><item><title><![CDATA[Springboot项目-服务重启]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/144777714</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/144777714</guid><author>pengjun_ge</author><pubDate>Fri, 27 Dec 2024 21:25:12 +0800</pubDate><description><![CDATA[由于项目中一个服务要去爬一个第三方的数据，而这个数据获取每次都要用到session这些信息，每次一个星期左右就需要从重启一次服务来重新获取，所以就需要用到重启的功能。]]></description><category></category></item><item><title><![CDATA[日常开发记录分享-SQL中的partition分区功能使用]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/140673797</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/140673797</guid><author>pengjun_ge</author><pubDate>Wed, 24 Jul 2024 22:36:05 +0800</pubDate><description><![CDATA[- 创建分区表-- 插入数据-- 查询数据-- 删除分区中的数据-- 添加新分区-- 删除分区-- 检查分区信息目前先整理这么多，以后有深入学习使用了再继续！！！]]></description><category></category></item><item><title><![CDATA[日常开发记录分享——C#控件ToolTip实现分栏显示内容]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/140646785</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/140646785</guid><author>pengjun_ge</author><pubDate>Tue, 23 Jul 2024 22:09:35 +0800</pubDate><description><![CDATA[下面是使用的方式，先在我们窗体中创建一个自定义的Tooltip对象，具体使用就是先设置SetContent方法将要显示的内容传递进去。需要在鼠标浮动到指定位置后提示出详细的信息，一开始使用的tooltip实现，但是里面的内容效果并不理想，需要有条理性，于是就想到能不能将展示的东西分列。使用两个字符串数据接收通过字符串切割后的内容，然后通过在tooltip的draw事件绘制时将内容分为两次绘制。通过处理这个事件，可以自定义工具提示的外观和内容。类中扮演着重要的角色，用于自定义工具提示的显示和绘制。]]></description><category></category></item><item><title><![CDATA[帆软报表实现通过js查询数据库设置表格数据]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/138039263</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/138039263</guid><author>pengjun_ge</author><pubDate>Sun, 21 Apr 2024 17:54:19 +0800</pubDate><description><![CDATA[最近做的一直在做报表相关的需求，自己也是一边学一边做。有一个有意思的需求是在表格中某个单元格在编辑完以后其它的表格中的数据自动填充，当也是根据一定的规则与数据来源才能填充的。先来点基础概念，就是帆软给我们提供了这个编辑后的事件或者说是一些按钮事件。]]></description><category></category></item><item><title><![CDATA[帆软报表踩坑日记]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/137155766</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/137155766</guid><author>pengjun_ge</author><pubDate>Fri, 29 Mar 2024 20:49:20 +0800</pubDate><description><![CDATA[首先是表格中的扩展，就是当我们根据数据库查询数据然后放到表格上的时候使用需要表格做扩展，有很横向和纵向这两种方式。最近公司项目要是使用报表，公司使用的是帆软这个国产软件，自己也是学习使用，在使用的过程中记一下问题以及解决方式。通过设置单元格的扩展方向来决定数据要如何扩展，公司使用的是帆软8这个版本，比较老了。—先写到这，后期我继续补充。]]></description><category></category></item><item><title><![CDATA[Java集合为什么不能使用foreach删除元素]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/136051076</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/136051076</guid><author>pengjun_ge</author><pubDate>Tue, 06 Feb 2024 10:33:10 +0800</pubDate><description><![CDATA[相信各位程序猿在开发的过程中都用过foreach循环，简单快捷的遍历集合或者数组，但是在通过foreach进行集合操作的时候就不可以了，这是为什么？这里先把问题提出来，接着往下看。]]></description><category></category></item><item><title><![CDATA[redis布隆过滤器（Bloom）详细使用教程]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/136015116</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/136015116</guid><author>pengjun_ge</author><pubDate>Sat, 03 Feb 2024 21:00:46 +0800</pubDate><description><![CDATA[的过滤器，这个过滤器的配置都是一些基础的配置，比如初始容量是100 错误率是0.01也就是百分之一的错误率，这个过滤明显不能满足我们的需要因为过滤器的工作原理就是通过多个哈希函数对key进行计算然后记录下来，那么容量就决定了在计算的过程中发生碰撞的概率大小了，所以我们在使用的时候一定要去手动创建过滤器以确保满足自己的需要。它以较小的空间占用和高效的查询时间著称。解释一下：bf.add 是安装布隆过滤器后才可以使用的命令，这是添加一个key的命令，user是过滤器的名字，而tese就是我们要去添加的key。]]></description><category></category></item><item><title><![CDATA[spring-data-redis自定义实现看门狗机制]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/135976041</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/135976041</guid><author>pengjun_ge</author><pubDate>Fri, 02 Feb 2024 09:27:46 +0800</pubDate><description><![CDATA[项目中使用redis分布式锁解决了点赞和楼层排序得问题，所以这里就对这个redis得分布式锁进行了学习，一般使用得是redission提供得分布式锁解决得这个问题，但是知其然更要知其所以然，所以自己就去找了一些资料以及也实践了一下就此记录分享一下。
配置redis连接以及基础配置

在Spring Boot的配置类中创建一个RedisTemplate的Bean:
实现redis分布式锁工具类

这个类是一个用于实现分布式锁的工具类，主要提供了以下功能： 方法：定时检查并更新 Redis 锁的过期时间。该方法]]></description><category></category></item><item><title><![CDATA[【Java】Java JSR303应用解决数据校验问题，解放双手]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/135816024</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/135816024</guid><author>pengjun_ge</author><pubDate>Wed, 24 Jan 2024 17:24:24 +0800</pubDate><description><![CDATA[在实体类上标注校验注解的时候，可以给groups属性进行赋值，然后在需要校验的controller类的方法中的实体类前加上@Validated注解，先附上代码再细细说明。这里id和sort这两个字段添加了注解，当在AddGroup分组下的id才会生效，而在UpdateGroup分组下只有sort的校验会生效。当我调用test1方法时对数据进行校验字段只有id会生效，而当我调用test2方法时对数据进行校验字段只有sort生效，可以看一下效果。这两个接口的作用就是仅用于标记，不需要有任何的方法声明。]]></description><category></category></item><item><title><![CDATA[MySQL中的行锁、临建锁、间隙锁和表锁中的意向锁]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/135785072</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/135785072</guid><author>pengjun_ge</author><pubDate>Wed, 24 Jan 2024 09:35:38 +0800</pubDate><description><![CDATA[通过临建锁可以解决幻读的问题。每个数据行上的非唯一索引列上都会存在一把临键锁，当某个事务持有该数据行的临键锁时，会锁住一段左开右闭区间的数据。需要强调的一点是，InnoDB 中行级锁是基于索引实现的，临键锁只与非唯一索引列有关，在唯一索引列（包括主键列）上不存在临键锁。可以看到将5–11这些数据都锁住了，这种情况下其它的事务想要去在这个1到11的id区间内做数据修改是会被阻塞的，知道我们将事务提交或者回滚将锁释放才行。锁和页锁，行级锁的粒度更小，因此在处理高并发事务时，能提供更好的并发性能和更少的。]]></description><category></category></item><item><title><![CDATA[JUC——8锁问题]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/133149540</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/133149540</guid><author>pengjun_ge</author><pubDate>Tue, 16 Jan 2024 11:17:57 +0800</pubDate><description><![CDATA[当关键字用于方法或代码块时，它可以用来实现对象级别的锁和类级别的锁。当用于非静态方法时，锁对象是调用该方法的实例对象。即每个对象实例都有自己的锁。当用于代码块时，锁对象可以是任意的Java对象。通常情况下，我们使用某个共享资源作为锁对象。无论是方法级别的锁还是代码块级别的锁，同一时间只能有一个线程获得锁并执行同步代码，其他线程需要等待锁释放。当用于静态方法时，锁对象是当前方法所属的类对象（Class对象）。类级别锁是针对整个类的所有对象实例生效的，不同实例之间共享这个锁。]]></description><category></category></item><item><title><![CDATA[Linux Docker安装]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/132840115</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/132840115</guid><author>pengjun_ge</author><pubDate>Tue, 16 Jan 2024 10:36:35 +0800</pubDate><description><![CDATA[编写 Dockerfile 文件，定义构建过程和容器配置。执行构建命令，例如：docker build -t 镜像名:版本 .其中，表示 Dockerfile 文件所在的目录。]]></description><category></category></item><item><title><![CDATA[项目应用多数据源动态切换（动态切换数据库连接）]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/134380144</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/134380144</guid><author>pengjun_ge</author><pubDate>Mon, 13 Nov 2023 20:47:11 +0800</pubDate><description><![CDATA[最近公司的权限项目要实现多租户的功能，于是就要做数据隔离以确保每个租户的数据的安全性，但是项目中也要动态的提供能够添加租户和删除租户的功能，这就需要动态的添加数据源（数据库连接地址。。），于是就去找了找相关的资料，今天就整理总结一下如何实现这个功能。]]></description><category></category></item><item><title><![CDATA[spring boot+redis整合基础入门]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/132864751</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/132864751</guid><author>pengjun_ge</author><pubDate>Wed, 13 Sep 2023 22:14:55 +0800</pubDate><description><![CDATA[最近项目中有用到redis进行一些数据的缓存，于是就想写一篇springboot集成redis的基础入门，也是给自己留一个可查看的地方，时刻能够提醒自己吧，后续应该会写一下进阶的redis的使用对于redis的简单使用springboot已经帮助我们做了集成，给我们封装了很多的api，只要借助提供的api就可以快速入门，但是到入土还需要一些时间。]]></description><category></category></item><item><title><![CDATA[redis安装部署]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/132841016</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/132841016</guid><author>pengjun_ge</author><pubDate>Tue, 12 Sep 2023 21:49:01 +0800</pubDate><description><![CDATA[命令，如果系统中已经安装了 C++ 编译器，则会显示 C++ 编译器的版本信息。如果未找到该命令，说明系统中没有安装 C++ 编译器。命令，如果系统中已经安装了 make 工具，则会显示 make 工具的版本信息。如果未找到该命令，说明系统中没有安装 make 工具。查看进程确保服务启动正常，redis的服务端口默认是6379，记得安装完成后服务器的端口要开发才行，不然项目连接不上。命令，如果系统已经安装了 GCC，则会显示 GCC 的版本信息。如果未找到该命令，说明系统中没有安装 GCC。]]></description><category></category></item><item><title><![CDATA[Spring-Cloud GateWay+Vue 跨域方案汇总]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/132808411</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/132808411</guid><author>pengjun_ge</author><pubDate>Tue, 12 Sep 2023 11:58:37 +0800</pubDate><description><![CDATA[在开发Spring Cloud和Vue的项目时，涉及到前后端分离的情况下，跨域成为一个常见的问题。本文将介绍跨域问题的背景，并提供了一些解决方案。跨域（Cross-Origin Resource Sharing，CORS）是一种浏览器的安全机制，用于限制从一个源（域、协议或端口）加载的Web页面上的资源如何与来自其他源的资源进行交互。当一个 Web 应用程序尝试从一个源加载来自不同源的资源时，浏览器将执行跨域检查。跨域限制的目的是保护用户隐私和安全，防止恶意网站通过跨域请求来获取用户的敏感信息。]]></description><category></category></item><item><title><![CDATA[编程要搞明白的东西（二）]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/132782922</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/132782922</guid><author>pengjun_ge</author><pubDate>Sat, 09 Sep 2023 22:39:30 +0800</pubDate><description><![CDATA[一直在学习设计模式和面向对象，对于这个过程中发现，一直少不了封装继承多态这些东西，于是就总结一下。面向对象编程(Object-Oriented Programming, OOP)是一种常用的编程范式，它将程序设计问题分解成对象，通过对象之间的交互来解决问题。在面向对象编程中，将现实世界中的实体抽象为对象，每个对象都有自己的状态和行为。面向对象编程的基本概念包括封装、继承和多态。其中，封装指的是将数据和方法封装在对象中，隐藏实现细节，并提供公共接口与外部交互。]]></description><category></category></item><item><title><![CDATA[@Autowired和@Resource]]></title><link>https://blog.youkuaiyun.com/pengjun_ge/article/details/132782388</link><guid>https://blog.youkuaiyun.com/pengjun_ge/article/details/132782388</guid><author>pengjun_ge</author><pubDate>Sat, 09 Sep 2023 21:57:11 +0800</pubDate><description><![CDATA[Autowired和@Resource是Java Spring框架中用于依赖注入的注解。本文将介绍它们的定义、使用方式以及区别，帮助读者正确使用这两个注解。@Autowired是一个Spring特有的注解，用于自动装配Bean。它可以标记在字段、构造方法、Setter方法或者普通方法上，告诉Spring容器需要自动注入相关的依赖。@Qualifier注解是Spring框架提供的用于解决依赖注入歧义性的注解。]]></description><category></category></item></channel></rss>