- 博客(22)
- 资源 (1)
- 收藏
- 关注
原创 transactionStatus.setRollbackOnly()与transactionManager.rollback()区别
优先使用setRollbackOnly() 在需要事务回滚但需继续执行非数据库操作(如日志记录)时,使用setRollbackOnly()更安全。谨慎使用transactionManager.rollback() 仅在明确需要立即终止事务且无后续操作时使用,避免事务状态混乱结合传播行为调整策略 嵌套事务中,根据业务需求选择合适的传播行为(如NESTED或REQUIRES_NEW),避免rollback-only状态冲突。
2025-03-22 13:03:21
559
原创 什么是缓存穿透、缓存击穿、缓存雪崩?如何解决 ?
缓存穿透定义:用户请求的数据既不在缓存也不在数据库中,导致每次请求直接穿透缓存层访问数据库,可能引发数据库过载(如恶意攻击大量非法Key)。主要原因:无效请求绕过缓存,高频访问不存在的数据。缓存击穿定义热点数据在缓存中过期失效的瞬间,大量并发请求直接访问数据库,导致数据库压力骤增(如秒杀商品缓存过期)主要原因:单个热点Key失效引发的高并发冲击。缓存雪崩定义大量缓存数据同时过期或Redis服务宕机,导致所有请求直接访问数据库,可能引发数据库崩溃(如促销活动时所有商品缓存同时失效)主要原因。
2025-03-14 14:36:42
409
原创 什么是Spring的循环依赖?如何解决Spring的循环依赖问题
循环依赖是指两个或多个Bean之间形成相互依赖的闭环。直接循环依赖:Bean A依赖Bean B,Bean B也依赖Bean A。间接循环依赖:Bean A依赖Bean B,Bean B依赖Bean C,Bean C又依赖Bean A。自我依赖:Bean A的字段或构造方法中直接注入自身实例。当Spring容器尝试初始化这些Bean时,会因无法确定创建顺序而抛出BeanCurrentlyInCreationException异常。
2025-03-12 23:16:40
917
原创 设计模式-SpringBoot中模版方法+工厂模式+策略模式组合使用案例
模板方法抽象接口:将模板方法的框架定义在抽象接口中,具体的策略类只需实现具体的步骤。动态注入策略类型:策略的类型通过 @Component 注解动态注入,而不是在工厂中写死。扩展性:新增策略时,只需创建一个新的策略类并标记 @Component 注解,无需修改工厂类。灵活性:客户端可以通过参数动态选择不同的策略。
2025-03-12 15:07:49
422
原创 设计模式-模板方法模式
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以不改变一个算法的接口就可以重新定义该算法的某些特定步骤。创建一个抽象类 AbstractTemplate,它定义了算法的框架,并包含一些抽象方法供子类实现。// 模板方法,定义了算法的框架step1();step2();step3();// 具体步骤1,子类必须实现// 具体步骤2,子类必须实现// 具体步骤3,子类可以选择重写。
2025-03-12 14:57:29
187
原创 设计模式-观察者模式
观察者模式又叫做发布-订阅(Publish/Subscribe)模式。观察者模式(Observer Pattern)是一种行为设计模式,用于定义对象间的一对多依赖关系。当一个对象(称为“被观察者”或“主题”)状态发生变化时,所有依赖它的对象(称为“观察者”)都会自动收到通知并更新。
2025-03-12 14:43:53
218
原创 设计模式-策略模式
策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。
2025-03-12 14:14:35
177
原创 Linux虚拟机环境安装
我们可以通过VMWare来安装,但是通过VMWare安装大家经常会碰到网络ip连接问题,为了减少额外的环境因素影响,Docker内容的讲解我们会通过VirtualBox结合Vagrant来安装虚拟机。安装VirtualBox和Vagrant,傻瓜式安装。安装完成后需要重启计算机。在cmd命令窗口输入vagrant命令弹出如下内容表示vagrant安装成功vagrant up找到对应的Vagrantfile文件修改完之后关闭virtualbox,用命令行 vagrant up 启动虚拟机。
2024-01-20 18:01:09
1115
原创 Oracle的简单使用
Oracle的简单使用Oracle的简单使用脚本一、oracle的简单使用脚本?二、使用步骤总结Oracle的简单使用脚本文章目录Oracle的简单使用脚本一、oracle的简单使用脚本?二、使用步骤总结提示:以下是本篇文章正文内容,下面案例可供参考一、oracle的简单使用脚本?二、使用步骤脚本如下:--创建表空间create tablespace codeleedatafile 'c:\codelee.dbf'size 100mautoextend onnext 10m;-
2021-09-15 00:12:47
200
原创 SpringBoot中快速使用多线程
线程与多线程线程是系统对代码的执行进程,如果将系统当做一个员工,被安排执行某个任务的时候,他不会对任何其他的任务作出响应。只有当这个任务执行完毕,才可以重新给他分配任务。每一个程序都有一个主线程,负责执行程序必要的任务。当我们处理一个消耗大的任务(如上传或下载图片),如果让主线程执行这个任务,它会等到动作完成,才继续后面的代码。在这段时间之内,主线程处于“忙碌”状态,也就是无法执行任何其他功能。体现在界面上就是,用户的界面完全“卡死”。多线程是指,将原本线性执行的任务分开成若干个子任务...
2021-09-03 22:50:46
528
原创 springBoot日志配置
@RunWith(SpringRunner.class)@SpringBootTestpublic class SpringBoot03LoggingApplicationTests { //日志记录器 Logger logger = LoggerFactory.getLogger(getClass()); @Test public void contextLoads() { // 1. 下面定义的都是日志级别,由低到高:trace< debu.
2021-06-26 09:48:13
178
原创 多种方式激活profile
server: port: 8081 # 默认配置的端口号spring: profiles: active: dev # 激活哪个 profile, 当前激活的是 prod 开发环境---server: port: 8082spring: profiles: dev # 指定属于哪个环境 , dev环境使用---server: port: 8088spring: profiles: prod # 指定属于哪个环境 , prod环境使用命令行参数指.
2021-06-26 09:37:29
434
原创 自定义配置类向容器注入组件
Spring Boot 推荐使用注解的方式向容器中注入组件, 操作如下:使用 @Configuration 配置类,来表示对应Spring配置文件使用 @Bean 向容器中注入组件对象** * @Configuration 它是spring里的注解,用于标识当前类是一个配置类,来表示对应spirng配置文件 */@Configurationpublic class EmpConfig { /** * @Bean 标识的方法用于向容器中注入组件 * 1. 返.
2021-06-23 23:21:51
185
原创 @ImportResource 使用xml配置
SpringBoot提倡零配置, 即无xml配置,但是在实际开发中,可能有一些特殊要求必须使用 xml 配置;这时我们可以通过 Spring 提供的 @ImportResource 来加载 xml 配置文件。@ImportResource :加载Spring的xml配置文件内容加载到容器中使用;创建业务类: com.mengxuegu.springboot.service.EmpServicepublic class EmpService { public void add(){
2021-06-23 23:17:37
1127
原创 @PropertySource加载局部配置文件
@PropertySource(value = {"classpath:emp.properties"})@Componentpublic class Emp { private String lastName; private Integer age; private Double salary; private Boolean boss; private Date birthday; private Map map; private List.
2021-06-23 23:06:52
190
原创 JSR303数据校验_配置文件注入的值
@Validated@Component@ConfigurationProperties(prefix = "emp")public class Emp { /*** * 类似于Spring框架中使用配置文件中的数据注入方式 * <bean class="Emp"> * <property name="lastName" value="字面量/#{SpEL} spring表达式/${key}从配置文件中获取"></p..
2021-06-23 23:03:39
92
原创 SpringBootyaml 配置文件
/** * @ConfigurationProperties 告诉SpringBoot将配置文件中的对应属性值,映射到这个组件类中, * 进行一一绑定 * prefix = "emp" : 配置文件中的前缀名,配置了哪个前缀就会与下面的所有属性进行一一映射 *@Component必须把当前组件作为SpringBoot中的一个组件,才能使用容器中的 @ConfigurationPerties注解 * * */@PropertySource(value = {"classpath:..
2021-06-23 22:56:27
163
原创 JpaSpecificationExecutor 方法列表
Specifications动态查询JpaSpecificationExecutor 方法列表Specification :查询条件JpaSpecificationExecutor 方法列表 T findOne(Specification<T> spec); //查询单个对象 List<T> findAll(Specification<T> spec); //查询列表 //查询全部,分页 //pageable:分页参数 //返回值:分页pageBe
2021-04-27 22:46:02
668
解决ios上传图片旋转问题。资源.zip包含后台代码,前台代码,js 和工具类
2019-05-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人