
Spring
文章平均质量分 72
码农UP2U
这个作者很懒,什么都没留下…
展开
-
利用 AOP 记录接口日志
那这样的话,我们可以在每个调用接口地址的前后使用输出日志的方式来记录,就可以得到调用接口的入参和接口的返回值,从而有利于我们以后的调试了。我们可以使用 SLF4J 或者 LogBack 等日志框架,在调用接口时来输出一下入参和返回值,大致方法是在调用接口前调用 logger.info 输出入参,然后调用接口后再次调用 logger.info 输出返回值。在我们的后端项目中有很多要调用第三方接口的地方,而调用接口就免不了会因为传递给接口的参数有问题报错,或者对接口的返回值处理不全导致报错或后续的流程有问题。原创 2022-09-06 21:24:52 · 1528 阅读 · 2 评论 -
Spring 中事务传播行为
事务传播行为是指方法之间的调用事务策略的问题,在理解数据库的事务时,我们一般时希望事务能够同时成功或同时失败。但是在写代码的时候并非如此。如果在进行批处理时,其中的一条处理失败了,我们只希望失败的这条记录发生回滚,而不是因为一条处理失败使得所有之前的处理都回滚,这样就不可取了。在 Spring 中传播行为的类型有 7 种,分别是,Propagation.REQUIRED、Propagation.REQUIRES_NEW、Propagation.SUPPORTS、Propagation.NOT_SUPPO原创 2021-12-16 16:56:42 · 584 阅读 · 0 评论 -
@Transaction注解配置项笔记
Spring 中有编程式事务和声明式事务,其中声明式事务时一种约定型的事务,其保证在代码发生异常时可以进行回滚,从而保证数据的一致性。声明式事务可以使用 @Transaction 注解来进行配置,其配置项有以下几项,分别是:value、transactionManager、isolation、propagation、timeout、readOnly、rollbackFor、roolbackForClassName、noRollbackFor 和 noRollbackForClassName。其中,最原创 2021-12-14 21:04:04 · 969 阅读 · 0 评论 -
Spring 拦截器流程及多个拦截器的顺序
拦截器是 Spring MVC 中的组件,它可以在进入请求方法前做一些操作,也可以在请求方法后和渲染视图后做一些事情。拦截器的定义 SpringMVC 的拦截器只需要实现 HandlerInterceptor 接口,并进行配置即可。HandlerInterceptor 接口的定义如下:public interface HandlerInterceptor { default boolean preHandle(HttpServletRequest r...原创 2021-11-28 19:56:14 · 2000 阅读 · 0 评论 -
给接口添加缓存
早期文章 Spring Cloud Gateway 的简单搭建 服务注册、发现和远程调用 让 MongoDB 的 CRUD 有 JPA 的味道 使用 MongoTemplate 对 MongoDB 进行 CRUD 省内存的 Excel 导入导出库还是得了解下它... 后端程序员的 VUE 超简单入门笔记 后端程序员的 ES6 超简单入门笔记 看完即可上手 MyBatis-Plus 奇怪的函数调用 打造后台登录页面原创 2021-11-02 10:34:37 · 3166 阅读 · 8 评论 -
服务注册、发现和远程调用
本篇文章介绍如何完成一个简单的服务注册、发现和远程调用的 Demo,通过该 Demo 来学习和了解关于 Spring Cloud 相关的知识。项目结构 创建一个 Maven 的聚合项目,使用 SpringBoot 作为其父项目,然后通过在其下添加子模块来构建一个简单的微服务的项目。创建一个 service_user 服务 在 Maven 项目下创建一个 Module 作为子模块,在项目的 POM 文件中加入 web 依赖,依赖如下:...原创 2021-10-27 11:05:50 · 522 阅读 · 0 评论 -
让 MongoDB 的 CRUD 有 JPA 的味道
上篇文章介绍了使用 MongoTemplate 对 MongoDB 进行 CRUD 的操作,那么接着上篇文章来继续介绍使用 MongoRepository 对 MongoDB 的 CRUD 的操作。 需要回顾上面文章的,可以点击该连接进行查看该链接使用 MongoTemplate 对 MongoDB 进行 CRUD 来看一下 MongoDB 官网对 MongoDB 的简单描述,截图如下所示。 上篇文章中,使用 MongoTempla...原创 2021-10-12 22:46:13 · 375 阅读 · 0 评论 -
使用 MongoTemplate 对 MongoDB 进行 CRUD
MongoDB 是一个基于分布式文件存储的数据库,由 C++ 编写,它是可扩展的高性能数据存储解决方案。来看一下 MongoDB 官网对于 MongoDB 的简单介绍。一、MongoDB 使用简介 在 MongoDB 中,它的一些名词与关系型数据库的名词并不相同,我引入一张图供大家进行参考,如下图所示。 在 MongoDB 中,集合就相当于关系型数据库中表的概念,但是它和表又不一样。因为同一个集合下可以存储不同的数据,且集合与集合之间不存...原创 2021-09-26 20:44:44 · 989 阅读 · 0 评论 -
手撸简单验证码
验证机制是所有登录或关键业务都会用到的功能,验证机制也是多种多样,比如简单的验证码,语言验证码,短信验证码,还有一些根据行为进行验证的验证机制。这次我们来实现一个简单的验证码。输出验证码的类 输出验证码是一个绘图的过程,绘图的过程大部分语言都是类似的,比如准备一个画布、准备一个画笔、然后在画布上绘制图形、输出内容等步骤。只是不同的语言具体调用的 API 不同而已。 直接上代码,代码如下:public class ImageCode{ ...原创 2021-03-05 19:52:41 · 398 阅读 · 3 评论 -
SpringBoot项目中写单元测试
SpringBoot项目中写单元测试的方法是:1、引入相关依赖 org.springframework.boot spring-boot-starter-test 2.3.3.RELEASE test2、在测试类上增加注解@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTest3、在测试方法上增加@Test...原创 2020-09-13 19:02:17 · 528 阅读 · 0 评论 -
Druid 的整合
Java 中常用的数据库连接池有 C3P0、Hikari、Druid 等。数据库的连接池,对于整个项目的性能还是很关键的,因此所有的 Java 项目当中都会使用数据库连接池。在 Java 的各种数据库连接池中,Druid 是阿里巴巴推出的开源的、号称最好用数据库连接池,它提供了强大的监控和扩展功能。Druid 在 github 的地址如下:https://github.com/alibaba/druid/wiki/常见问题 本次来整理一下关于 Spring 和 D...原创 2020-10-09 21:10:18 · 478 阅读 · 0 评论 -
JWT库生成Token的使用与原理
现在开发前后端分离的系统或者开发 APP 的项目时,在验证用户是否登录时都会使用 Token 的方式,使用 Token 也是为系统后续可以进行拆分的第一步。 Token 的生成规则可以任意,只要最终可以通过 Token 去匹配到合适的用户即可。不过我们可以使用 JWT 类库来帮助我们生成 Token。JWT 是 Json Web Token 的意思,是一种通过 Json 格式在 Web 中进行传递的 Token。JWT 的使用 先来看看关于 JW...原创 2021-02-03 20:13:23 · 1361 阅读 · 1 评论 -
SpringBoot启动时执行任务
在 SpringBoot 项目中,main 方法调用了 SpringApplication.run 方法,在 SpringApplication.run 方法执行之前还可以执行一些启动任务。具体的方式是实现 ApplicationRunner 或者 CommandLineRunner 这两个接口。ApplicationRunner 和 CommandLineRunner 的区别 ApplicationRunner 和 CommandLineRunner 两个接口都...原创 2021-04-09 20:09:53 · 721 阅读 · 0 评论 -
AnnotationFormatError: Invalid default: public abstract java.lang.Class org.mybatis.spring.annotatio
启动 SpringBoot 项目的时候提示:AnnotationFormatError: Invalid default: public abstract java.lang.Class org.mybatis.spring.annotation.MapperScan.factoryBean()原因是项目中使用了 MyBatis-Plus 而没有引入 MyBatis 的原因,只要增加其依赖即可。<dependency> <groupId>org.mybati原创 2021-03-14 15:55:35 · 1394 阅读 · 0 评论 -
修改SpringBoot项目的Parent
通过 SpringBoot 创建的项目,默认都会使用 SpringBoot 作为 POM 文件的 parent。但是有些时候我们可能不想使用 SpringBoot 作为项目的 parent。这时候就需要修改 POM 文件来完成。默认的 POM 文件 默认创建完 SpringBoot 的项目后,parent 标签如下所示。<parent> <groupId>org.springframework.boot</groupId...原创 2021-03-10 20:51:54 · 900 阅读 · 0 评论