![](https://img-blog.csdnimg.cn/20190831223435544.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
08_SpringBoot
文章平均质量分 87
TianXinCoord
这个作者很懒,什么都没留下…
展开
-
SpringBoot RocketMQ消息监听器(RocketMQMessageListener)后置注册
SpringBoot RocketMQ可以从源码中查看到实现了**SmartInitializingSingleton**接口,在所有Bean注册完成之后就会开始注册,注册使用的是main线程,就会导致如果消息队列积压大量消息时注册占用main线程时间过长,导致SpringBoot不能完全完成初始化(主要影响web无法对外提供接口访问)原创 2022-09-23 22:18:54 · 4205 阅读 · 2 评论 -
RocketMQ与SpringBoot整合进行生产级二次封装
零、文章前言说明 主要使用参考第二节 核心使用参考第一篇文章 一、为什么要二次封装 首先明确一点:不进行二次封装完全不影响RocketMQ的使用,可以选择二次封装和不选择二次封装 二次封装可以提供更多...原创 2022-06-19 11:07:47 · 3389 阅读 · 9 评论 -
Docker-Compose集成编排Redis、MySQL、微服务,业务服务容器化
docker-compose编排Redis,附有原生docker命令对比和docker编排指令的注释说明docker-compose编排MySQL,注明核心配置docker-compose编排SpringBoot微服务(这里以一个简单的SpringBoot集成Redis&MySQL服务代替)SpringBoot调用Redis、MySQL容器提供的服务,编排时的依赖关系处理需要掌握Docker的基本使用,文章不会对基础命令进行过多说明此处的服务使用SpringBoot,其他可以连接Redis和MySQL的服务原创 2022-06-11 20:27:45 · 618 阅读 · 1 评论 -
RocketMQ与SpringBoot整合、核心使用、多租户自动隔离、Java8时间支持
RocketMQ与SpringBoot的整合以及基础的应用配置RocketMQTemplate模板类的各种使用,如顺序消息、异步消息、响应消息、单向消息、指定消息key等等RocketMQ多租户/环境自动隔离topic/group/tag,如只需要配置基础的topic、group、tag,部署到dev、test、prod环境自动隔离,只需要写一次配置;多租户同样适用Java时间模块支持,默认如果RocketMQMessageListener用实体类接收消息时,字段不支持LocalDate/LocalDate原创 2022-06-02 09:20:00 · 3668 阅读 · 4 评论 -
SpringBoot技术实践-异步任务Async
一、异步任务启动在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理,在处理与第三方系统交互的时候,同步容易造成响应迟缓的情况在Spring 3.x之后,就已经内置了**@Async**来完美解决这个问题,@Async为异步执行注解异步执行为直接返回null,或者方法不需要返回值所以需要注意异步方法的返回值需要能接收null,推荐无返回值,因为返回的也是null两个重要注解@EnableAysnc:启动类上开启异步模式@Aysnc:需要异步处理的方法@Aysnc异步原创 2021-07-24 15:11:24 · 473 阅读 · 0 评论 -
SpringBoot技术实践-Slf4j日志框架
一、Slf4j日志框架1.1 Slf4j日志使用SpringBoot环境搭建之后将默认集成slf4j日志框架,通过下面方式获取参考手册:http://logback.qos.ch/manual/appenders.htmlimport org.slf4j.Logger;import org.slf4j.LoggerFactory;@RestControllerpublic class LogInfoController { private static final Logg原创 2021-07-24 15:07:44 · 544 阅读 · 0 评论 -
SpringBoot技术实践-SpringRetry重试框架
一、环境搭建加入SpringRetry依赖,SpringRetry使用AOP实现,所以也需要加入AOP包<!-- SpringRetry --><dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifactId></dependency><dependency>原创 2021-07-24 15:01:42 · 562 阅读 · 2 评论 -
SpringBoot技术实践-actuator监控
文章目录一、actuator介绍二、搭建actuator环境三、拓展health监控端点四、自定义监控端点一、actuator介绍actuator是Springboot提供的用来对应用系统进行自省和监控的功能模块,借助于actuator开发者可以很方便地对应用系统某些监控指标进行查看、统计等参考文档:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready二、搭建actuator环原创 2021-07-23 13:56:29 · 595 阅读 · 0 评论 -
SpringBoot技术实践-瘦身打包
一、瘦身打包瘦身打包用户将服务包和依赖包分开的打包方式二、打包依赖测试工程项目结构结构如下3. 主工程依赖如下,其中依赖公共模块内容,此处配置可忽略<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaL原创 2021-07-23 13:46:22 · 718 阅读 · 0 评论 -
SpringBoot技术实践-SpEL&EL表达式
一、SpringEL-基础介绍什么是SpringEL(SpEL)?Spring3中引入了Spring表达式语言—SpringEL,SpEL是一种强大,简洁的装配Bean的方式SpringEL可以通过运行期间执行的表达式将值装配到我们的属性或构造函数当中SpringEL可以调用JDK中提供的静态常量,获取外部Properties文件中的的配置为什么要使用SpringEL?平常通过配置文件或Annotaton注入的Bean,其实都可以称为静态性注入如Bean A中有变量A,它的值需要根据原创 2021-07-23 13:43:16 · 3055 阅读 · 0 评论 -
SpringBoot技术实践-整合Quartz任务调度
一、Quartz任务调度1.1 QuartzQuartz是一个定时任务框架,基础核心使用可以参考官网Quartz源码:https://github.com/quartz-scheduler/quartzQuartz官网地址:https://www.quartz-scheduler.org/documentation/项目源码地址:https://gitee.com/tianxincoord/blog-springboot-quartz.git1.2 SchedulerScheduler为原创 2021-07-22 14:15:14 · 772 阅读 · 4 评论 -
SpringBoot-RabbitMQ篇(3)-消费异常处理
一、消费失败重试默认的队列监听是自动确认的,但是如果出现异常不会自动确认默认的失败机制是不断重试,这样会影响mq性能可以在配置文件中指定失败重试次数和重试间隔pring: rabbitmq: ... # 配置消息重试 listener: simple: retry: # 开启重试 enabled: true # 重试三次 max-attempts: 3原创 2021-07-22 13:47:08 · 3594 阅读 · 0 评论 -
SpringBoot-RabbitMQ篇(2)-消息可靠投递
文章目录一、发送者异常监控1.1 发送者异常种类1.2 消息发送回调二、消息持久化2.1 持久化说明2.2 持久化表2.3 持久化实现2.3 补偿机制2.5 消息测试一、发送者异常监控1.1 发送者异常种类基本处理流程补偿(兜底)方案2. 模拟broker宕机:修改发送者端口如5673,然后启动,发送消息,端口不对无法连接主机错误信息:java.net.ConnectException: Connection timed out: connect补偿方案:加入异常处理,如果不可达原创 2021-07-22 13:41:49 · 796 阅读 · 4 评论 -
SpringBoot-RabbitMQ篇(1)-四大交换器
零、文章前言SpringBoot-RabbitMQ高级篇系列开始更新,本系列主要为SpringBoot整合RabbitMQ,实现高可用、可靠传递等核心有四大交换器、死信队列、可靠传递、异常消费处理系列共计三篇文章,本系列核心主讲整合和企业级内容,需要先具备SpringBoot和RabbitMQ基础只是文章源码放到了网盘,没有放git仓库,需要的自行下载,脚本等信息在common下面个人水平有限,有错误的地方欢迎指正链接: https://pan.baidu.com/s/1lpZC6fr8f4W原创 2021-05-25 22:06:00 · 1099 阅读 · 4 评论 -
SpringBoot开启Redis事务错误: Cannot use Jedis when in Multi. Please use Transaction or reset jedis state.
文章目录一、问题描述二、问题原因一、问题描述SpringBoot使用Jedis作为客户端,用RedisTemplate操作事务时返回报错public Object execTransactionIncorrect() { // watch该key,如果提交事物时有外界调整则设置失败 String key = "redis"; stringRedisTemplate.watch(key); stringRedisTemplate.opsForValue().set(原创 2021-05-06 16:36:35 · 929 阅读 · 0 评论 -
SpringBoot整合SpringSecurity系列(11)-Thymeleaf整合(完结篇)
文章目录一、Thymeleaf-Security二、Thymeleaf获取属性2.1 获取属性2.2 权限判断三、thymeleaf解决csrf一、Thymeleaf-SecuritySpring Security 可以在一些视图技术中进行控制显示效果,如JSP 或 Thymeleaf在非前后端分离且使用 Spring Boot 的项目中大多使用 Thymeleaf 作为视图展示技术Thymeleaf 对 Spring Security 的支持都放在hymeleaf-extras-springse原创 2021-04-30 23:39:12 · 1812 阅读 · 4 评论 -
SpringBoot整合SpringSecurity系列(10)-注解访问控制
文章目录一、基于注解访问控制二、三大注解控制方法2.1 @Secured2.2 @PreAuthorize2.3 @PostAuthorize一、基于注解访问控制Spring Security 中提供了一些访问控制的注解,这些注解默认不可用,需要通过 @EnableGlobalMethodSecurity 进行开启后使用,如果设置的条件允许则程序正常执行,反之不允许会报 500(AccessDeniedException异常)org.springframework.security.access.原创 2021-04-30 23:31:53 · 359 阅读 · 2 评论 -
SpringBoot整合SpringSecurity系列(9)-表达式访问控制
一、表达式判断之前登录用户权限判断底层实现都是调用access(表达式)/** * Allows specifying that URLs are secured by an arbitrary expression * @param attribute the expression to secure the URLs (i.e. "hasRole('ROLE_USER') * and hasRole('ROLE_SUPER')") * @return the {@link Express原创 2021-04-24 12:27:38 · 528 阅读 · 0 评论 -
SpringBoot整合SpringSecurity系列(8)-角色权限控制
文章目录一、角色权限判断二、内置权限判断2.1 hasAuthority(String)2.2 hasAnyAuthority(String ...)2.3 hasRole(String)2.4 hasAnyRole(String ...)2.5 hasIpAddress(String)一、角色权限判断除了内置权限控制外,Spring Security 中还支持很多其他权限控制,这些方法一般都用于用户已经被认证后,判断用户是否具有特定的权限例如登录微信之后,是否有权限发红包、发朋友圈等,后面的操作是原创 2021-04-22 20:45:56 · 2825 阅读 · 0 评论 -
SpringBoot整合SpringSecurity系列(6)-URL匹配控制
文章目录一、URL匹配控制二、URL匹配方法1.1 anyRequest()1.2 antMatcher()1.3 regexMatchers()1.4 HttpMethod1.5 mvcMatchers一、URL匹配控制通过上面的规则可以有很多 url 匹配规则和很多权限控制方法,这些内容进行各种组合就形成了Spring Security中的授权权限在所有匹配规则中取所有规则的交集,配置顺序影响了之后授权效果,越是具体的应该放在前面,越是笼统的应该放到后面,换句话说就是控制粒度小的先配置,粒度大的原创 2021-04-18 12:48:03 · 1565 阅读 · 1 评论 -
SpringBoot整合SpringSecurity系列(7)-内置访问控制
文章目录一、内置访问控制二、内置控制方法2.1 permitAll()2.2 authenticated()2.3 anonymous()2.4 denyAll()2.5 rememberMe()2.6 fullyAuthenticated一、内置访问控制Spring Security匹配了 URL 后调用了 permitAll() 表示不需要认证,同时也提供了多种内置控制方式访问控制信息在类ExpressionUrlAuthorizationConfigurer中配置org.springfra原创 2021-04-18 12:51:02 · 529 阅读 · 0 评论 -
SpringBoot整合SpringSecurity系列(5)-登录状态控制
文章目录一、Remember Me1.1 PersistentTokenRepository1.2 "记住我"功能配置二、系统退出控制三、403处理方案一、Remember MeSpring Security中 Remember Me 为“记住我”功能,用户只需要在登录时添加remember-me复选框,取值为trueSpring Security在用户登录后会自动把登录信息存储到数据库,后续就可以不登录进行访问Spring Security实现Remember Me功能底层实现依赖spring-原创 2021-04-18 12:42:49 · 1342 阅读 · 0 评论 -
SpringBoot整合SpringSecurity系列(4)-登录失败控制
文章目录一、定制失败页面二、定制失败处理器一、定制失败页面登录成功之后可以跳转到指定地址,登录失败之后也可以跳转到对应地址编写错误页面error.html<!DOCTYPE html><html lang="zh"><head> <meta charset="UTF-8"> <title>登录失败</title></head><body> <h3>登录失败,请重新<原创 2021-04-15 21:47:54 · 436 阅读 · 0 评论 -
SpringBoot整合SpringSecurity系列(3)-登录成功控制
文章目录一、SecurityConfigurer二、指定登录页面三、定制登录参数四、定制成功处理器一、SecurityConfigurerSecurityConfigurer是security配顶层置类,主要规定了初始化和配置方法WebSecurityConfigurer是SecurityConfigurer子接口,仅作为标识接口,并未增加方法WebSecurityConfigurerAdapter抽象类是WebSecurityConfigurer的配置适配器,也是Security中主要使用的配置原创 2021-04-15 21:45:32 · 499 阅读 · 0 评论 -
SpringBoot整合SpringSecurity系列(2)-数据库验证
文章目录一、数据库验证二、四大内置类2.1 UserDetailsService2.2 UserDetails2.3 GrantedAuthority2.4 BCryptPasswordEncoder三、数据库环境搭建一、数据库验证上述在配置文件中写死了用户名和密码,此时如果想要不同用户使用不同用户名和密码登录则上述配置不能满足要求实现数据库验证需要使用security提供的以下内置对象二、四大内置类2.1 UserDetailsServiceUserDetailsService提供了加载原创 2021-04-14 10:41:42 · 588 阅读 · 0 评论 -
SpringBoot整合SpringSecurity系列(1)-安全框架集成
文章目录一、文章前言二、Security框架集成三、Security密码配置四、CSRF跨站请求伪造一、文章前言SpringBoot-Security系列篇主要讲解了SpringBoot整合SpringSecurity主要包含权限控制、URL匹配、Thymeleaf整合,包含日常项目中使用的大多数场景文章内容所有代码都可以正常执行,特殊说明本系列中使用到的PrintUtil和JsonUtil是自己封装的两个小工具,可以使用System.out.println和fastjson实现,功能一致文档内原创 2021-04-13 22:02:17 · 489 阅读 · 0 评论 -
技术实践(3)-SpringBoot随机端口启动
文章目录一、SpringBoot随机端口1.基础介绍2.实现步骤3.项目测试二、SpringBoot多实例运行一、SpringBoot随机端口1.基础介绍随机端口可以自动找指定范围内可使用的端口,不需要在配置文件中指定固定的启动端口例如在SpringBoot中假如需要运行多个实例,则需要单独修改配置文件比较麻烦随机端口的原理就是与对应socket端口建立连接,能连接则已被使用,反之未被使用随机获取的端口校验可使用之后通过System.setProperty("属性名称", port);.原创 2020-10-22 12:25:46 · 2348 阅读 · 0 评论 -
技术实践(2)-SpringBoot全局Controller返回值格式统一
文章目录一、返回值格式统一1.返回值介绍2.基础类功能3.基础实现4.测试信息二、附录说明一、返回值格式统一1.返回值介绍在使用controller对外提供服务的时候,很多时候都需要统一返回值格式,例如{ "status": true, "message": null, "code": "200", "data": { "name": "json", "desc": "json返回值" }}如果不使用全局统一返回,就需要写一个工具类,然后controller返回.原创 2020-10-12 17:55:15 · 2163 阅读 · 2 评论 -
Spring Boot上传文件/图片&图片显示
一、文章前言1. 本文章主要讲述如何在spring boot下上传文件,尤其是上传图片并显示,例如用户注册的时候上传了头像,此时头像会加载在注册页面上面,在Spring MVC的时候,这样实现还好实现,但是到了Spring Boot就并不是这样2. 小伙伴也发现了,在使用部署到Tomcat服务器形式的项目,上传到的图片直接上传到Tomcat服务器中,都能访问,但是在Spring Boot中...原创 2019-09-01 00:33:32 · 31731 阅读 · 18 评论 -
(亲测解决)Unsatisfied dependency expressed through bean property 'sqlSessionFactory'
目录一、问题描述二、问题原因三、问题解决一、问题描述 1.使用Maven+SpringBoot+MyBatis测试,启动项目报错:Unsatisfied dependency expressed through bean property 'sqlSessionFactory',也就是无法实例化,所有代码都没有问题二、问题分析 1.检查mapper的name...原创 2018-10-28 12:56:38 · 136258 阅读 · 45 评论 -
SpringBoot属性文件配置参考手册
spring boot 属性文件配置,例如DataSource配置spring.datasource.driver-class-name= # JDBC Settings...spring.datasource.url=spring.datasource.username=spring.datasource.password=原创 2018-09-11 09:15:47 · 3350 阅读 · 0 评论 -
SpringBoot MyBatis属性手册
目录一、文章前言二、使用说明三.参考手册1.JXML格式2.JSON格式一、文章前言今天在网上查找在SpringBoot中的application.xml/yml中配置MyBatis参数的时候上网查找属性基本上找不到,MyBatis官网(http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-auto...原创 2018-09-11 17:22:36 · 6302 阅读 · 0 评论