查询到最新的12条

适配器模式在 JDK 及 spring 源码中的引用

适配器模式 适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。 适配器模式在 spring 源码中的应用:DisposableBeanAdapter 当 spring 容器启动时,会将所有 “DisposableBean” 添加到 disposableBeans 集合,可能有各种类,比如: 通过 @Bean 注入的实现了 close 方法的 UserService、实现了 继续阅读

SpringBoot 中的多线程事务处理太繁琐?一个自定义注解直接搞定!

前言 我们开发的时候常常会遇到多线程事务的问题。以为添加了@Transactional注解就行了,其实你加了注解之后会发现事务失效。 原因:数据库连接spring是放在threadLocal里面,多线程场景下,拿到的数据库连接是不一样的,即是属于不同事务。 本文是基于springboot的@Async注解开启多线程,,并通过自定义注解和AOP实现的多线程事务,避免繁琐的手动提交 继续阅读

基础-进阶-升级~图解SpringSecurity的RememberMe流程|源码

前言 今天我们来聊一下登陆页面中“记住我”这个看似简单实则复杂的小功能。 如图就是博客园登陆时的“记住我”选项,在实际开发登陆接口以前,我一直认为这个“记住我”就是把我的用户名和密码保存到浏览器的 cookie 中,当下次登陆时浏览器会自动显示我的用户名和密码,就不用我再次输入了。 直到我看了 Spring Security 中 Remember Me 相关的源码,我才意识到之前的理解全错了,它的作用其 继续阅读

学习Spring之声明式事务

什么是事务? 一个业务有一组操作,要么都成功,要么都失败 事务的四大特性:ACID A 原子性:一组操作,要么都成功,要么都失败 C 一致性 :事务的前后要保证事务的一致性 I 隔离性 :很重要,两个事务之间的数据不能被相互影响 D 持久性 什么是声明式事务? 事务分两类: 编程式事务: 继续阅读

springboot集成测试容器重启问题的处理

背景 spring boot test的项目中常用的测试框架, 最近在写集成测试的时候发现一个比较奇怪的问题,当我在运行多个测试用例的时候会偶尔重新启动整个容器上下文,由于后期业务逐渐复杂,大量的测试用例需要运行,这个问题直接导致回归测试的效率降低。 举个例子: 几个类: @RunWith(SpringRunner.class) @SpringBootTest(classes = TestApplication.class) 继续阅读

@SpringBootTest 注解报红问题及解决

打注解@SpringBootTest的时候不会出现提示 但是又导入了 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> 这个开发场景,于 继续阅读

测试springboot项目出现Test Ignored的解决

测试springboot项目出现Test Ignored 今天在写springBoot项目运行测试类时出现了以下问题: 原因是我在建包时把启动类放到了servlet包下,如图 需要把这个启动目录放到根目录下,移出来问题就解决了 测试类不报错只提示Test ignored的解决 在点击运行测试方法后出现如下错误: 解决方法: 在这个位置需要有一个Java类,名字可以随便写。 继续阅读

MySQL数据库——事务

MySQL数据库——事务 一、事务的概念二、事务的ACID特点1.原子性2.一致性3.隔离性4.持久性5.事务隔离级别的作用范围 三、事务级别的查看与设置1.查询全局事务隔离级别2.查询会话事务隔离级别3.设置全局事务隔离级别4.设置会话事务隔离级别 四、事务控制语句1.测试提交事务2.测试回滚事务3.测试多点回滚 五、使用 set 设置控制事务 一、事务的概念 事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一 继续阅读

SpringBoot 如何使用 Spring Cloud Stream 处理事件

SpringBoot 如何使用 Spring Cloud Stream 处理事件 在分布式系统中,事件驱动架构(Event-Driven Architecture,EDA)已经成为一种非常流行的架构模式。事件驱动架构将系统中的各个组件连接在一起,以便它们可以相互协作,响应事件并执行相应的操作。SpringBoot 也提供了一种方便的方式来处理事件——使用 Spring Cloud Stream。 Spring 继续阅读

SpringMvc学习——在idea中新建springWeb项目 浏览器请求 和 服务器响应 Spring

目录 引出基础知识:三层架构和MVC1. 三层架构2.MVC模型 springWeb项目IDEA搭建1.新建一个普通的maven项目2.导入包,pom.xml文件3.写主启动类Main.java文件@SpringBootApplication4.写application.yml文件spring的配置文件5.启动,运行main.java就可以启动 SpringMvc的浏览器请求初步1.初识springMvc @RequestMappi 继续阅读

Spring Boot JPA如何把ORM统一起来

目录 JPA介绍 Spring Data JPA 在项目中引用Spring JPA JPA介绍 JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。他的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate,TopLink,JDO等OR 继续阅读

Spring Boot Filter转403异常解决方法

本文将从多个方面详细阐述Spring Boot Filter转403异常的解决方法。 一、配置Filter 在Spring Boot项目中配置Filter时,需要注意的是配置顺序和优先级。在Servlet中,Filter是按照配置文件中的自然顺序起作用,所以一般情况下我们要设置Filter的在web.xml中的先后顺序,以此来控制Filter的优先级。但是在Spring Boot中,不同的Filter之间的优先级是存在限制的。因为Spring Boot会将内置 继续阅读