
SpringBoot2.x架构教程
文章平均质量分 89
SpringBoot2.X以上版本,从基础案例到项目架构,每篇文章配合GitHub上代码开源,文档+代码形式学习,跟我一起从零基础开发者到SpringBoot快速开发框架项目架构的架构者,在成为架构师的路上,我们每一个人都在努力的坚持学习着,加油吧,打工人!!!
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
Thinkingcao
CSDN2019年度博客之星、博客专家,专注架构、Java、Spring、SpringBoot、SpringCloud、微服务、数据库、分布式、中间件、源码分析、JVM性能调优、K8S等领域
微信搜索公众号:「Thinking曹」,一个执着于架构的JAVA基层码农,每天带你学习新知识。
展开
-
Spring Boot2.x系列教程 | 文章汇总:专栏汇总篇(持续更新中.............)
Spring Boot使用注解控制Api接口幂等性之前后端分离架构设计:https://blog.csdn.net/Thinkingcao/article/details/103578562原创 2019-12-30 15:50:33 · 2751 阅读 · 2 评论 -
SpringBoot 系列教程(一百零八):SpringBoot整合Orika实体映射工具
在开发过程中,经常涉及到对象之间的拷贝,我记得以前用得最多的`Spring`框架中自带的一个`API`方法是:```javaBeanUtils.copyProperties(Object source, Object target)````BeanUtils.copyProperties(Object source, Object target)`的含义是将`source`的属性值复制到`target`,属性为null时也会进行复制。原创 2021-04-23 14:01:37 · 1201 阅读 · 0 评论 -
SpringBoot 系列教程(一百零七):SpringBoot整合Mybatis Plus3.4.2+Swagger增删改查
在前面一篇文章中:[SpringBoot 系列教程(一百零六):SpringBoot封装企业通用Swagger配置](https://thinkingcao.blog.csdn.net/article/details/115875462) ,写了如何封装企业级Swagger常用配置为Starter启动器,为了验证我们自身封装的`swagger-spring-boot-strater`可用性,本章节专门选用技术栈 `SpringBoot2.3.7.RELEASE+Swagger+Mybatis Plus3原创 2021-04-19 22:59:44 · 845 阅读 · 4 评论 -
SpringBoot 系列教程(一百零六):SpringBoot封装企业通用Swagger配置
哈喽,小伙伴们,晚上好,距离上一次更新文章已经是2021年1月份了,停更了3个月的时间,这么久实在是感到抱歉,尤其对于那些付费的朋友们更是心里过意不去,其实停更这一段时间我一直在准备换工作,复习面试题,现在也成功入职了一家新的互联网公司,前面一段时间稍微忙了一些,就没有精力去更新这些文章了,其实要写的还蛮多,准备后面持续的输出给大家,同时希望自己通过写一些技术文章能给一些朋友们带来一点点的帮助,其次也是对自己技术探索之路的一个总结与提升,相信一直沉淀下去大家都会有所收获的,加油!一、前言做架构一直是我的原创 2021-04-19 22:42:33 · 713 阅读 · 0 评论 -
SpringBoot 系列教程(一百零五):SpringBoot调用Minio API时多级目录如何操作
背景在使用minio做分布式系统文件存储时,有几个术语概念必须要理清楚,因为在minio存储目录是多级目录时,难以区分。参数类型描述bucketNameString存储桶名称objectNameString存储桶里的对象名称一、由来假设现在minio的控制台界面有个bucket(桶),叫做devBucket,然后在devBucket目录中创建一个images文件夹,接下来在images文件夹中上传一个test.jpg图片,因此整个静态资源图片的访问URL应该是原创 2020-11-20 17:16:11 · 3207 阅读 · 0 评论 -
SpringBoot 系列教程(一百零四):SpringBoot 整合 MinIo 文件服务
在日常开发中,图片上传、文件上传功能都会涉及到,可能在`SpringBoot`框架占领`Java`开发的主要市场后大家在处理文件上传时大家听得最多的分布式文件服务是`FastDFS`和阿里云的`OSS`,虽然`OSS`挺好用,奈何`OSS`是收费的,太贵.......,而`FastDFS`搭建配置过程又太繁琐,所以今天给大家推荐一款高性能的分布式文件存储系统`MinIo `原创 2020-11-19 14:23:58 · 1332 阅读 · 0 评论 -
SpringBoot 系列教程(一百零三):SpringBoot整合 Mybatis 多数据源配置
关于多数据源,得根据不同的项目场景需求才会涉及到,众所周知,国内程序员使用JPA并不过,相对来说说使用Mybatis更多一些,所以这篇文章和大家介绍下关于Mybatis多数据源的配置,另外多说一句,不是所有的需求场景都需要使用多数据源,如果复杂的可直接使用分布式数据库中间件(如:Mycat、Sharding-JDBC等分表分库中间件),简单的话直接考虑使用多数据源就行,大家可根据自身的市级项目需求来选择使用多数据源还是分布式数据库中间件。一、项目搭建首先需要常见SpringBoot骨架项目,引入M原创 2020-11-16 13:59:03 · 681 阅读 · 2 评论 -
SpringBoot集成Mybatis多数据源: Invalid bound statement (not found): com.xx.mapper1.getAllOrder 坑点
背景在SpringBoot 2.3.1.RELEASE整合Mybatis 2.1.3多数据源配置的过程中,遇到过一个坑点,花了我一下午时间,最后解决掉了,这里总结一下,防止大家在SpringBoot 整合Mybatis多数据源的过程中遇到这个问题,可少趟坑。下面这行异常信息就是上面提到的坑点,在网上查找了很多的资料,都说mapper.xml的命名空间不对、或者application.yml配置的参数类型不对,在我仔细检查过,都不是这个问题。org.apache.ibatis.binding.Bindi原创 2020-11-16 11:42:32 · 2475 阅读 · 0 评论 -
SpringBoot 系列教程(一百零二):SpringBoot整合PageHelper插件实现分页查询
在以前项目开发过程中,查询接口是大量存在的,当调用查询接口将数据展示到前端页面时(H5、PC、移动端),难免数据量过大需要对数据请求进行分页返回数据,分页查询的形式有多种多样,说不上很简单,大部分都很复杂,这里就举例在MySQL中传统分页怎么做的:select oid, number, pid, pname, pprice,原创 2020-11-12 17:40:56 · 530 阅读 · 0 评论 -
Spring Boot 系列教程(一百零一):SpringBoot自定义Starter启动器
在使用SpringBoot框架时,SpringBoot 最强大的功能就是把我们常用的场景抽取封装成了一个个starter,将其称之为场景启动器。搭建项目时,通过引入SpringBoot为我提供的这些场景启动器,然后开发者再进行少量的配置就能快速的开发出一个Java Web应用。究其原理,完全归结于SpringBoot封装的这些Starter ,为我们带来了众多的自动化配置,有了这些自动化配置,使得开发Java项目不费吹灰之力,那么你是否感觉这些Starter 很神奇呢,接下来就揭开其神秘面纱并且徒手自定义一原创 2020-08-25 21:56:39 · 1147 阅读 · 0 评论 -
Spring Boot 系列教程(第一百篇):SpringBoot整合sa-token权限框架
sa-token是一个JavaWeb权限认证框架,强大、简单、好用。原创 2020-09-10 21:39:47 · 6293 阅读 · 3 评论 -
SpringBoot 集成Mybatis中@Mapper与@MapperScan注解的区别
在使用`SpringBoot`整合`Mybatis`持久层框架时,对于`Mybatis`生成的接口类,例如 `UserMapper`,这些接口类 `*Mapper`在这里充当了`Dao`层的角色,,在Service层编写业务代码的时候需要使用@autowired或@resource注解注入然后调用mapper里面的方法;因此需要将这些mapper类都标注为`Be原创 2020-08-20 15:33:47 · 9427 阅读 · 0 评论 -
SpringBoot 系列教程(九十九):SpringBoot整合阿里云OSS实现文件上传,下载,删除功能
一、前言在以前使用Spring+SpringMVC+Mybatis框架开发Web项目的时候,都是将项目打包生成一个War包,然后将War包丢到Tomcat服务器的webapp目录下,启动后将会解压改War包,创建一个war包名称的文件夹。而且项目中一些关于文件的上传都是存储到Tomcat下,按日期分类的文件上传文件夹,来存储上传的文件。那么在Springboot项目中,通过将文件上传到Springboot项目的根目录下,按日期分文件夹,文件访问也很方便,可以直接返回文件相对路径地址,并直接可以访问。但是原创 2020-11-09 14:05:25 · 1144 阅读 · 0 评论 -
SpringBoot 系列教程(九十八):SpringBoot整合Thymeleaf3语法详解
`Thymeleaf`是`Spring Boot`官方默认推荐使用的模版引擎,除此之外常见的还有`Freemarker`和`Jsp`,在开发市场上在使用`SpringBoot`框架时其前端数据展示的模板选型上使用最多的模板引擎是`Thymeleaf`,其次就是`Freemarker`了。`Thymeleaf`是一款用于渲染`XML/XHTML/HTML5`内容的模板引擎。类似`JSP`,`Velocity`,`FreeMaker`等,它也可以轻易的与`Spring MVC`等`Web`框架进行集成作为`原创 2020-08-17 17:26:48 · 783 阅读 · 0 评论 -
SpringBoot 系列教程(九十七):SpringBoot整合Kaptcha基于Webflux生成图片验证码
一、前言在网站后台登录中,为了防止黑客攻击,大量盗刷登录请求,造成系统崩溃等安全攻击问题,如果使用账号/密码的方式登录,一般都会加一个验证码功能,验证码有多种形式,比较常用的有图片验证码,可以是数字加减乘除计算类型的,也可以是字母数据混合类型的,为了应对不同的场景,不同的需求,有一款google公司开源的验证码工具的kaptcha正好被我们所需要,本篇博客会以SpringBoot为基础框架,使用SpringBoot整合kaptcha及Gateway生成图片验证码,这篇博客的使用场景主要是SpringClo原创 2020-06-11 20:01:59 · 1284 阅读 · 0 评论 -
SpringBoot 系列教程(九十六):SpringBoot整合kaptcha生成图片验证码
一、前言在网站后台登录中,为了防止黑客攻击,大量刷登录请求,造成系统崩溃等安全问题,以账号/密码登录的方式中,一般都会加一个验证码形式,验证码有多种形式,比较常用的有图片验证码,可以是数字加减乘除计算类型的,也可以是字母数据混合类型的,为了应对不同的场景,不同的需求,有一款google公司开源的验证码工具的kaptcha正好被我们所需要,本篇博客会以SpringBoot为基础框架,使用SpringBoot整合kaptcha生成图片验证码。如果使用kaptcha验证码工具需要引入以下依赖:<!--原创 2020-06-11 19:01:52 · 833 阅读 · 0 评论 -
SpringBoot项目启动只打印:Process finished with exit code -1解决
一、问题我的SpringBoot项目在启动的时候,控制台只打印了这么一句话,一直很迷惑,其实项目是启动了的,找了网上的解决方式,跟我的情况都不一样,什么Tomcat依赖包没加啊等等,其实我都加了,我的项目download自若依开源的ruoyi-cloud项目,先截个图:从面上看出我的工程下有个logback-spring.xml日志打印文件,项目的配置文件默认存放在nacos配置中心当中,n...原创 2020-04-16 17:59:39 · 3357 阅读 · 0 评论 -
SpringBoot 系列教程(九十五):SpringBoot启动时打印初始化Bean及自定义参数信息
`SpringBoot`应用程序在启动的时候,默认会加载初始化一些`Bean`,有时候为了查找某些项目中遇到的问题,搞清楚究竟是什么原因,需要打印一下`SpringBoot`在启动的时候,做了哪些操作,`Spring`容器初始化了哪些`Bean`,因此,通过`ConfigurableApplicationContext`类可以实现该需求,另外如果我们需要在配置文件`application.yml`中定义一些关于项目启动的自定义信息,想在项目启动的时候加载打印出来,也可以通过`ConfigurableAppl原创 2020-01-06 17:34:07 · 5152 阅读 · 0 评论 -
SpringBoot 系列教程(九十四):Spring Boot整合Activiti6.0模型设计器Activiti-Model
一、前言基于上一篇: SpringBoot 系列教程(九十三):Spring Boot整合Activiti6.0工作流 ,我们已经完整的使用SpringBoot2.1.1.RELEASE版本整合了Activiti6.0工作流,这也就意味着我们可以使用Activiti6.0里面提供的所有的Api接口,以及28张表,7大Service接口,提供给我们存储工作流相关的数据运转和Service中接口调用...原创 2020-03-02 16:02:23 · 2216 阅读 · 0 评论 -
SpringBoot 系列教程(九十三):Spring Boot整合Activiti6.0工作流
一、前言最近因项目需要,要开发一款工作流的OA系统,在这之前没有玩过工作流,对什么是工作流也不理解,所以在实现工作流OA系统的开发前,我就先了解了下什么是工作流?工作流能干什么?SpringBoot如何简单快速的整合工作流?,抱着对这3个问题的思考,一步一步进行,因此在这里记录下本次从0开始玩工作流的过程以及给大家参考如何快速使用SpringBoot整合、开发一款工作流系统,以及工作流的相关概念...原创 2020-01-09 15:07:47 · 5034 阅读 · 10 评论 -
SpringBoot 系列教程(九十二):Spring Boot全局设置Jackson时间处理
一、前言最近在做SpringBoot整合Memcached缓存时,遇到一个异常,前端传是一个JSON字符串,后端使用@RequestBody接收,写法是:@RequestBody OrderEntity orderEntity,其中OrderEntity 有个属性是Date类型的payDate,在前端JSON字符串中payDate转化为后端实体类中的属性时,报异常了,因为SpringBoot默认...原创 2020-01-08 17:58:48 · 2045 阅读 · 0 评论 -
SpringBoot 系列教程(九十一):SpringBoot+Redis生成图片验证码并校验
一、前言在做web开发、后台网站登录的时候,很多情况下需要填写验证码才可以登录,验证码如果填写不正确,登录是无法成功的,常见的验证码有旋转正反面、数字加减、图片验证码数字填入等方式多种多样,本文就采取其中之一图片验证码这种类型,探索一下使用SpringBoot+Redis方式获取验证码并且校验验证码。二、设计思路后端Api接口生成数字和字母混搭的指定位数的验证码,位数由参数传递,存储在Re...原创 2020-01-03 15:33:03 · 1562 阅读 · 0 评论 -
SpringBoot 系列教程(九十):Spring Boot配置使用MongoTemplate操作MongoDB
一、前言在上一篇SpringBoot 系列教程(七十):SpringBoot整合MongoDB 中我们详细的了解和学习到了MongoDB是什么、MongoDB能做什么、特点是啥、以及在SpringBoot中如何快速整合MongoDB数据库,并且进行了实战学习,如果有留意会发现在上一篇中是使用继承 MongoRepository方式操作MongoDB增删改查,因为MongoDB同 JPA 一样,...原创 2020-01-02 15:00:12 · 1901 阅读 · 0 评论 -
SpringBoot 系列教程(八十九):Spring Boot整合MongoDB增删改查
一、MongoDB是什么MongoDB 是一种面向文档的数据库管理系统,旨在为web应用提供可扩展的高性能数据存储解决方案。用 C++等语言撰写而成,以此来解决应用程序开发社区中的大量现实问题。其实MongoDB就是非关系型里面的数据库(NoSQL),是一种极似关系型(Mysql)数据库的一种NoSQL类型的数据库;二、MongoDB存储数据特点MongoDB 将数据存储为一个文档,经常存储...原创 2020-01-02 14:45:01 · 1220 阅读 · 0 评论 -
SpringBoot 系列教程(八十八):Spring Boot配置使用RedisTemplate操作Redis
Spring Boot除了对对常用的关系型数据库提供支持以外,还对非关系型数据库进行了自动化配置。使用redis结合spring cache是一个非常棒的组合,cache使用方便,但还是使用JVM内存了缓存对象,redis是独立的缓存服务器,使用单纯的内存来做缓存,所以他们结合后可以很方便的进行缓存并且不影响JVM的内存性能;本节介绍SpringBoot引入redis,以及使用RedisTemplate来操作redis数据。原创 2019-12-27 13:22:32 · 1068 阅读 · 0 评论 -
SpringBoot 系列教程(八十七):Spring Boot全局统一异常拦截处理
一、前言在早几年项目开发过程中,对于异常处理太过于复杂和杂乱,项目代码中大量的try catch使用,通过try catch捕捉然后对异常处理,如果处理不了的则往上一层抛,由上一层接管异常的处理,其实不管是SpringBoot框架还是Spring+SpringMVC+Mybatis框架,都可以使用@ControllerAdvice和 @ExceptionHandler 对项目做一个全局的异常拦截...原创 2019-12-27 17:45:41 · 1733 阅读 · 0 评论 -
SpringBoot 系列教程(八十六):Spring Boot使用AOP打印接口请求日志
一、前言AOP被称作面向切面编程,OOP面向对象编程,其实由于OOP的一些局限性,AOP是对OOP的一种补充,是两种编程模式,Spring AOP 是基于 AOP 编程模式的一个框架,它的使用有效减少了系统间的重复代码,达到了模块间的松耦合目的。使用AOP技术,可以将一些系统性相关的编程工作,独立提取出来,独立实现,然后通过切面切入进系统。从而避免了在业务逻辑的代码中混入很多的系统相关的逻辑——...原创 2019-12-26 17:49:18 · 982 阅读 · 0 评论 -
SpringBoot 系列教程(八十五):Spring Boot使用MD5加盐验签Api接口之前后端分离架构设计
一、前言在当下的Web开发,或者涉及到H5、APP、小程序等移动端开发时,务必需要后端提供Api接口供前端调用,无论H5程序、App还是小程序,都是如此,那么接口安全问题就被大家重视起来了,现在也越来越多人关注接口安全问题,尤其是一些架构师,传统的接口在传输的过程中,容易被抓包然后更改里面的参数值达到某些目的。传统的做法是用安全框架或者在代码里面做验证,但是有些系统是不需要登录的,随时可以调AP...原创 2019-12-18 11:23:48 · 9079 阅读 · 8 评论 -
SpringBoot 系列教程(八十四):Spring Boot使用注解控制Api接口幂等性之前后端分离架构设计
一、前言在传统的web项目比如使用SSM和SSH框架开发的时候,rpc远程调用、MQ消费者幂等(保证唯一)、甚至常见的在网络产生延迟的情况下,都可能有重试机制,这时候会涉及到表单的重复提交问题,按照以前常用的做法是:第一种是在前端由前端工程师使用JS控制,这样其实是不专业的,如果更专业点,就是使用第二种``Token+Redis机制处理,这种做法在大型项目中较为流行,其简要原理是后端生成一个唯一...原创 2019-12-17 13:37:31 · 2355 阅读 · 4 评论 -
SpringBoot 系列教程(八十三):SpringBoot统一处理异常ErrorController
一、Springboot默认的错误处理SpringBoot源代码中有这样一个ErrorController,针对SpringMvc错误的Mapping进行处理,很多的时候我们写了一个Controller,在浏览器上访问的时候经常会出现如下情况:1. 404异常2. 500异常上述两种异常情况下出现的异常界面,是SpringBoot默认的,原因是前端发起请求给springmvc的时候,S...原创 2019-12-17 00:14:22 · 2492 阅读 · 0 评论 -
SpringBoot 系列教程(八十二):Intellij IDEA实现SpringBoot项目启动多个端口
一、前言在使用SpringBoot特别是学习的时候,比如在学习SpringCloud搭建Eureka注册中心集群,这时候就需要使用到多个SpringBoot项目启动,这些项目其他都一样,就端口要求不同,这时候我们可以将同一个SpringBoot项目复制多份,端口设置不同即可,在IDEA和Eclipse中都可以实现。二、实现方法开发工具: Intellij IDEA工具版本: Int...原创 2019-12-16 22:09:51 · 1862 阅读 · 1 评论 -
SpringBoot 系列教程(八十一):Spring Boot使用Token鉴权Api接口之前后端分离架构设计
一、前言最近两年项目框架一直使用的是由Spring+SpringMVC+Mybatis核心组件组合的SSM框架,SSM框架开发非常普遍了,除去那些传统老项目使用的SSH啥的外,大部分都是使用SSM了,SSM的框架其实很少有做到分离架构设计的,前后端交互服务端的用户状态大部分还是基于Session/Cookies机制来做的,在前几年我们Java工程师太苦逼了,既要写后端接口,前端页面、JS、CSS...原创 2019-12-16 18:01:03 · 4615 阅读 · 0 评论 -
SpringBoot 系列教程(八十):SpringBoot三种注解启动方式
SpringBoot程序启动方式有以下三种:1. 使用@EnableAutoConfiguration 注解启动(太局限了,只能扫描当前类)2. 使用@EnableAutoConfiguration+@ComponentScan扫包注解启动(太繁琐,要加扫包范围,加多个注解)3. 使用@SpringBootApplication注解启动(默认启动方式,最简单)原创 2019-12-12 23:07:36 · 871 阅读 · 0 评论 -
SpringBoot 系列教程(七十九):SpringBoot与SpringMVC的关系
一、什么是SpringBootSpringBoot是一个快速开发框架,能够帮助程序员在日常web开发中快速且及简单的方式整合第三方框架、其中SpringBoot内嵌入了常用的应用服务器(tomcat、jetty、undertow)、完全简化xml配置,采用全注解形式加载、初始化、读取、配置Bean等相关配置,其中设计者采用Maven依赖封装的原理快速整合第三方常用框架,也就是将需要使用的一个框架...原创 2019-12-12 21:19:35 · 774 阅读 · 0 评论 -
SpringBoot 系列教程(七十八):Spring Boot整合Memcached缓存
一、前言最近花了点时间研究了一下Memcached缓存框架,首先先感叹一下,这个框架是真的轻量级,当我下载下来之后轻量级到让我大吃一惊,他的安装包只有300多KB,哇,真是太轻量级了;然后稍微研究了一下这个Memcached框架的简单用法,发现这个也是一个存储键/值 对的HashMap,下面先介绍一下关于Memcached的相关概念,然后带着大家学习一下基本的缓存增删改查用法;二、什么是Mem...原创 2020-01-07 18:24:44 · 914 阅读 · 0 评论 -
SpringBoot 系列教程(七十七):SpringBoot整合ehcache缓存
一、关于缓存SpringBoot可支持多种缓存,想更全面的了解可参考文档:SpringBoot缓存配置中文版,或者SpringBoot官网文档缓存篇在SpringBoot中常用的缓存有很多种,像Ehcache,Redis,GuavaCache,JCache等等,其中常用的就是EhCache和Redis了,Redis需要安装redis服务器,而EhCache不依赖任何第三方软件,只需引入jar即可。原创 2019-12-11 17:17:30 · 1024 阅读 · 0 评论 -
SpringBoot 系列教程(七十六):SpringBoot整合定时任务Quartz
Quartz是一款功能强大的任务调度器框架,它完全由Java写成,并设计用于J2SE和J2EE应用中,它可以实现较为复杂的调度功能,如每月一号执行、每天凌晨执行、每周五执行等等这些复杂场景,还支持分布式调度。它提供了巨大的灵 活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,EJB作业预构 建,JavaMail及其它,支持cron-like表达式等等。原创 2019-12-11 12:40:26 · 1018 阅读 · 6 评论 -
SpringBoot 系列教程(七十五):SpringBoot整合定时任务Scheduled
一、前言在以前的项目开发中,Spring+SpringMVC+Mybatis用来开发的居多,在这种传统的SSM框架中如果要实现定时任务,一般有两种方式可选,第一种是使用Spring框架自带的定时任务处理框架 @Scheduled ,这种适合只有个别定时任务需求的场景,直接使用一个定时任务注解 @Scheduled 即可实现,比较容易上手;另外一种就是比较注明的定时任务调度框架Quzrtz了,需要...原创 2019-12-11 00:14:50 · 731 阅读 · 0 评论 -
SpringBoot使用新版本mysql的jdbc驱动时报时区问题
一、问题描述在使用SpringBoot集成Jpa时,引入了mysql的链接驱动依赖,SpringBoot的默认版本是2.2.2.RELEASE,其mysql的版本默认是8.0.18,启动项目报错,项目配置如下:其application.yml配置如下:二、启动报错**启动项目报错,原因是时间区域时差问题: **java.sql.SQLException: The server ti...原创 2019-12-11 12:30:20 · 776 阅读 · 0 评论 -
Spring+ Shiro 整合配置部分事务失效分析及解决方案
spring + shiro 配置中部分事务失效分析及解决方案Spring Boot整合shiro后导致@Cacheable、@Transactional等注解失效的问题翻译 2019-12-09 16:10:51 · 509 阅读 · 0 评论