王旭阳个人博客

WXY

SpringBoot

Java知识库网站收集整理 置顶

Java知识库网站收集整理

本文将分享一些本人收藏的高质量Java知识库网站,帮助开发者更好地学习和提升Java技能。如果你有其他优秀的Java学习网站推荐,欢迎在评论区分享!
9256
0
44
2024-07-05
SpringBoot 常用扩展接口

SpringBoot 常用扩展接口

在Spring Boot应用开发中,框架通过丰富的扩展点设计,为开发者提供了灵活的应用定制能力。这些扩展接口不仅能够无缝融入应用生命周期的各个阶段(如启动、运行、关闭),还能针对业务场景实现深度定制,显著提升代码的可维护性和可扩展性。无论是增强核心功能、统一处理全局逻辑,还是优化特定场景下的性能,S
100
0
1
2025-03-14
Spring事务失效的常见陷阱与解决方案

Spring事务失效的常见陷阱与解决方案

本篇通过一道面试题和一些实践,来拆解几个Spring事务的常见坑点。 原理 Spring事务的原理是:通过AOP切面的方式实现的,也就是通过代理模式去实现事务增强。 具体过程是:对包含@Transactional注解的方法进行拦截,然后重写,重新在方法里加入异常回滚的逻辑。而且,每个线程都是独立管理自己的事务,相互隔离。 原理简单,使用起来也简单,也就是在方法上打上@Transactional注解,然后事务就正常生效了。也很少有人去验证异常情况下是否能真正的回滚。 Spring事务让我熟悉的地方是哪哪看起来都简单,让我陌生的地方使用时的变种较多,有时候莫名其妙的不生效。
255
1
1
2024-10-10
Maven报错failed with MalformedInputException: Input length = 1 -> [Help 1]

Maven报错failed with MalformedInputException: Input length = 1 -> [Help 1]

摘要总结: 电脑重装系统后,开发环境需要重新配置。在打包项目时遇到Maven处理资源文件时发生编码问题,具体表现为错误信息中的MalformedInputException,这可能是由于文件编码与Maven预期的编码不匹配造成的。项目使用的是Springboot 2.5.7和maven-resources-plugin:3.3.1。针对这个问题,有几种解决方法:方法一,通过配置maven-resources-plugin插件来忽略特定后缀文件的转码,包括.cer文件;方法二,将maven-resources-plugin插件版本修改为3.1.0;方法三, 降低Maven版本至3.9以下。这些解决方案都有相应的参考链接和示例。
651
0
4
2024-03-26
Linux下启动Jar包很慢

Linux下启动Jar包很慢

从您给出的描述来看,问题是在生产环境中启动时,程序尝试获取本地主机名时非常慢。解决此问题的一种可能的方法是修改服务器的网络配置,特别是hosts文件。这是一种常见的方法,用于加速获取本地主机名的过程。具体的操作步骤如下: 首先,你需要在Linux服务器上的hosts文件中添加一些条目。这个文件位于`/etc/hosts`目录下。你可以使用命令 `sudo vim /etc/hosts` 来编辑这个文件。在文件中添加以下内容: ```makefile 127.0.0.1 localhost myhostname ::1 localhost myhostname ``` 注意将`myhostname`替换为实际的服务器主机名或你想要设置的主机名。这是系统默认的主机名解析方式之一,当系统无法解析主机名时,会查找hosts文件。通过这种方式,系统可以更快地获取到本地主机名,避免程序等待网络超时的问题。更改完hosts文件后,再次尝试启动程序,查看问题是否得到解决。这个方法已经在许多类似的情况下成功解决了问题。同时参考给出的链接内容也是一种解决方案的参考来源。
199
0
4
2024-01-24
Linux下启动ruoyi项目报错: java.net.SocketException: 权限不够

Linux下启动ruoyi项目报错: java.net.SocketException: 权限不够

说明:Linux 系统,jdk8 ruoyiv4.7.7 启动项目报错 java.net.SocketException: 权限不够 控制台log
184
0
3
2023-10-11
SpringBoot配置文件的优先级

SpringBoot配置文件的优先级

Spring Boot配置文件的加载优先级总结如下: Spring Boot启动时,会按照特定的顺序扫描以下位置的application.properties或application.yml文件作为默认配置文件。这些位置按照优先级从高到低为: 1. file:./config/ 2. file:./ 3. classpath:/config/ 4. classpath:/ 所有位置的文件都会被加载,高优先级配置内容会覆盖低优先级配置内容。此外,Spring Boot还可以从其他位置加载配置,如命令行参数、Java系统属性、操作系统环境变量等。这些特殊指定的配置优先级高于通用配置,外部配置优先级高于内部配置,局部环境配置(带profile)优先级高于全局普适性配置。 如果需要改变全局配置文件的加载位置,可以通过配置spring.config.location来改变默认配置位置。项目打包后,也可以使用命令行参数的形式,在启动项目时指定配置文件的新位置。 总的来说,Spring Boot的配置加载机制非常灵活,可以满足不同场景下的需求。官方文档是了解这些配置的最好途径。
579
0
7
2023-08-30
Springboot整合Flyway自动管理数据库变更

Springboot整合Flyway自动管理数据库变更

针对提供的若依项目(v3.8.4)中关于Flyway的配置和使用,以下是该项目的摘要总结: --- **若依项目(v3.8.4)中的Flyway配置与使用摘要**: 1. **依赖管理配置**: * 在`pom.xml`(ruoyi)中通过`<dependencyManagement>`引入了Flyway的核心依赖。 * 在`pom.xml`(ruoyi-admin)中也添加了相应的Flyway依赖。 2. **SQL脚本存放位置**: * 在`resources`目录下新建`db/migration`目录,用于存放SQL迁移脚本。 * 版本1.0.0中的SQL脚本用于初始化,而版本1.0.1中的SQL脚本用于测试,例如创建`flyway_test`表并插入一条数据。 3. **Flyway配置**: * 在`application.yml`中配置了Flyway的启用、编码、基准迁移等设置,并配置了数据库连接信息。 4. **解决项目启动时的问题**: * 项目中有两个地方使用了`@PostConstruct`注解,导致在Flyway的数据库配置加载之前执行,可能会报错。 * 解决方案是找到这两个配置类(`SysDictTypeServiceImpl`和`SysConfigServiceImpl`),注释掉初始化方法。然后,在若依system模块中新建`RuntimeConfig`类,实现`ApplicationListener<ContextRefreshedEvent>`接口,将初始化操作移至此处,以改变加载时机。 5. **Maven插件配置**: * 在ruoyi的`pom.xml`中增加了MySQL依赖和Flyway Maven插件的配置。 * 通过该插件,可以使用Maven命令来进行数据库迁移操作。 **总结**:若依项目通过引入Flyway进行了数据库版本控制,确保了不同环境下数据库结构的一致性。通过调整某些初始化的加载时机,解决了与Flyway初始化顺序相关的问题。同时,利用Maven插件方便地进行数据库迁移操作。
836
0
12
2022-12-09
SpringBoot内置工具类

SpringBoot内置工具类

断言断言是一个逻辑判断,用于检查不应该发生的情况Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查// 要求参数 object 必须为非空(Not Null),否则抛
392
0
2
2022-10-11
SpringBoot自动装配原理探索

SpringBoot自动装配原理探索

环境JDK 17,Springboot 2.7 在了解Spring boot自动装配原理之前,需要了解两个很重要的知识点Java SPI机制和Spring的Import注解,把这两个重要的点理解清楚之后就很容易理解Spring boot的自动装配原理了,并且能很好的应用到实际项目中。
772
0
10
2022-06-15