SpringBoot
文章平均质量分 62
springboot
igxia
专注Java领域深耕,发誓要做架构师!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring Boot 2.x 与 Spring Boot 3.x 的核心区别详解
Spring Boot 3.0对比2.x升级指南 Spring Boot 3.0要求Java 17+,主要升级包括: 技术栈:Spring 6.x、Jakarta EE 9+命名空间(javax→jakarta)、Tomcat 10+/Jetty 11 新特性:原生支持GraalVM镜像(启动速度提升80%)、深度集成JDK 17特性(Record类等) 破坏性变更:Servlet/JPA包路径变更、安全配置重构、部分属性废弃 迁移建议:逐步升级(2.7→3.0→3.2)、全局替换javax为jakarta原创 2025-05-29 11:16:53 · 1089 阅读 · 0 评论 -
RESTful风格请求方式详解与示例
摘要:本文以图书管理系统为例,详细介绍了RESTful API的五种请求方式(GET/POST/PUT/PATCH/DELETE)的具体实现。通过Spring Boot框架展示了每种请求的控制器代码示例,包括URI设计、请求参数处理和响应状态码设置。重点说明了GET查询(全部/单个)、POST新增、PUT全量更新、PATCH局部更新和DELETE删除的典型应用场景及注意事项,并提供了请求示例和响应格式。文章包含完整的环境准备步骤(依赖引入、实体类定义)和业务逻辑实现,可作为RESTful API开发的实践参原创 2025-05-29 10:41:34 · 735 阅读 · 0 评论 -
详解 Spring 中的 @Resource 与 @Autowired:区别与应用场景
摘要:本文深入对比了Spring框架中@Resource和@Autowired两个依赖注入注解的核心区别。@Autowired是Spring原生注解,默认按类型匹配,需配合@Qualifier处理多实现类场景;@Resource是Java标准注解,默认按名称匹配并回退到类型匹配。二者在来源、注入逻辑、灵活性等方面存在显著差异:@Autowired支持构造函数注入和可选依赖,而@Resource更适用于名称明确匹配的场景。建议在纯Spring项目中优先使用@Autowired,需要兼容性时选用@Resourc原创 2025-05-28 14:45:02 · 1467 阅读 · 0 评论 -
Java实现定时任务
本文介绍了Java中四种定时任务实现方式:1)Timer和TimerTask,简单但单线程执行易阻塞;2)ScheduledExecutorService,基于线程池支持多任务并发;3)Spring的@Scheduled注解,配置简便但需Spring框架支持;4)Quartz框架,功能强大适合复杂调度场景但需额外依赖。每种方式各有特点,可根据项目需求选择合适的定时任务方案。原创 2025-05-27 15:25:03 · 293 阅读 · 0 评论 -
若依框架(6)快速修改若依框架的包名等
若依框架原本都是以ruoyi-xxx 等命名的,但是在我们自己编写项目时,有需要去修改这些命名,但是由于框架内部存在大量命名,手动命名就非常的繁琐,因此我们在这介绍一个工具去帮助我们快速的修改命名若依原本的目录结构和命名如下。原创 2025-03-12 20:29:06 · 2289 阅读 · 0 评论 -
若依框架(5)定时任务
若依为定时任务功能提供方便友好的web界面,实现动态管理定时任务。我们平常写定时任务,都是通过硬编码的形式去编写定时任务的。如下面代码每间隔5s执行一次打印@component")System.out.println("定时任务开始执行: " + new Date());通过硬编码的形式写的定时任务虽然没有问题,但是会有不好维护的情况,每一次需求变更,都需要找到代码位置去进行修改。这时我们就可以通过ruoyi的功能去实现动态定时任务。原创 2025-03-11 21:42:05 · 1129 阅读 · 0 评论 -
若依框架(4)若依权限控制--框架控制
若依系统内置了强大的权限控制系统,这个权限控制系统,主要是为了,让不同角色的用户,对各个模块有不同的访问权限例如图书管理系统中,普通管理员能够访问,“图书管理”页面,而超级管理员才能够访问”用户管理“页面。原创 2025-03-11 21:27:17 · 1169 阅读 · 0 评论 -
Hibernate下HQL与SQL查询
缺点:如果实体存在多个关联对象,转换构建BO的时候,如果用到关联对象的属性,而关联对象的ID又不一样,那么会对每个关联对象去执行一下Proxy对象的取值,产生一个SQL执行,更悲剧的是,对象自身执行了一个批量的查询,然后又会循环去根据ID再查询一下自身,最最不建议的方式。,相应的需要有几个参数赋值。但是通过SQL的查询,如果想得到BO的返回值,需要对执行的结果addScalar,转换为对应的字段,如果类型不匹配,还需要在addScalar时,指定对应的字段类型。原创 2024-03-15 20:51:06 · 1281 阅读 · 0 评论 -
Windows系统下的Minio的安装和运行
最后还需要创建一个buckets,用于存储文件,进行下述图片操作,然后直接输入bucket名即可。注:以上上传代码参考ruoyi,如有文件缺少情况,可以自行前往若依官网查看。通过上述图片步骤,即可下载 minio.exe 和 mc.exe两个文件。(2)将minio.exe 和 mc.exe文件移入 bin 目录当中。(1)在任意位置创建以下三个文件夹,例如我在E:\Minio下创建的。(3)直接在存放minio.exe文件的目录下启动cmd窗口’进行下载(这里给的网址是Minio中文官网)原创 2024-03-13 14:08:49 · 2198 阅读 · 0 评论 -
如何使用Java来发送qq邮箱邮件
通过上述代码,只能发送一个简单的字符,但是qq邮箱也是支持html解析的,我们可以在其中设置html代码,让我们的邮件“精致”一点,只需要更改emails.setMsg()中的参数即可。(如果大家项目没有引入Redis,也可以用session代替,因为我这里是一整个业务流程,后续还需要对比验证码,所以需要用到换成,大家测试的话也可以去掉)点击开启后会跳转到另一个页面,同样找到“POP3/IMAP/SMTP/Exchange/CardDAV 服务”,然后点击生成授权码。进入设置页面后,再点击账号。原创 2024-03-15 10:03:24 · 3170 阅读 · 0 评论 -
java、mysql多表查询 JOIN ON 语句
本文章案例是基于,SpringBoot + MyBatisPlus开发的项目我这里给出两个案例:(1)一个字段关联(2)多个字段关联### 二、一个字段关联现有一个Post类,数据库对应为tb_post,其中有一个user_id字段,对应sys_user表中的user_id字段,现需要将user_id对应的user_name查询出来和其他字段一起返回给前端。1、新建DTO类我们根据POST类,创建一个PostDTO类,PostDTO类中,复制Post的所有代码,只新增一行private原创 2023-07-31 17:19:06 · 786 阅读 · 0 评论 -
若依框架(3)最新前后端分离3.8.6版本集成mybatis-plus
若依的前后端分离版是采用的springboot + mybatis 进行开发的,有的同学习惯使用mybatis-plus了,就想将mubatis更换为mybatis-plus。那么我们话不多说,直接开始。原创 2023-07-31 10:20:11 · 2693 阅读 · 9 评论 -
Required URI template variable ‘productId‘ for method parameter type Integer is not present
Required URI template variable 'productId' for method parameter type Integer is not present原创 2023-07-10 14:02:16 · 1080 阅读 · 0 评论 -
若依框架(2)使用若依框架进行二次开发
细心的同学应该发现我这里并没有复制Controller文件,因为Controller文件并不在这个模块里面,而是在ruoyi-admin模块里面,重复刚才的动作,将Controller文件复制到ruoyi-admin的web/system下。因为就想我们普通的vue项目,你没有在路由里面设置对应的路径,你也访问不了那个组件。我这里还真报错了,后端改了各个报错的地方完成启动,但是前端我忘了又有需要改import路径的地方,在我们复制进views文件夹里面两个文件夹的index.view里面,我们找到其。原创 2023-06-13 13:45:39 · 50416 阅读 · 2 评论 -
nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to localhost:6379
上面截取的是idea控制台启动报错的信息,我截取了部分片段,即每段报错信息的开头,通过报错信息,我们能很直观的看到是因为无法连接Redis而抛出的异常。在项目启动时,我们需要Redis的配置和配置文件里面的配置保持一直。或者在Redis中设置与后端配置文件相同的密码。但是我的Redis是用的本地的Redis,而且我的Redis已经开启,那为什么会报错呢。但是我的Redis服务端并没有设置密码。通过以下命令查看Redis的密码。我去看了一下配置文件,我的配置文件里面是给Redis设置了密码的。原创 2023-06-13 10:19:13 · 3240 阅读 · 2 评论 -
若依-分页查询失效
list是进行了分页操作的,如果我本函数的返回值就是getDataTable(list),那么我的分页查询出错不了一点。在使用若依框架开发管理后台的时候,由于业务逻辑的需要,自己定义了一个DTO类,将与数据库对应的entity类进行封装。在进行二次封装之后发现返回的数据没有进行分页,并且总数也只为10(数据库总共90多条数据,每页数据数量为10),也就是只有一页的数据。我的代码是带有startPage的,也就是startPage开启了我下面这行代码的分页。自己重新封装之后调用,前端可以正常分页。原创 2023-06-08 13:05:30 · 3591 阅读 · 0 评论 -
SpringBoot项目启动banner修改--佛祖保佑banner
在我们运行SpringBoot项目是,会出现一个Spring的标志,该标志即为本项目的默认Banner。这里我们准备的Banner.txt文件里面,就是我们展示的banner,是一种文字绘图方式形成的图片。现在我看这个Spring很不爽,看多了不想看它怎么办,能不能把它换掉,答案是可以的。2、将Banner.txt文件放入项目的resource包里面。我们将banner.txt文件复制到resource包里面。然后启动项目,就会发现我们的启动图标已经改变了。1、准备一个Banner.txt文件。原创 2023-06-02 17:10:36 · 1108 阅读 · 0 评论 -
若依框架(一)使用若依框架从0到1快速搭建springboot + vue 项目
在项目启动之前,我们现需要对配置文件进行修改,并打开特定应用,这里我们先打开ruoyi-admin模块下的application-druid.yml,将数据库链接地址和用户名密码更改为我们自己的。(我这里是已经进行二次开发的页面),未进行二次开发的登录账号和密码应该是admin和admin123,并且表单最上面展示的是若依管理系统。点击之后进入到gitee,点击 “克隆/下载”,选择下载方式,可以实用git命令进行git克隆,也可以直接选择下载zip,这里推荐新手就下载zip就可以了。原创 2023-06-02 16:52:15 · 12562 阅读 · 6 评论 -
SpringCloud-Eureka注册中心
- 服务消费者该如何获取提供者的地址信息? - 服务提供者启动时向eureka注册自己的信息 - eureka保存这些信息 - 消费者根据服务名称向eureka拉去提供者信息- 如果有多个服务提供者,消费者该如何选择? - 服务消费者利用负载均衡算法,从服务列表中挑选一个- 消费者如何得知服务提供者的健康状态? - 服务提供者会每隔30s向EurekaServer发送心跳请求,报告健康状态 - eureka会更新记录服务列表信息,心跳不正常会被删除 - 消费者就可以拉取到最原创 2023-03-15 19:03:48 · 142 阅读 · 0 评论 -
java: 无法访问org.springframework.boot.SpringApplication解决办法
此报错的绝大部分情况为pom.xml文件中出现错误,一般都是在创建SpringBoot项目的时候,选择了最新的SpringBoot版本,一般最新版本总会伴随着问题,我们只需要将pom.xml文件中的SpringBoot版本更换为老版本即可解决此问题。将此处改为自己较为常用的老版本。报错信息类似下面代码。原创 2023-02-18 13:13:16 · 5567 阅读 · 1 评论 -
Maven的安装与配置环境变量
返回到settings.xml文件,在刚才的位置新增一行代码,路径是刚才创建的maven_repository文件夹的路径。3、将压缩文件解压到自己想要的目录(注:目录不能带中文,如果带中文,会导致一些错误)如果不修改着一些的话,在做项目的时候刷新maven下载新坐标的时候会很慢。在settings.xml文件的profiles标签中添加以下代码。2、新建系统变量 MAVEN_HOME,并指向刚才解压的文件。点击新建,然后输入%MAVEN_HOME%\bin。2、找到需要下载的文件。然后一连串的点击确定。原创 2023-02-18 12:54:26 · 6650 阅读 · 0 评论 -
springDataRedis快速入门
SpringDataRedis中提供了RedisTemplate工具类,其中封装了各种对Redis的操作。SpringData是Spring中数据操作的模块,包含对各种数据库的集成,其中对Redis的集成模块就叫做SpringDataRedis,官网地址:https://spring.io/projects/spring-data-redis。3.注入RedisTemplate。原创 2022-12-21 20:30:09 · 453 阅读 · 2 评论 -
数据库优化-缓存穿透
缓存穿透是指客户端请求的数据在缓存和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。常见的解决方案有两种。原创 2022-12-21 19:26:27 · 192 阅读 · 0 评论 -
数据库优化-redis缓存更新的三种策略
该策略不用自己维护,利用redis的内存淘汰机制,当内存不足时自动淘汰部分数据。下次查询时自动更新缓存。一致性:差维护成本:无。原创 2022-12-21 18:49:17 · 2401 阅读 · 1 评论 -
MyBatisPlus代码生成器(CodeGenerator)
代码生成器是mybatisplus提供的一项功能,能直接根据一个数据库里面的所以表进行直接生成相应的entity、mapper、service、serviceImpl、controller类。原创 2022-11-19 22:28:47 · 4169 阅读 · 2 评论 -
vue+springboot前后端分离项目跨域问题一行代码解决
例如:前端设置端口为8001,后端设置端口为8002,这时想要在前端向后端发送ajax等请求则会报错。在controller类上加一个@CrossOrigin注解该问题即可解决。原创 2022-11-19 13:04:45 · 283 阅读 · 0 评论 -
使用宝塔Linux面板上传java SpringBoot后端项目至云服务器
下面选择高级模式和开机自启动然后点击确认即可看到状态为已启动状态即springboot项目上传成功。但是这是我们要访问该项目后端地址是访问不到的。(不信可以试试,嘿嘿)原创 2022-10-26 13:49:29 · 1759 阅读 · 4 评论 -
Spring Cache
SpringCache介绍Spring cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。Spring Cache提供了一层抽象,底层可以切换不同的cache实现。具体就是通过CacheManager接口来统一不同的缓存技术。CacheManager是Spring提供的各种缓存技术抽象接口。针对不同的缓存技术需要实现不同的CacheManager描述使用EhCache作为缓存技术使用Google的GuavaCache作为缓存技术。原创 2022-10-17 13:25:53 · 121 阅读 · 0 评论
分享