SpringBoot
SpringBoot 整理
晴空排云
气有浩然 学无止境
展开
-
分布式系统中的“无状态”和“有状态”详解
「数据一致性」和「高可用」其实本质是一个通过提升复杂度让整体更完善的方式。本文主要讲一些让系统更简单,更容易维护的东西——「易伸缩」,首当其冲的主题就是「stateless」,也叫「无状态」。服务的“状态”无状态的服务客户端的每次请求必须具备自描述信息,通过这些信息识别客户端身份。服务端不保存任何客户端请求者信息。无状态的好处?客户端请求不依赖服务端的信息,任何多次请求不需要必须访问到同一台服务服务端的集群和状态对客户端透明 =-服务端可以任意的迁移和伸缩 =-减小服务端存储压力什么.转载 2020-12-17 16:20:36 · 4735 阅读 · 0 评论 -
Spring Boot:JPA + AuditingEntityListener时区设置
在SpringBoot项目中,如果应用启用了EnableJpaAuditing并且使用AuditingEntityListener对实体的创建时间、更新时间进行自动审计,可能存在生成时间的时区和系统时区不一致的问题。可在应用配置中添加如下配置,将时区设定为指定时区:spring.jpa.properties.hibernate.jdbc.time_zone = GMT+8...原创 2020-08-25 09:31:04 · 3057 阅读 · 0 评论 -
阿里云OSS STS最佳实践,看这一篇就够了
阿里云OSS(Object Storage Service,对象存储服务)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。在实际应用开发中,可方便的用于图片管理、文件管理等等,为应用提供图片访问及文件下载服务。何为“最佳实践”? 即使用客户端直传和临时授权。客户端直传避免客户端传到应用服务器再由应用服务器传到阿里云OSS的两步数据传输。临时授权,用阿里OSS官方的话说就是使用STS(Security Token Service,临时授权访问),可以为第三方应用或子用户(即用户身份由原创 2020-08-22 23:47:41 · 14760 阅读 · 0 评论 -
Spring Boot:PostgreSQL整合JPA、MyBatis基本操作
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另.原创 2020-06-25 16:09:11 · 1688 阅读 · 2 评论 -
Spring Boot:@PostConstruct虽好,也要慎用
做过SpringBootk开发的话,肯定对@PostConstruct比较熟悉。在一个Bean组件中,标记了@PostConstruct的方法会在Bean构造完成后自动执行方法的逻辑。但是,这里有一个小坑。。。先说下SpringBoot中Bean的加载过程,简单点说就是SpringBoot会把标记了Bean相关注解()的类或接口自动初始化全局的单一实例,如果标记了顺序会按照用户标记的顺序,否则按照默认顺序初始化。在初始化的过程中,执行完一个Bean的构造方法后会执行该Bean的@PostConstruc原创 2020-06-16 16:57:50 · 26984 阅读 · 0 评论 -
Spring Boot:集成Mqtt实现消息的发送和接收
使用<<Docker案例:Mac系统中构建MQTT容器及使用>>文章中创建的Mqtt Docker容器结合SpringBoot模拟实现消息的发送和接收。在实际应用场景中,Mqtt模块可集成在任何硬件设备,如手持终端、车载模块以及一些定制的电路板中,即有通信功能的“物”中。下面主要记录SpringBoot项目中集成Mqtt的步骤。Springboot版本:2.2.6.RELEASE。。。。。。原创 2020-06-10 22:13:05 · 15123 阅读 · 19 评论 -
Spring Boot:让你的应用优雅的按需加载Bean
在Spring Boot中,如何优雅的按需加载Bean,执行相应的操作?你可能遇到过类似下面的场景:1. 有个操作,只能在开发环境执行2. 又有个操作,不能在开发环境执行,只能在其他非开发环境执行3. 又又有个操作,需要在开发或测试环境执行,线上环境不能做4. 叒有个操作,不论是什么环境,在同时满足A和B两个配置条件的时候才能执行5. ... ...原创 2020-05-03 13:52:49 · 8986 阅读 · 0 评论 -
Spring Boot:注册请求过滤器FilterRegistrationBean处理特定请求
在SpringBoot中,FilterRegistrationBean类用来在Servlet容器执行请求过程中过滤一些特定的请求,并对请求的请求内容和响应结果做一些处理,例如权限拦截验证、访问日志、响应格式化等等。 你可以认为是在服务端接收到请求和返回请求结果到调用方这两个过程中间做一些自定义的操作。 下面的案例记录如何在原有请求中增加额外的请求参数。1 添加请求包装类先创建一个工具类RequestParameterWrapper继承自HttpServletRequestWrapper,并重写getPa原创 2020-05-18 18:32:52 · 9417 阅读 · 1 评论 -
Spring Boot:集成Kafka实现消息的发布和订阅
本文使用上一篇文章<<Docker案例:MacOS搭建单节点Kafka服务>>中通过Docker搭建的Kafka服务进行SpringBoot的集成,详细步骤如下:1 依赖包引用在build.gradle文件中添加依赖如下:implementation 'org.springframework.kafka:spring-kafka'2 配置信息当前使用application-dev.properties,在文件中添加如下相关Kafka信息如下:#>>>原创 2020-05-11 20:19:02 · 2342 阅读 · 2 评论 -
Spring Boot:使用EntityListeners监听JPA实体持久化
之前的文章<<Spring Boot:Spring Data JPA开启审计功能,自动保存操作人操作时间>>介绍过JPA自动存储操作人、操作时间等信息,在开发过程中我们可能遇到需要对实体的其他属性信息在增删改前后进行监听的情况,从原理上来说之前的文章只是一种特例,SpringBoot框架已经替我们实现。这里记录一下通过Spring Data JPA的...原创 2020-05-07 19:29:56 · 6574 阅读 · 0 评论 -
Spring Boot:Logback MDC动态映射上下文信息到日志
在SpringBoot应用中使用Logback记录程序日志非常方便,但是随着日志量越来越大,通过查看或筛选日志定位问题也会变得越来越困难。这里提供一种将日志信息关联应用上下文(用户信息)的方式,可看做是对日志进行分组,以进一步提高查看及筛选日志的效率。原创 2020-05-02 07:24:21 · 1524 阅读 · 0 评论 -
Spring Boot:应用启动数据初始化接口CommandLineRunner和ApplicationRunner
在SpringBoot项目中创建组件类实现``CommandLineRunner``或``ApplicationRunner``接口可实现在应用启动之后及时进行一些初始化操作,如缓存预热、索引重建等等类似一些数据初始化操作。两个接口功能相同,都有个``run``方法需要重写,只是实现方法的参数不同。``CommandLineRunner``接收原始的命令行启动参数,``ApplicationRunner``则将启动参数对象化。原创 2020-04-30 12:06:56 · 2100 阅读 · 1 评论 -
Spring Boot:全局日志拦截处理
一些系统经常需要关注用户请求的具体信息,如用户信息、请求参数、响应结果等等,在SpringBoot应用中可通过注册全局请求拦截器的方式统一处理。下面的案例将简单实现打印请求和响应的相关信息,具体可根据实际业务需要进行相应调整(注意方法尽量轻量化,防止加重系统处理每个请求的负担)原创 2020-04-29 09:44:42 · 3795 阅读 · 0 评论 -
Spring Boot:开启定时执行的任务
在开发过程中经常需要用到定时执行某项任务的需求,这里记录下在SpringBoot中开启定时任务的过程。原创 2020-04-28 09:34:57 · 1818 阅读 · 0 评论 -
Spring Boot:连接MySQL错误Public Key Retrieval is not allowed
前段时间使用了一个MySQL的Docker容器[Docker案例:搭建MySQL数据库服务](https://blog.csdn.net/lxh_worldpeace/article/details/105496560),然后在[Spring Boot:Idea从零开始初始化后台项目](https://blog.csdn.net/lxh_worldpeace/article/details/105544270)中使用了这个数据库。今天启动SpringBoot应用的时候突然报错``Public Key Ret原创 2020-04-27 17:43:48 · 1787 阅读 · 0 评论 -
Spring Boot:Spring Data JPA 在SpEL中使用登录用户上下文信息
Spring Boot:Spring Data JPA SpEL使用原创 2020-04-21 10:05:36 · 1028 阅读 · 0 评论 -
Spring Boot:全局异常统一处理之RestControllerAdvice
控制器在处理请求的过程中难免遇到未被捕捉的异常,在Springboot中也可在全局范围内处理未捕捉的异常,使客户端接收到的响应更友好。从``springframework 3.2``版本开始,Spring提供了``@ControllerAdvice``注解,可结合``@ExceptionHandler``注解实现全局异常的捕捉;从``springframework 4.3``版本开始,又提供了``@RestControllerAdvice``注解,可简化``@ControllerAdvice``的声明工作。原创 2020-04-20 22:51:31 · 1306 阅读 · 0 评论 -
Spring Boot:基于JWT和Spring Security的登录验证
Spring Security是Spring全家桶中基于Web Filter实现的提供安全认证服务的框架。JWT(JSON Web Token)是一个跨域身份验证解决方案,可脱离Session进行身份认证,也可以同时为多系统间提供统一身份认证。下面主要介绍如何在SpringBoot后端项目中集成JWT和Spring Security实现用户登录原创 2020-04-18 17:30:11 · 1610 阅读 · 1 评论 -
Spring Boot:Spring Data JPA开启审计功能,自动保存操作人操作时间
有些业务数据对数据的创建、最后更新时间以及创建、最后操作人进行记录。如果使用Spring Data Jpa做数据新增或更新,可实现自动保存这些信息而不需要显示设置对应字段的值,可通过以下步骤进行配置原创 2020-04-18 10:39:01 · 4357 阅读 · 0 评论 -
Spring Boot:Idea从零开始初始化后台项目
官方提供了Springboot初始化工具可直接在线生成项目文件,然后下载并导入开发工具中 。这里记录通过Idea(Mac版)创建Springboot后台项目的过程,当前Springboot稳定版本为2.2.6。下面的步骤可看做是创建Springboot后台项目模板,主要实现以下功能:集成MySQL,通过SpringData JPA和MyBatis两种方式操作数据库集成Redis内存数据库配...原创 2020-04-16 09:58:11 · 2558 阅读 · 2 评论