有时候在Controller中要redirect跳转到某一个地址,例如: @RequestMapping(value = "/somepath") public String somePath(HttpSession session) { User user = (User) session.getAttribute("user"); if (user != null) { return "someView"; } return "redirect:/login"; } // or @RequestMapping(…

2023-08-05 0条评论 132点热度 0人点赞 admin 阅读全文

IDEA下maven项目打包SpringBoot应用程序,出现如下错误: org/springframework/boot/maven/RepackageMojo has been compiled by a more recent version of the Java Runtime (class file version 61.0), 查的解决办法,记录如下,供参考 修改pom.xml,相关注意点如下: <build> <plugins> <plugin> <grou…

2023-06-11 0条评论 275点热度 0人点赞 admin 阅读全文

默认情况下SpringBoot的stringRedisTempalte只能存string,redisTemplate如果存入bytes也会报错,是因为找不到相应的ValueSerializer,或者用默认的StringRedisSerializer来序列化,导致bytes无法转成String而报错。 我们可以在Redis的配置文件下,指定相应的ValueSerializer。 RedisConfiguration.java的配置如下: import org.springframework.context.annot…

2023-03-08 0条评论 650点热度 0人点赞 admin 阅读全文

简单使用 Java API规范(JSR303)定义了Bean校验的标准validation-api,但没有提供实现。hibernate validation是对这个规范的实现,并增加了校验注解如@Email、@Length等。Spring Validation是对hibernate validation的二次封装,用于支持spring mvc参数自动校验。接下来,我们以spring-boot项目为例,介绍Spring Validation的使用。 引入依赖 如果spring-boot版本小于2.3.x,spring…

2022-12-30 0条评论 460点热度 0人点赞 admin 阅读全文

我们平时开发项目的时候,经常会需要远程调用下其他服务提供的接口,于是我们会使用一些HTTP工具类比如Hutool提供的HttpUtil。前不久SpringBoot 3.0发布了,出了一个Http Interface的新特性,它允许我们使用声明式服务调用的方式来调用远程接口,今天我们就来聊聊它的使用! 简介 Http Interface让你可以像定义Java接口那样定义HTTP服务,而且用法和你平时写Controller中方法完全一致。它会为这些HTTP服务接口自动生成代理实现类,底层是基于Webflux的WebCl…

2022-12-27 0条评论 735点热度 0人点赞 admin 阅读全文

发布订阅模式简介 发布订阅模式在我们日常的开发工作中算是比较常用的一种方式,发布订阅模式有可以被称为观察者模式,它定义的是一种一对多的关系模式,可以让多个订阅者同时监听到同一个发布者的消息,这个发布者又被称为是主题对象。然后通过发布者发布的消息,来通知观察者能够实时的更新自己获取到的消息内容。 有人说发布订阅模式与观察者模式是有区别的,这里我们先不对两者做展开的讨论,在后面我们会介绍相关的内容。这里我们首先来看发布订阅模式,如下图所示。 如图所示,在发布订阅模式中有两个关键性的节点,发布者与订阅者。我们可以将发布者…

2022-12-21 0条评论 553点热度 0人点赞 admin 阅读全文

1. 前景 在使用Springboot时,通常很多信息都是在application.yml中直接明文配置的,比如数据库链接信息,redis链接信息等等。有些公司的场景可能需要对配置文件进行加密,防止部署操作人员接触数据句的重要信息,所以需要对敏感数据进行加密。 Jasypt这个库为我们解决了这个问题,实现了springboot配置的自定义加密加密。 2. 开源项目介绍 https://github.com/ulisesbocchio/jasypt-spring-boot 2.1 引入依赖 <propertie…

2022-12-09 0条评论 983点热度 0人点赞 admin 阅读全文

Spring Boot是支持发布jar包和war的,但它推荐的是使用jar形式发布。使用jar包比较方便,但如果是频繁修改更新的项目,需要打补丁包,那这么大的jar包上传都是问题,另外还有可能需要将应用部署到Tomcat下运行。所以,jar包不一定合适适用所有的场景,如war包更合适,你可以尝试转为传统的war包,这样打补丁包可能更方便。 如何配置打war包呢? 以下配置以Maven为说明讲解,Gradle的查看类似配置。 1、修改Spring Boot启动类 启动类继承 SpringBootServletInit…

2022-11-30 0条评论 576点热度 0人点赞 admin 阅读全文

使用 Spring Boot 会涉及到各种各样的配置,如开发、测试、线上就至少 3 套配置信息了。Spring Boot 可以轻松的帮助我们使用相同的代码就能使开发、测试、线上环境使用不同的配置。 在 Spring Boot 里面,可以使用以下几种方式来加载配置。本章内容基于 Spring Boot 2.0 进行详解。 properties文件; YAML文件; 系统环境变量; 命令行参数; 等等…… 配置属性加载的顺序如下: 1、开发者工具 `Devtools` 全局配置参数; 2、单元测试上的 `@TestPr…

2022-11-28 0条评论 333点热度 0人点赞 admin 阅读全文

Profile我也找不出合适的中文来定义,简单来说,Profile就是Spring Boot可以对不同环境或者指令来读取不同的配置文件。 假如有开发、测试、生产三个不同的环境,需要定义三个不同环境下的配置。 基于properties文件类型 你可以另外建立3个环境下的配置文件: applcation.properties application-dev.properties application-test.properties application-prod.properties 然后在applcation.p…

2022-11-26 0条评论 404点热度 0人点赞 admin 阅读全文
123458