随笔分类 - SpringBoot
摘要:一、stream流导致分页失效的问题 今天发现使用 PageHelper 进行分页时,分页失效了。查了下发现是这个原因,改了之后就正常了,记录一下。代码就不贴了,贴别人的。 1、问题场景:前端分页数据不对,始终只有 pageSize 10 条数据 2、业务代码 public ResultVo<Pag
阅读全文
摘要:一、SpringBoot 缓存原理探究 1、SpringCache 介绍 在SpringBoot中,数据的缓存管理存储依赖于Spring框架中cache相关的org.springframework.cache.Cache和org.springframework.cache.CacheManager缓
阅读全文
摘要:一、@Cacheable的作用 1、缓存使用步骤:@Cacheable 这个注解,用它就是为了使用缓存的。所以我们可以先说一下缓存的使用步骤: 1、开启基于注解的缓存,使用 @EnableCaching 标识在 SpringBoot 的主启动类上。 2、标注缓存注解即可 注:这里使用 @Cachea
阅读全文
摘要:Java自定义注解的简单介绍就不说了,这里主要说一下自定义注解 aop 切面的使用。 一、什么是AOP? 1、AOP为Aspect Oriented Programming的缩写,意为:面向切面编程。 AOP是一种编程范式,隶属于软工范畴,指导开发者如何组织程序结构。AOP最早由AOP联盟的组织提出
阅读全文
摘要:API开发中经常会遇到一些对请求数据进行验证的情况,这时候如果使用注解就有两个好处: 1、一是验证逻辑和业务逻辑分离,代码清晰 2、二是验证逻辑可以轻松复用,只需要在要验证的地方加上注解就可以 因此,我们在业务开发过程中经常遇到形形色色的注解(Java提供了一些基本的验证注解,比如 @NotNull
阅读全文
摘要:一、Java 使用 AES 步骤解析 AES是一种对称的加密算法,可基于相同的密钥进行加密和解密。Java采用AES算法进行加解密的逻辑大致如下:(1)生成/获取密钥;(2)加/解密。 (一)关于密钥步骤 1、生成密钥 密钥的生成是通过KeyGenerator来生成的。通过获取一个KeyGenera
阅读全文
摘要:一、问题背景 Java 后端使用了 PageHelper 分页插件来进行分页查询,但是发现有个方法分页不生效,总是返回的是全部数据。 后来查了相关文档找到了问题原因如下。 二、不分页的几种情况 1、版本过低的问题 问题:pagehelper没有效果,一直不能分页问题 解决方法:引用其他博主的博客的解
阅读全文
摘要:这个问题的起因是后端日志经常有一个报错:Error querying database. Cause: org.postgresql.util.PSQLException: ERROR: syntax error at or near "LIMIT"。 但是奇怪的是那个查询方法根本就没有 limit
阅读全文
摘要:前后端分离架构带来的好处一搜一大堆,这里主要讨论一下后端接口的安全问题。因为在分离的情况下,后端 api 是暴露在外网中的,常规的web项目无论如何前端都是要通过公网访问到后台api的,带来的隐患也有很多。比如: (1)接口公开,谁都可以访问; (2)数据请求的参数在传输过程被篡改; (3)接口被重
阅读全文
摘要:在项目中使用 @Async 注解,发现异步任务没生效,最后发现是线程池没配置或配置的有问题,所以准备研究下Java里的异步 在项目中,当访问其他人的接口较慢或者做耗时任务时,不想程序一直卡在耗时任务上,想程序能够并行执行,我们可以使用多线程来并行的处理任务,也可以使用spring提供的异步处理方式@
阅读全文
摘要:SpringBoot使用@scheduled定时执行任务的时候是在一个单线程中,如果有多个任务,其中一个任务执行时间过长,则有可能会导致其他后续任务被阻塞直到该任务执行完成,也就是会造成一些任务无法定时执行的错觉。无论@scheduled是用在一个类的多个方法还是用在多个类中的方法,默认都是单线程的
阅读全文
摘要:定时任务相当于闹钟,在什么时间做什么事情(执行什么命令/脚本)。 @EnableScheduling 在配置类上使用,开启计划任务的支持 —— 用于类上。 @Scheduled 来声明这是一个任务,包括cron、fixDelay、fixRate等类型 —— 用于方法上,需先开启计划任务的支持 一、如
阅读全文
摘要:@ResponseStatus注解是spring-web包中提供的一个注解,其主要作用就是为了改变HTTP响应的状态码,具有value、code、reason 三个属性,如下: 一、@ResponseStatus注解用法 @ResponseStatus注解有两种用法,一种是加载自定义异常类上,一种是
阅读全文
摘要:一、@ResponseBodyAdvice的理解 1、ResponseBodyAdvice接口类 —— 其描述大致解释下: 允许在执行{@code@ResponseBody}或{@code ResponseEntity}控制器方法之后,但在使用{@code HttpMessageConverter}
阅读全文
摘要:一、统一异常处理 1、统一异常处理的 2 个注解 系统有一个统一异常处理的功能,可减少重复代码,又便于维护。用@ControllerAdvice和@ExceptionHandler两个注解来做异常的统一处理。 @ControllerAdvice:作用于所有@Controller标注的Controll
阅读全文
摘要:先看下具体效果:相当于就是一个网页版的 Xshell 工具,操作起来跟 Xshell 操作一样。前端主要使用 Vue + Xterm + Websocket/Stomp,后端主要使用 SpringBoot + Websocket/Stomp + JSch,下面可以看下具体实现代码,demo 代码主要
阅读全文
摘要:最近在做一个web terminal的需求,自己也写了 demo ,使用 websocket + stomp 进行前后端通讯,其中遇到一个问题,就是我的前后端连接正常及 ssh 连接也正常了,但是我需要把 ssh 连接返回的信息,再返回给客户端。了解到使用 SimpMessagingTemplate
阅读全文
摘要:在实际工作中,经常由于设计不佳或者各种因素,导致类之间相互依赖。这些类可能单独使用时不会出问题,但是在使用Spring进行管理的时候可能就会抛出BeanCurrentlyInCreationException等异常 。当抛出这种异常时表示Spring解决不了该循环依赖,本文将简要说明循环依赖,以及S
阅读全文
摘要:Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后将这个Bean对象交给Spring管理, 和xml配置中的bean标签的作用是一样的。 @Bean是一个方法级别上的注解,主要用在@Configuration注解的类里,也可以用在@Component注解的类里,添加的bean的id
阅读全文
摘要:最近入手做Java项目,使用SpringBoot和安全框架SpringSecurity,之前也总结了很多问题解决的博客,可以查看之前博客,这篇是决定把整个流程及大致代码记录一下,当然我只贴关键代码流程哦。 一、流程和代码详解 1、首先需要导入核心依赖 <!-- spring security-->
阅读全文