- 博客(113)
- 资源 (23)
- 收藏
- 关注
原创 java开发的七大设计原则
Java的七大设计原则,也称SOLID原则,包括单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖反转原则(DIP)、迪米特法则(LoD)和合成复用原则。是一组指导面向对象设计的基本规则。这些原则旨在提高代码的重用性、可读性、可扩展性和可靠性,实现高内聚、低耦合的程序设计。可以帮助开发者构建具有高内聚、低耦合的系统,从而提高代码的重用性、可读性、可扩展性和可靠性。
2026-03-13 13:32:54
363
原创 小龙虾(OpenClaw)本地安装部署教程
OpenClaw 是一个开源的 AI Agent 框架,它能够 24/7 不间断地在你的电脑上工作。与 ChatGPT 这类对话工具完全不同,OpenClaw 拥有“眼睛和手”:它可以控制浏览器、编写代码、阅读文件、执行命令,甚至在你睡觉时主动完成任务。核心特点🔒本地运行:数据完全在本地,隐私安全🤖模型无关:支持 Claude、GPT、DeepSeek、千问、本地Ollama模型等🔌Skills 生态:2800+ 社区技能插件,覆盖 DevOps、编程、自动化等场景📱。
2026-03-12 17:41:48
545
原创 Spring Security快速入门
实际开发的过程中,我们需要应用程序更加灵活,可以在SpringSecurity中创建自定义配置文件Java自定义配置用来管理用户信息,是UserDetailsService的一个实现,用来管理基于内存的用户信息。创建一个WebSecurityConfig文件:定义一个@Bean,类型是UserDetailsService,实现是InMemoryUserDetailsManager@EnableWebSecurity//Spring项目总需要添加此注解,SpringBoot项目中不需要@Bean。
2026-03-09 22:41:34
466
原创 SpringAI实战之结构化输出
我们正常使用的都是json结构,期望大模型返回json结构,然后由Spring AI 返回实体,这样就不需要我们再次转换就能直接使用,那么如何操作呢?
2026-03-09 18:04:19
104
原创 SpringAI实战之快速上手
支持OpenAI、Hugging Face等主流AI服务,轻松切换不同大模型(如GPT-4、Llama 2、Deepseek等):集成Pinecone、Chroma等向量数据库,支持语义搜索与相似度匹配:自动解析PDF、Markdown等文档,提取文本内容生成向量嵌入:内置对话历史管理,支持上下文感知的多轮对话:通过@Tool注解快速集成外部API(如天气查询、数据库操作):集成Timefold Solver解决资源调度等优化问题:提供指标监控(延迟、Token消耗)和日志追踪。
2026-03-09 18:00:21
285
原创 Flyway:轻松实现数据库版本自动化管理
引言:在微服务和敏捷开发时代,数据库结构的变更(如新增表、修改字段)必须与应用程序代码同步演进。手动执行 SQL 脚本不仅效率低下,还容易出错。Flyway作为一个轻量级的数据库迁移工具,能够完美解决这一问题。而通过其强大的自动配置能力,让集成 Flyway 变得异常简单。本文将手把手教你如何在 Spring Boot 项目中集成 Flyway,实现数据库迁移的自动化。
2026-03-06 10:50:54
446
原创 Docker部署Nacos
*MYSQL_SERVICE_HOST, MYSQL_SERVICE_PORT, MYSQL_SERVICE_USER, MYSQL_SERVICE_PASSWORD, MYSQL_SERVICE_DB_NAME:**MySQL 数据库连接配置。**NACOS_SERVERS:**指定集群中所有节点的地址和端口。**SPRING_DATASOURCE_PLATFORM=mysql:**指定使用 MySQL 数据库。**JVM_XMS, JVM_XMX, JVM_XMN:**JVM 内存配置。
2026-02-27 09:55:56
308
原创 java8-java17新特性总结
Lambda 表达式是一种匿名函数,允许将函数作为参数传递给方法,或者在集合操作中以更紧凑的方式编写代码。函数式接口是只有一个抽象方法的接口,可隐式转换为 Lambda 表达式。Java 8 提供了注解来显式说明某个接口是函数式接口。:传统方式使用匿名类,代码冗长;Lambda 表达式简化了代码结构,避免了匿名类的冗余代码。
2025-06-23 14:49:56
1077
原创 System类常用方法介绍
用途方法说明获取系统当前毫秒值public static long currentTimeMillis()获取当前系统时间与1970年01月01日00:00点之前的毫秒差值,我们可以用它来测试程序的执行时间结束正在运行的Java程序public staitc void exit(int status)参数传入一个数字即可。通常传入0记为正常状态,其它为异常状态。垃圾回收器public static void gc()用来运行JVM中的垃圾回收器,完成内存中垃圾的...
2021-11-17 17:35:32
828
转载 Mysql快速复习
https://blog.csdn.net/weixin_39757893/article/details/110587076
2021-11-04 17:09:40
419
原创 Spring 事务方法与非事务方法相互调用 @Transactional 注解失效分析
写这篇文章的初衷是因为在实用Spring事务的时候,我在A方法中调用了B方法和C方法,原意是想如果B方法中报错,则回滚B方法;如果C方法中异常,则只回滚C方法,B方法和C方法不会相互影响。于是我在B方法和C方法上加了@Transactional注解,A没有加。结果测试发现结果并非所想。于是便分析了一番,现将分析结果做个分享:1、spring事务的传播机制及原因分析要知道上面原因产生的原因,则首先得知道Spring事务的传播机制PROPAGATION_REQUIRED – 支持当前事务,如果当前没有事务
2021-11-04 10:51:17
5224
原创 Swagger中的注解对应的springdoc-openapi-ui中的注解
swagger是我们开发过程中非常常用的一个api 文档维护组织吗,为了前后端更好的交互,swagger早已经成为了大家的首选api 文档框架。但随着spring的发展与强大,spring也出了自己的api框架,但实用惯了swagger的用户,在切换过来后发现就不太会用了,其实springdoc本身已经集成并兼容了swagger,但对应的注解有所变化。下面我们就来看看swagger的注解在springdoc中的对应关系。springdoc的maven依赖 <dependency>
2021-10-28 17:39:10
5253
原创 修改mysql的root密码
登录mysql -u root如果忘记密码可执行mysqld --shared-memory --skip-grant-tables命令修改密码直接执行如下命令即可alter user ‘root’@‘localhost’ identified by ‘123456’;flush privileges;
2021-09-22 17:23:25
525
原创 Linux安装Redis
本人安装的时候各种出错,为了各位一次性安装成功,可以先执行一下操作redis编译报上面错误,一般是环境问题,执行下面操作可以解决:1、安装gcc套装:yum install cppyum install binutilsyum install glibcyum install glibc-kernheadersyum install glibc-commonyum install glibc-develyum install gccyum install make2、升级gccyum
2021-07-21 10:55:06
245
原创 springboot源码跟读解析
1.Spring Boot 的入口类@SpringBootApplicationpublic class StartupApplication { public static void main(String[] args) { SpringApplication.run(StartupApplication.class, args); }} /** *resourceLoader:资源加载器 *primarySources:加载的主要资源类
2021-04-26 17:18:08
270
翻译 JAVA 中的Optional类理解、学习与使用
Optional类是Java8新引进的一个主要用于解决的问题是臭名昭著的空指针异常(NullPointerException|)的一个类。本质上,这是一个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空。Optional 是 Java 实现函数式编程的强劲一步,并且帮助在范式中实现。但是 Optional 的意义显然不止于此。在 Java 8 之前,任何访问对象方法或属性的调用都可能导致 NullPointerException,如下面这段代码String isoco
2021-04-25 11:39:21
34100
原创 Spring Cloud Alibaba各个版本和Spring Cloud以及各个组件之间的关系一览
Spring Cloud Alibaba各个版本与Spring Cloud各个版本和Springboot各个版本对应关系Spring Cloud VersionSpring Cloud Alibaba VersionSpring Boot VersionSpring Cloud Hoxton.SR82.2.5.RELEASE2.3.2.RELEASESpring Cloud Greenwich.SR62.1.3.RELEASE2.1.13.RELEASESprin
2021-03-09 14:30:53
1559
2
原创 全网最全的搭建Kubernetes准备工作配置
Kubernetes的概念Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。由于Kubernetes中首尾字母中间有8个字母,所以Kubernetes也被叫做K8S。所以下文提到的K8S均指的是Kubernetes。为什么要使用?对于开发人员 1)、大大降低日志收集和操作时间 由于公司业务多,开发环境、测试环境、预生产环境和
2021-03-05 15:28:04
1334
1
原创 搭建Kubernetes的Dashboard
1、查看与k8s相对应的dashboard版本:k8s相对应的dashboard版本2、下载yaml文件并执行创建wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.yaml # 创建 podkubectl apply -f recommended.yaml#当镜像 ImagePullBackOff拉取不下来的时候 可配置本地镜像仓库 vim /etc.
2021-02-03 15:31:25
664
原创 Linux中ping IP时报错:Destination Host Unreachable,解决方案
最近再VM上创建了一个Contos7,但是发现可以ping通百度和物理主机,但是就是ping不同另外一台机子【ping不通百度和物理主机时,也可以尝试以下解决方案】,具体报错 Destination Host Unreachable从错误中可以看出错误是“主机不能到达”:出现次错误的原因一般有以下几种1、ping的ip不对或者未启动2、当前机子和ping的主机不在同一网段3、当前机子网关或DNS配置有问题前两种自行查看并解决,第三种解决方法如下1、在物理主机查看当前的DNS和网关:ipconf
2021-02-03 15:21:23
92013
7
原创 PS常用快捷键操作记录
PS的简单介绍Adobe Photoshop,简称“PS”,是由Adobe Systems开发和发行的图像处理软件。Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进行图片编辑工作。ps有很多功能,在图像、图形、文字、视频、出版等各方面都有涉及。Adobe支持Windows操作系统 、Android与Mac OS, 但Linux操作系统用户可以通过使用Wine来运行Photoshop。PS的功能及应用Photoshop的专长在于图像处理,而不是图形创作。图像
2020-12-26 09:44:03
441
原创 JAVA设计模式总结之代码学习23种设计模式
一、什么是设计模式设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应
2020-12-04 17:31:18
520
原创 为什么说springboot中约定优于配置?
首先说说什么是约定优于配置约定优于配置也称为按约定编程,是一种软件设计范式,旨在减少软件开发人员需做决定的数量,获得简单的好处,而又不失灵活性。在SpringBoot中,约定大于配置可以从以下两个方面来理解:1、开发人员仅需规定应用中不符合约定的部分2、在没有规定配置的地方,采用默认配置,以力求最简配置为核心思想总的来说,上面两条都遵循了推荐默认配置的思想。当存在特殊需求的时候,自定义配置即可。这样可以大大的减少配置工作,这就是所谓的“约定”。SpringBoot中有哪些约定呢?1、Maven
2020-10-13 21:46:38
2360
原创 将一个浮点数随机拆分成n个不小于m的浮点数
/** *将一个数拆分成任意几个不小于m数的和 * @param n 将要被拆分成的数量 * @param sum 要拆分的数 * @param m 最小的数 * @return */ public static List splitInteger(int n, double sum,double m) { //随机抽取n-1个小于sum的数 List<Double> list =...
2020-08-17 13:05:10
417
原创 复习一波HashMap底层实现原理解析
HashMap是JAVA中最常见的集合类框架,也是java语言中非常典型的数据结构,同时也是我们需要长我的数据结构,更重要的也是面试题必问之一。我们常见的有集合数据有三种结构:1、数组结构 2、链表结构 3、哈希表结构 下面我们来看看各自的数据结构的特点:1、数组结构: 存储区间连续、内存占用严重、空间复杂度大优点:随机读取和修改效率高,原因是数组是连续的(随机访问性强,查找速度块)缺点:插入和删除数据效率低,因插入数据,这个位置后面的数据在内存中都要往后移动,且大小固定不易动态扩展。
2020-08-17 09:56:09
12370
6
原创 sql中的类型对应java中的数据类型一览表
sql type—java type数据关系SQL Data TypeJAVA Data TypebigintBIGINTbinaryBINARYbitBITcharCHARdatetimeTIMESTAMPdecimalECIMALfloatFLOATimageLONGVARBINARYintINTEGERmoneyDECIMALncharCHARntextLONGVARCHARnumer
2020-08-13 09:52:56
3964
原创 Shiro中常见的过滤器
Shiro提供多个默认的过滤器,我们可以用这些过滤器来配置控制指定URL的权限,Shiro常见的过滤器如下:配置缩写对应的过滤器功能身份验证相关的anonAnonymousFilter指定url可以匿名访问authcFormAuthenticationFilter基于表单的拦截器;如“/**=authc”,如果没有登录会跳到相应的登录页面登录;主要属性:usernameParam:表单提交的用户名参数名( username); passwordParam:表单
2020-07-30 16:44:41
3889
原创 Idea连接oracle或mysql时Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezone‘
idea真的很好用,对于java开发者真的算是一个福利,自己以前也是个eclipse的追粉,但用了idea之后自己也算是爱不释手,再加上idea里面自带的database功能,也省去了开发人员操作数据库而需要在下载一个数据库客户端的麻烦(当然,database肯定没有专业的数据库客户端工具功能强大,但足以满足一般开发)~但之前最开始用idea自带的database连接数据库的时候,遇到了一个问题,填写完成之后,遇到一个如下错误针对上述错误,网上我看好多都是说进入mysql的dos命令窗口中执行如下命令即可
2020-07-29 17:37:54
391
原创 idea一些常用的快捷键汇总
动作快捷键说明Move Caret to Code Block EndCtrl+]诸如{}围起来的代码块,使用该快捷键可以快速跳转至代码块的结尾处Move Caret to Code Block StartCtrl+[同上,快速跳至代码块的开始出Complete Current StatementCtrl+Shift+Enter将输入的if、for、函数等等补上{}或者;使代码语句完整Start New LineShift+Enter在当前行的下方开始...
2020-07-29 12:52:03
266
原创 SpringData JPA自定义SQL时,将表名以参数的形式传入解决方案
最近有个需要就是分表的操作,就是事先不知道数据存在的表到底是那张表,需要根据配置文件或者参数解析之后才能确定到底是那张表。所以这就需要将表名实时的传入进入。要是之前的我们所使用的mybatis的话,其实这个问题很好解决,只需要将#换成$即可,但是由于我们现在用的是JPA,所以这个并不能直接操作。所以这块需要引入EntityManager类,具体操作如下:在repository包或者dao包下的实现类中注入EntityManager,并加上@PersistenceContext注解(注入的是实体管理器,执行
2020-07-24 15:30:16
5099
1
原创 java将某一个对象中的非空字段覆盖到另外一个对象中
当我们需要写一个对象的修改是,由于数据库中的某些字段的非空限制,所以每次需要将非空的字段和需要修改的字段传递过来,或者还需要先调用数据库,再将其需要修改的字段重新一个一个set设置。这样不是很方便,所以我们可以将传递过来的数据直接覆盖,这样不管前段传递几个字段都方便,只需要将要修改的字段和可以表明该条数据的唯一标识传递过来即可。具体公共方法如下: /** * 功能 : 只复制source对象的非空属性到target对象上 */ public static void cop
2020-07-22 18:16:14
2361
2
原创 关于mysql连接报错:Could not create connection to database server. Attempted reconnect 3 times. Giving up解决
今天重新安装了一下mysql,然后之前连接好好的,今天就报错了:报错信息具体是:Could not create connection to database server. Attempted reconnect 3 times. Giving up,网上有的说是jar包的问题,有的说是配置的问题,也有说别的。反正就是众说风云。但是发现都不对,也没有从根本上解决问题。最后去官网上面看了一下,从mysql6以后在url配置上面需要加入serverTimezone配置,于是我试着加了一下serverTimez
2020-07-20 13:57:16
11560
原创 关于Spring事务的概述解析
Spring事务是我们平时开发中经常会用到的一个技术,也是我们面试的时候经常会被问到的一个高频考点。。。下面就是楼主对Spring事务相关知识的意见解析,希望对你有所帮助。1、什么场景下需要用到事务,事务到底可以解决那些问题,初步理解事务理解事务之前,我们先说一个我们日常生活中经常遇到的一件事:ATM取钱。假如你去ATM取100元,大概会有两个步骤:1、输入密码,银行卡扣掉100元,然后ATM再出100元。这两个步骤是必须的。而且是要么都执行,要么都不执行。如果银行卡扣除了100元,但是ATM出钱失败
2020-05-26 18:10:42
368
原创 关于Mybatis中的一级缓存与二级缓存的深入浅出
再谈Mybatis一二级缓存之前,先说说缓存,合理使用缓存是优化中最常见的,将从数据库中查询出来的数据存放到缓存中,下次使用时就不必从数据库查询,而是直接从缓存中读取,避免频繁的操作数据库,减轻数据库压力,同时提高系统性能。一级缓存Mybatis一级缓存是SqlSession级别的缓存。在操作数据库时需要构造SqlSession对象,在对象中有一个数据结构用于存储缓存数据。不同的SqlSession之间的缓存数据去是互不影响的。也就是它只能作用在同一个SqlSession中,不同的SqlSession中
2020-05-26 15:34:54
464
原创 xshell无法连接到VMware虚拟机或者主机无法ping通本地虚拟机(ip地址配置)
我们在平时工作或者学习中,难免会在自己的电脑上安装一个虚拟机,但是许多时候安装完成之后,会发现却无法用Xshell链接我们所创建的虚拟机,有时候甚至我们自己的主机都无法ping通我们的虚拟机。下面楼主就将这个问题的解决方案加以分享,愿对你有用。1、打开虚拟机的终端输入 ip addr(查看本机ipCLEAR)查看有没有192.168.这类的ip地址,若没有,那么往下看,你的问题估计会得到解...
2020-05-08 09:11:41
3256
原创 git报错:The project you were looking for could not be found
git克隆时报错 The project you were looking for could not be found问题描述:git拉取报错:remote: The project you were looking for could not be found.fatal:repository …… not found原因分析:之前登陆过别人的git账号,记录下了认...
2019-12-31 17:23:11
1137
原创 安装软件出现错误处理:internal error2503/2502
之前突然间出现win10上面安装软件安装报错,报错码为2503/2504/2502,以上是因为用户权限不够,解决方案:进入任务管理器 > 详细信息 > 找到 Explorer.exe > 右击 结束任务.2. 在任务管理器的左上方> 单击 文件 选项 > 运行新任务 > 在弹出的对话框右下方的 浏览 中找到 C盘 System > Window...
2019-10-12 13:48:52
4056
1
原创 关于git拉取项目时,报RPC failed; curl 18 transfer closed with outstanding read data remaining错的解决方案
之前在从git远程库拉取项目的时候,出现了如上错误,因为拉取时间过长才报的错,所以猜测是内存或者项目过大导致的无法拉取,所以搜了搜,网上说是解决方案有三种,一种是增大缓存区;二是浅克隆,也就是说克隆的时候,先少克隆一些,比如只克隆每个文件只取最近一次提交,不是整个历史版本,三是换协议:具体解决方案如下:一,加大缓存区git config --global http.postBuffer 52...
2019-10-10 17:15:40
5667
原创 如何修改java和javac版本不一致或者java版本和环境变量中的不一致问题
之前开发过程中突然间遇到java和javac版本出现不一致的问题,如下图:如何解决此问题了:我们只需要删掉下图目录的中的三个exe执行文件即可。java版本和环境变量中的不一致问题解决方案和上面方式一样...
2019-09-23 18:13:23
4328
3
cn_project_professional_2016_X86_X64
2018-06-21
(亲测有效)"eclipse-jee-mars-R"版本32位和64位下载
2018-03-28
数据库转换工具 DB2DB V1.9.5(包含64位和32位)
2019-07-31
Spring-Boot中application配置文件的所有属性(包括官网的原版以及翻译后的中文版)
2018-07-09
SpringBoot的中文指南和中文文档压缩包(既包含中文,有包含英文)
2018-08-22
SolidConverter破解文件
2018-06-05
LayUi搭建的一套后台管理系统,包含echarts图形列表、ztree树等
2018-06-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅