Spring
文章平均质量分 59
yxh13521338301
只分享干货的码农
展开
-
@Async带来的循环依赖问题
需要用的springBean的生命周期和AOP的源码知识,迷茫的猿友可以自行上网查阅。spring解决了单例的循环依赖,但当循环依赖的bean中出现@Async时,就会抛出异常原创 2021-06-01 20:08:35 · 2298 阅读 · 0 评论 -
spring事务传播机制和隔离级别
7种事务的传播机制REQUIRED(默认):支持使用当前事务,如果当前事务不存在,创建一个新事务。SUPPORTS:支持使用当前事务,如果当前事务不存在,则不使用事务。MANDATORY:中文翻译为强制,支持使用当前事务,如果当前事务不存在,则抛出Exception。REQUIRES_NEW:创建一个新事务,如果当前事务存在,把当前事务挂起。NOT_SUPPORTED:无事务执行,如果当前事务存在,把当前事务挂起。NEVER:无事务执行,如果当前有事务则抛出Exception。NEST.转载 2020-06-01 09:22:22 · 251 阅读 · 0 评论 -
注解方式启动spring时源码查找其IOC的容器
程序入口public class App { public static void main(String[] args) { AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext(SpringConfig.class); String[] names = annotationConfi..原创 2020-05-13 11:25:26 · 169 阅读 · 0 评论 -
spring循环依赖问题及其处理方案
源于蚂蚁课堂的学习,点击这里查看1.问题描述存在多个类,如A、B。。。他们的属性存在环式的依赖关系,A中B类的属性,B中有A类属性。这样当初始化对象的时候,程序先去创建A,假设AB都是单例情况,发现A中有个B属性,再去创建B,而B中又有A的属性,而A尚未创建完成,那么就会出现相互等待的死循环。假设AB都是多例情况,发现A中有个B属性,再去创建B,而B中又有A的属性,而A是多例,...原创 2020-04-02 16:11:42 · 1158 阅读 · 3 评论 -
源码剖析springAOP的执行流程(注解方式启动spring)
源于蚂蚁课堂的学习,点击这里查看1.源码流程2.总结1.@EnableAspectJAutoProxy开启aop2.底层是将AspectJAutoProxyRegistrar注入spring容器3.AspectJAutoProxyRegistrar通过AopConfigUtil...原创 2020-03-31 16:05:40 · 614 阅读 · 0 评论 -
spring事务源码剖析(注解方式启动spring)
源于蚂蚁课堂的学习,点击这里查看1.源码流程2.总结1.通过注解EnableTransactionManagement开启事务2.@EnableTransactionManagement底层是将TransactionManagementConfigurationSelector注册至IOC3.TransactionManageme...原创 2020-03-31 09:43:13 · 221 阅读 · 0 评论 -
JAVASE 仿真springAOP的通知
源于蚂蚁课堂的学习,点击这里查看1.前言springAOP相比大家都很熟悉,其中的通知也是一些老生常谈的知识点了,最近研究了AOP源码,特做记录所谓仿真,就是使用JAVASE的知识去实现aop类似的通知作用,AOP有两大设计模式,即代理和责任链,而通知的调用顺序实则就是责任链的一个复杂应用2.代码/** * @Description 目标对象 * @Author...原创 2020-03-27 15:19:22 · 185 阅读 · 0 评论 -
Spring bean的作用域
源于蚂蚁课堂的学习,点击这里查看1.@Scope设置springbean的作用域可以在bean上加注解去设置此bean的作用域,默认为单例 singleton2.singleton 单例(默认)在启动容器时就同时自动创建了一个bean的对象,在springIOC容器中仅存在一个此bean的实例,Bean以单例方式存在3.prototype ...原创 2020-03-25 15:13:42 · 126 阅读 · 0 评论 -
源码分析springbean的生命周期
源于蚂蚁课堂的学习1.主要剖析注解方式启动spring容器ApplicationContext context = AnnotationConfigApplicationContext(自定义的配置类.class);2.spring容器启动时,对bean进行创建的流程3.总结描述1.通过bean的构造实例化...原创 2020-03-25 14:52:15 · 278 阅读 · 0 评论 -
使用spring的观察者模式(事件监听)
以实际案例出发,商城商家发货后,会通过短信和邮件方式通知买家。但后期可能会增加微信通知和qq通知,想到设计模式中的观察者模式,于是结合spring,整理一下代码流程1.定义事件 (继承ApplicationEvent抽象类 )import org.springframework.context.ApplicationEvent;import java.util.Map;...原创 2019-12-11 13:57:00 · 540 阅读 · 0 评论 -
spring定时任务执行两次问题
在项目中,需要把所有子工程的定时任务都抽取出来,作为一个新的工程,解耦合。所有的步骤都是结束后,却发现一个问题,定时任务在一个时间点重复执行两次。问题来源:DispatherServlet和ContextLoaderListener重复加载spring的核心配置文件,而spring的核心配置文件中包含了定时任务的相关配置,导致定时任务重复执行两次。解决方法:1.去掉Dispat...原创 2019-01-07 17:18:01 · 804 阅读 · 0 评论 -
Spring集成Quartz定时任务的Demo
一、首先加入依赖JAR包<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>3.0.5.RELEASE</version></dependency&...原创 2018-06-21 15:55:59 · 380 阅读 · 0 评论 -
Spring入门学习
一、Spring介绍Spring是一个开源框架。并且是一个轻量级的框架,能够一站式的分层部署项目。能够整合现在主流框架起到一个粘合剂的作用。轻量级 空间占用角度: spring的核心包不到1MB,占用计算机的资源特别小 对容器的依赖角度: 对容器依赖性越低 越轻量二、IOC1、概念 IOC就是控制反转将对象创建的权利交给Spr...原创 2018-06-12 16:15:28 · 4155 阅读 · 0 评论