![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
文章平均质量分 72
maple 枫
Everything has to be perfect.
展开
-
AQS学习
提供一个框架,用于实现依赖于先进先出 (FIFO) 等待队列的阻塞锁和相关同步器(信号量、事件等)。此类旨在成为大多数依赖单个原子 int 值来表示状态的同步器的有用基础。子类必须定义更改此状态的protected的方法,并根据获取或释放此对象来定义该状态的含义。鉴于这些,此类中的其他方法执行所有排队和阻塞机制。子类可以维护其他状态字段,但只有使用方法 getState、setState 和 compareAndSetState 操作的原子更新的 int 值在同步方面被跟踪。原创 2022-12-15 16:34:01 · 457 阅读 · 0 评论 -
【Spring】实例化、初始化、InitializingBean等执行顺序(二)
下面我们从源码的角度证明我们上篇文章的正确性。看到了熟悉的 refresh() 方法继续走下面的 doCreateBean()先看populateBean()总结:上面的源码图可以对应到上篇文章的执行顺序。1、实例化之前 ——>实例化(构造函数) ——> 实例化之后2、初始化之前 ——>PostConstruct ——>实现了InitializingBean接口 ——&g...原创 2021-11-09 15:22:19 · 1636 阅读 · 0 评论 -
【Spring】实例化、初始化、InitializingBean等执行顺序(一)
今天先来测试一下Spring 初始化IOC流程中,构造函数、@PostConstruct、InitializingBean接口,InstantiationAwareBeanPostProcessor接口,initMethod 等执行顺序。pom <dependency> <groupId>org.springframework</groupId> <artifactId>spring-c.原创 2021-10-30 16:59:29 · 1816 阅读 · 0 评论 -
【Spring】Ioc容器的依赖注入
1原创 2021-06-13 12:33:20 · 312 阅读 · 0 评论 -
【Spring】Ioc容器的初始化过程:BeanDefinition在IoC容器中的注册
1原创 2021-06-13 12:28:06 · 294 阅读 · 0 评论 -
【Spring】Ioc容器的初始化过程:BeanDefinition的载入和解析
未完待续。。。原创 2021-05-16 21:48:41 · 347 阅读 · 0 评论 -
【Spring】Ioc容器的初始化过程:BeanDefinition的Resource定位
以编程的方式使用DefaultListableBeanFactory时,首先定义一个Resource来定位容器使用的BeanDefinition。这时使用的是ClassPathResource,这意味着Spring会在类路径中去寻找以文件形式存在的BeanDefinition信息。ClassPathResource res = new ClassPathResource("beans.xml");这里定义的Resource并不能由DefaultListableBeanFactory直接使用,Spr原创 2021-05-16 21:44:49 · 267 阅读 · 1 评论 -
【Spring】Ioc容器的初始化过程
未完待续。。。原创 2021-05-16 09:44:48 · 597 阅读 · 0 评论 -
【Spring】IoC容器系列的设计与实现:BeanFactory和ApplicationContext
在Spring IoC容器的设计中,我们可以看到两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本功能,另一个是ApplicationContext应用上下文,它作为容器的高级形态而存在。应用上下文在简单容器的基础上,增加了许多面向框架的特性,同时对应用环境做了许多适配。有了这两种基本的容器系列,基本上可以满足用户对IoC容器使用的大部分需求了。下面,我们就对Spring IoC容器中这两种容器系列的设计与实现进行一个简要的分析。Spring的IoC容原创 2021-05-16 09:43:00 · 319 阅读 · 1 评论 -
【spring】Spring IoC容器概述
1、Ioc 容器和依赖反转模式2、Spring IoC的应用场景以后再补充。。。原创 2021-05-15 11:36:08 · 131 阅读 · 0 评论 -
【spring】Spring核心
spring核心 包括 IOC 和 AOP,以后再补充。。。原创 2021-05-15 11:34:14 · 134 阅读 · 0 评论 -
【读写分离】SpringBoot整合多数据源实现读写分离(二)
上篇文章我们使用SpingBoot + Mybatis + Maven 来做多数据源的读写分离,【读写分离】SpringBoot整合多数据源实现读写分离(一)这次呢我们使用SpingBoot + MybatisPlus + Maven 来做,由于比较简单,我们直接开始。数据源配置文件 application.propertiesspring.datasource.dynamic.primary=masterspring.datasource.dynamic.strict=falses..原创 2021-03-06 16:18:03 · 1107 阅读 · 2 评论 -
【读写分离】SpringBoot整合多数据源实现读写分离(一)
背景:实际项目中大都读多写少,如果查询出现瓶颈之后,我们可以考虑使用读写分离。比如有三台Mysql服务器A、B、C,一主二从,先配置好主从复制之后,再来做读写分离,A用来做update操作,B和C用来做select操作。网上很多文章都写的比较乱,这里我尽量简单优雅的完成。分析:有很多中间件可以使用,比如:Mycat,当当的Sharding-JDBC,美团的DBProxy等,但是都需要依赖第三方组件,增加学习money成本,这里我们使用Spring提供的轻量级数据路由类 Abstr..原创 2021-03-05 16:51:34 · 1422 阅读 · 7 评论 -
如何优雅的打印日志?
一般我们程序里打印日志可以帮助我们排查问题,我们也可以通过日志,来判断接口的成功、耗时等情况,而且按照一定的日志格式来打印的话,还可以用于告警平台,可以计算接口总量、成功量、失败量、失败率、耗时等,通过短信、钉钉等通知到我们。那么接下来,我们就来看看怎么样才能规范且优雅的打印我们的日志。一、日志目录的设置一般我们使用Spring来开发管理后台或者api时,都会遵循一些分层范式, api -> manager -> service -> dao,那么根据这种分层,我们考虑为我们的原创 2021-01-17 13:51:45 · 1975 阅读 · 2 评论 -
使用 spring EL 表达式 完成动态配置(四)
使用 spring EL 表达式 完成动态配置(一)使用 spring EL 表达式 完成动态配置(二)使用 spring EL 表达式 完成动态配置(三)背景:上篇文章,我们已经做出来基本的功能,DB里的规则可以这么配置:#UserFact.exists == true and #UserFact.status == "ENABLE"但是呢我们发现,一条配置里只能配置一个Fact,UserFact,而平时的项目肯定会有类似这样的组合规则:用户存在且可用,账户余额还要大于10块钱,原创 2020-09-21 21:57:28 · 830 阅读 · 0 评论 -
使用 spring EL 表达式 完成动态配置(三)
使用 spring EL 表达式 完成动态配置(一)使用 spring EL 表达式 完成动态配置(二)背景:上篇文章完成了SpEL的demo,并成功把程序运行成功,这篇文章呢,我们会对demo进行优化,起看看实际的项目中该怎么写这个代码。想要达到的要求:1、一套 鉴权 代码,可以对 everything 进行做 鉴权2、移除代码中的硬编码,把功能抽象出来3、新增了新的鉴权,只需要修改DB,然后重启工程,不需要修改代码思路:1、初始化的时候,把场景和规则放进本地缓存;原创 2020-09-16 20:35:45 · 892 阅读 · 0 评论 -
使用 spring EL 表达式 完成动态配置(二)
使用 spring EL 表达式 完成动态配置(一)上篇文章带大家去了解了SpEL的基本功能和用法,本篇文章我们将会完成一个小的需求;需求:1、当用户付款的时候,我们去校验该用户是否存在,且状态是否可用。2、当用户想去使用我们app的新功能时,我们要校验用户是否满18岁,且国籍是否是中国人分析:方法一:我们可以在用户付款的时候,支付服务去查询用户服务的queryUser接口,支付服务去判断查询结果是否为空,状态是否可用;我们在用户点击新功能时,app通过网关查询查询用户服务的原创 2020-09-12 21:10:22 · 819 阅读 · 0 评论 -
使用 spring EL 表达式 完成动态配置(一)
使用 spring EL 表达式 完成动态配置原创 2020-09-06 22:11:31 · 2454 阅读 · 0 评论