SpringBoot
文章平均质量分 82
SpringBoot
一枚码仔
Talk is cheap. Show me the code.
展开
-
深入SpringBoot:Apollo配置中心的集成与实现
Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。原创 2024-09-13 15:13:36 · 1067 阅读 · 0 评论 -
Redisson 实现分布式锁
对于大多数的场景而言,使用 Redisson 的普通锁就可以了,如果项目对分布式锁的安全性要求很高,推荐使用基于 Raft 或 Paxos 算法的 etcd 或 ZooKeeper,他们在设计时充分考虑了分布式环境下的一致性和可靠性问题,提供了比 RedLock 更为健壮的解决方案。我们可以将一个长时间执行的任务拆分为多个独立的较短的小任务,每个步骤都有自己独立的分布式锁,这样就可以减少锁定资源的时间,同时确保每个阶段都能在适当的时间内完成。公平锁与 JUC 中的公平锁一致,遵循先到先得的原则。原创 2024-08-06 15:01:23 · 884 阅读 · 0 评论 -
MyBatis 如何通过拦截器修改 SQL
假如我们想实现多租户,或者在某些 SQL 后面自动拼接查询条件。在开发过程中大部分场景可能都是一个查询写一个 SQL 去处理,我们如果想修改最终 SQL 可以通过修改各个 mapper.xml 中的 SQL 来处理。但实际过程中我们可能穿插着 ORM 和 SQL 的混合使用,隐藏在代码中不容易被发现,还有假如项目中有很多很多的 SQL 我们不可能一个一个的去修改解决。这个时候我们就需要通过 mybatis 拦截 SQL 并且最终修改 SQL。实现Interceptor接口,并写相关逻辑。原创 2024-08-03 15:19:57 · 716 阅读 · 0 评论 -
Spring面试资料大全
Spring是一个轻量级Java开发框架,最早有创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。Spring最根本的使命是解决企业级应用开发的复杂性,即简化Java开发。Spring可以做很多事情,它为企业级开发提供给了丰富的功能,但是这些功能的底层都依赖于它的两个核心特性,也就是。原创 2024-08-02 11:06:24 · 526 阅读 · 0 评论 -
深入SpringBoot:Redis缓存的集成与实现
日常生活中经常会听到缓存这个词,那到底什么是缓存呢?其实缓存就是数据交换的缓冲区(称作Cache),是临时存贮数据(使用频繁的数据)的地方。当用户查询数据,首先在缓存中寻找,如果找到了则直接执行;如果找不到则去数据库中查找。缓存的本质就是用空间换时间,牺牲数据的实时性,以服务器内存中的数据暂时代替从数据库读取最新的数据,减少数据库IO,减轻服务器压力,减少网络延迟,加快页面打开速度。原创 2024-08-02 11:03:21 · 414 阅读 · 0 评论 -
MyBatis注解实现like模糊查询
spring boot 2.0.5在使用mybatis进行注解模糊查询时遇到一些低级的错误,现记录下来错误示例:“select * from user where name like “”#{name}"”这个错误报Parameter index out of range (1 > number of parameters, which is 0);经过百度查询其它的得到这条sql语句,虽然能查出来,但是是全部数据都查出来了“select * from user where name lik原创 2022-02-13 23:02:45 · 3939 阅读 · 0 评论 -
MyBatis 注解实现动态SQL
在 Mybatis 中,使用注解可以很方便的进行sql操作,但很多动态 SQL 都是由 xml 配置实现的。而随着 SpringBoot的逐渐发展,越来越多的配置由配置文件转成注解的形式。其中包括动态 SQL 。Mybatis 的注解中,使用太过长的sql语句看起来很不美观。@Select("SELECT title from book_tbl where id = #{id}")如果想要在 mapper 中进行非必要关键字的查询时就需要使用动态 SQL,与 xml 配置不同的是,@Select.原创 2022-03-12 10:49:15 · 7317 阅读 · 1 评论 -
Lombok常用注解
在编程过程中会发现Java代码有时会显的冗长,Lombok提供了一系列注解用以在后台生成模板代码,将其从你的类中删除,从而有助于保持代码整洁,更易于阅读和维护。下面将介绍Lombok常用注解,以向你展示如何使用lombok生产更清晰、更简洁的代码。Lombok常用注解1. @NonNull2. 更简洁的数据类3.1 @Getter 和 @Setter3.2 @AllArgsConstructor3.3 @ToString3.4 @EqualsAndHashCode3.5 @Data4. 使用 @Buidl原创 2022-02-26 18:22:10 · 4637 阅读 · 0 评论 -
SpringBoot热启动
在开发过程中,当写完一个功能我们需要运行应用程序测试,可能这个小功能中存在多个小bug,我们需要改正后重启服务器,这无形之中拖慢了开发的速度增加了开发时间,SpringBoot提供了spring-boot-devtools,使我们在更改应用和配置文件的时候,自动重启应用!打开pom.xml文件添加依赖 org.springframework.boot spring-boot-devtools true 只要classpath下的文件有变动,它就会自动重启。这...原创 2022-02-18 19:42:30 · 4557 阅读 · 0 评论 -
深入SpringBoot:项目优化与JVM调优
在开发中项目调优是必须得熟练掌握的事情。在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行。原创 2024-07-31 16:07:31 · 355 阅读 · 0 评论 -
Spring、SpringMVC和SpringBoot的关系
一、概念1、Spring Spring是一个开源容器框架,可以接管web层,业务层,dao层,持久层的组件,并且可以配置各种bean,和维护bean与bean之间的关系。其核心就是控制反转(IOC),和面向切面(AOP),简单的说就是一个分层的轻量级开源框架。 2、SpringMVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。SpringMVC是一种web层mvc框架,用于替代servlet(处理|响应请求,获取表单参数,表单校原创 2022-02-22 14:08:29 · 9567 阅读 · 0 评论 -
深入SpringBoot:JWT的集成与使用
JSON Web Token(JWT)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSON对象安全传输信息。这些信息可以通过数字签名进行验证和信任。可以使用秘密(使用HMAC算法)或使用RSA的公钥/私钥对对JWT进行签名。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,该token也可直接被用于认证,也可被加密。是目前最流行的跨域认证解决方案。原创 2022-04-05 18:53:47 · 2599 阅读 · 1 评论 -
深入SpringBoot:Redis缓存的集成与实现
SpringBoot整合Redis缓存一、缓存概念知识1、是什么缓存2、缓存的优缺点3、为什么使用缓存二、Redis概念知识1、Redis简介2、为什么用Redis作为缓存3、Redis 支持的数据类型4、Redis缓存常见问题1. 缓存穿透2. 缓存击穿3. 缓存雪崩4. 缓存一致性三、SpringBoot整合redis1、使用redis缓存1. 引入redis依赖2. 修改项目启动类3. 配置redis数据库4. 创建redis配置类5. 操作redis2、使用 SpringCache 的注解1. 注解原创 2022-02-16 20:10:30 · 13016 阅读 · 13 评论 -
如何将SpringBoot项目打包为JAR文件
SpringBoot项目打包成jar一、为什么打包二、如何打包(1)使用IDEA进行打包(2)使用maven进行打包三、运行jar包四、注意一、为什么打包项目开发完毕后会将前后端应用打包,然后部署到服务器上运行。Java Web应用在Spring Boot之前,通常是打包成war包,结合Tomcat来完成部署。而对于SpringBoot,官方的建议是将Spring Boot应用打包成一个fat jar(SpringBoot默认打包方式),即项目的依赖jar包也会被包含在Spring Boot项目的ja原创 2022-02-18 12:48:09 · 59559 阅读 · 2 评论 -
深入SpringBoot:Bean的作用域
*singleton(单例)**是Spring 中 Bean默认的作用域。若一个bean的作用域是单例的,那么每个IoC容器只会对该bean创建一个实例对象。所有对这个bean的依赖,以及获取这个bean的代码,拿到的都是同一个bean实例。Spring容器在创建这个bean后,会将它缓存在容器中(放在一个ConcurrentHashMap中)。Spring中的bean不是线程安全的,所以只有在我们只关注bean能够提供的功能,而不在意它的状态时,才应该使用这个作用域。原创 2024-07-31 16:04:36 · 706 阅读 · 0 评论 -
深入SpringBoot:统一接口返回和全局异常处理
现在大多数web项目基本都是前后端分离模式,这种模式会涉及到一个前后端对接问题,所以一套完善且规范的接口是非常有必要的,不仅能够提高对接效率,也可以让我的代码看起来更加简洁优雅。本文将解决如何在基于SpringBoot前后端分离开发模式下返回统一的标准格式以及处理全局异常。SpringBoot统一接口返回和全局异常处理一、为什么要返回统一格式1.1 返回字符串1.2 返回实体类对象1.3 返回异常二、定义返回标准格式2.1 定义返回格式2.2 定义返回对象2.3 定义状态码2.4 统一返回格式三、高级.原创 2022-03-12 11:59:04 · 9177 阅读 · 2 评论 -
深入SpringBoot:SpringCache的集成与使用
说起SpringCache您可能不清楚。但您绝对清楚事务。一般使用事务分为编程式和声明式。而我们平时使用缓存,正是编程式,即对缓存的操作与业务代码耦合。那么是否存在一种类似于事务的技术,完成声明式的缓存操作呢?而SpringCahe便可以提供透明化的缓存操作,即用户可以使用注解的方式。灵活的操纵缓存。原创 2024-08-01 12:52:04 · 328 阅读 · 0 评论 -
深入SpringBoot:AOP面向切面编程
面向切面编程(AOP,Aspect-Oriented Programming)作为一种重要的编程范式,提供了一种优雅的解决方案来处理跨越多个模块的关注点(如日志、事务管理、安全性等)。通过将这些关注点从业务逻辑中分离出来,AOP不仅提高了代码的可重用性和可维护性,还使得开发者能够更集中地关注核心业务功能。本文将深入探讨AOP的基本概念、核心原理以及在实际应用中的优势。原创 2024-08-01 12:50:43 · 436 阅读 · 0 评论 -
深入SpringBoot:Validator的参数校验与自定义分组校验
在实际开发中对于需要校验的字段都需要设置对应的业务提示,即message属性。@Data@Length(min = 6,max = 12,message = "appId长度必须位于6到12之间")@NotBlank(message = "名字为必填项")@Email(message = "请填写正确的邮箱地址")@NotEmpty(message = "级别不能为空")注解功能可以为null,如果不为null的话必须为false。原创 2024-08-01 12:48:38 · 951 阅读 · 0 评论 -
PO/DO/VO/DTO/BO/POJO概念与区别
一、介绍二、区别2.1 VO和DTO的区别与应用VO和DTO的区别VO与DTO的应用2.2 BO和DTO的区别三、相关的代码规范命名风格OOP 规约持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。通过 DAO 层向上传输数据源对象。原创 2024-07-31 13:59:54 · 962 阅读 · 0 评论