草庐IT

【Spring Boot】Starter机制的使用及案例

一、引言1、什么是SpringBootStarter        SpringBoot中的starter是一种非常重要的机制(自动化配置),能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置。starter让我们摆脱了各种依赖库的处理,需要配置各种信息的困扰。        SpringBoot会自动通过classpath路径下的类发现需要的Bean,并注册进IOC容器。SpringBoot提供了针对日常企业应用研发各种场景的spring-boot-starter依赖模块。

Spring Boot学习篇(十)

SpringBoot学习篇(十)shiro安全框架使用篇(二)——登录实例(密码以密文方式存储,不含记住密码)1.模拟注册时,生成密文到数据库中1.1在zlz包下创建util包,并在下面创建SHAUtil01类(初始里面无方法)和SHAUtil02类,其目录结构如下所示1.2两种生成密文的方式1.2.1自己指定盐a核心代码publicstaticStringshaPassword(StringoldPwd,Stringsalt){returnnewSimpleHash("sha-256",oldPwd,salt,100).toString();}b完整代码packagecom.zlz.util

运行 Spring Boot 有哪几种方式?

目录一、打包用命令或者放到容器中运行二、用Maven插件运行三、用 Gradle插件运行四、直接执行main方法运行 一、打包用命令或者放到容器中运行通过打包和放到容器中运行SpringBoot项目有以下几种方式:打包为Jar文件:使用Maven或Gradle等构建工具,执行打包命令将SpringBoot项目打包为可执行的Jar文件。在命令行中使用以下命令:mvnpackage//使用Maven打包gradlebuild//使用Gradle打包打包完成后,可以在target或build目录下找到生成的Jar文件。然后使用以下命令运行项目:java-jaryour-project.jar打包为W

【SpringBoot】Spring Boot 单体应用升级 Spring Cloud 微服务

SpringCloud是在SpringBoot之上构建的一套微服务生态体系,包括服务发现、配置中心、限流降级、分布式事务、异步消息等,因此通过增加依赖、注解等简单的四步即可完成SpringBoot应用到SpringCloud升级。SpringBoot应用升级为SpringCloudCloudNative以下是应用升级SpringCloud的完整步骤。第一步:添加SpringCloud依赖首先,为应用添加SpringCloud与SpringCloudAlibaba依赖。注意根据当前应用SpringBoot版本选择合适的SpringCloud版本,具体参见版本映射表[1]。​​​​​​2022.0

【实践篇】4.7 Spring Boot+ Redis执行lua脚本的5种方式

SpringBoot+redis执行lua脚本示例文章目录SpringBoot+redis执行lua脚本示例Redis从入门到精通系列文章0.前言1.基础介绍2.步骤2.1.引入依赖1.使用Jedis作为Redis客户端:2.使用Lettuce作为Redis客户端:2.2.配置文件使用Jedis作为Redis客户端的配置文件(`application.properties`):使用Lettuce作为Redis客户端的配置文件(`application.properties`):2.3.使用示例1.RedisTemplate.execute(RedisScriptscript,Listkeys,

Spring Boot 3.2 + CRaC = 王炸!

原文:https://foojay.io/today/springboot-3-2-crac/前段时间发布了Spring6.1和SpringBoot3.2,它们都完全支持CRaC(检查点协调恢复)。如果你想了解有关CRaC的更多信息,请随时阅读此处:https://docs.azul.com/core/crac/crac-introductionCRaC是一个OpenJDK项目,可以“快照”正在运行的JVM(Java虚拟机)并将其状态(包括你的应用程序)存储到磁盘。然后,在另一个时间点,你可以将JVM从保存的检查点恢复到内存中。这样,我们就可以启动应用程序、预热它并创建检查点。从保存的检查点恢

Spring boot启动流程-解决循环依赖

循环依赖,指的是两个bean之间相互依赖,形成了一个循环。目前使用的spring版本中,在启动时默认关闭了循环依赖。假设代码中两个bean相互使用@Autowired注解进行自动装配,启动时会报错如下:Relyinguponcircularreferencesisdiscouragedandtheyareprohibitedbydefault.Updateyourapplicationtoremovethedependencycyclebetweenbeans.Asalastresort,itmaybepossibletobreakthecycleautomaticallybysettings

Spring Boot 3.2.0 Tomcat虚拟线程初体验 (部分装配解析)

写在前面springboot3已经提供了对虚拟线程的支持。虚拟线程和平台线程主要区别在于,虚拟线程在运行周期内不依赖操作系统线程:它们与硬件脱钩,因此被称为“虚拟”。这种解耦是由JVM提供的抽象层赋予的。虚拟线程的运行成本远低于平台线程。消耗的内存要少得多。这就是为什么可以创建数百万个虚拟线程而不会出现内存不足的问题,而标准平台(或内核)线程只能创建数百个。虚拟线程会优先使用JVM提供,如果不能使用JVM提供,则考虑使用由平台线程支持的“虚拟线程”,相关源代码参考java.lang.ThreadBuilders#newVirtualThread版本要求springboot3.2.0jdk21p

为何内存不够用?微服务改造启动多个Spring Boot的陷阱与解决方案

在生产环境中我们会遇到一些问题,此文主要记录并复盘一下当时项目中的实际问题及解决过程。背景简述最初系统上线后都比较正常风平浪静的。在系统运行了一段时间后,业务量上升后,生产上发现java应用内存占用过高,服务器总共64G,发现每个SpringBoot占用近12G的内存,我们项目采用微服务架构,有多个springboot应用。一下子内存就不够用了,springboot出现假死了。由于当时生产没有截图,我用本机模拟类似的情况。可以看到内存基本被使用完了,为什么Java程序会占用这么大内存呢?解决步骤step1:jps查看进程ID或通过topstep2:jmap-heap进程ID可以看到Java应用

Maven打包失败--Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:no found...

1、问题还原,无论怎样操作,打包都是失败Failedtoexecutegoalorg.springframework.boot:spring-boot-maven-plugin:2.3.4.RELEASE:repackage(repackage)onprojectguigu-common:Executionrepackageofgoalorg.springframework.boot:spring-boot-maven-plugin:2.3.4.RELEASE:repackagefailed:Unabletofindmainclass->[Help1][ERROR] 2、这个问题,相信不少搬砖