
Spring
文章平均质量分 82
皮皮皮的代码
一点点来
展开
-
Spring-本地可以发送邮件,服务器无法发送邮件问题
1. 问题背景1.1 Maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> <version>2.1.6.RELEASE</version>原创 2021-05-08 15:24:24 · 1407 阅读 · 1 评论 -
Spring-Bean生命周期
1. 介绍如上图所示,Bean 的生命周期还是比较复杂的,下面来对上图每一个步骤做文字描述: Spring启动,查找并加载需要被Spring管理的bean,进行Bean的实例化 Bean实例化后对将Bean的引入和值注入到Bean的属性中 如果Bean实现了BeanNameAware接口的话,Spring将Bean的Id传递给setBeanName()方法 如果Bean实现了BeanFactoryAware接口的话,Spring将调用setBeanFactory(转载 2021-04-05 23:03:48 · 114 阅读 · 0 评论 -
Spring-AOP原理
1. 介绍1.1 什么是AOPAOP (Aspect Orient Programming),直译过来就是面向切面编程。AOP 是一种编程思想,是面向对象编程(OOP)的一种补充。面向对象编程将程序抽象成各个层次的对象,而面向切面编程是将程序抽象成各个切面。从该图可以很形象地看出,所谓切面,相当于应用对象间的横切点,我们可以将其单独抽象为单独的模块。1.2 为什么需要AOP想象下面的场景,开发中在多个模块间有某段重复的代码,我们通常是怎么处理的?显然,没有人会靠“复制粘贴”吧。在传.原创 2021-04-04 22:27:47 · 175 阅读 · 0 评论 -
Spring-Bean循环依赖
1. 介绍1.1 什么是Bean循环依赖两个或则两个以上的对象互相依赖对方,最终形成闭环。例如 A 对象依赖 B 对象,B 对象也依赖 A 对象。1.2 会有什么问题对象的创建过程会产生死循环,类似如下1.3 Spring是如何解决的通过三级缓存提前暴露对象来解决。 一级缓存存的是成品对象(实例化和初始化都完成了的),我们应用中使用的对象就是一级缓存; 二级缓存中存的是半成品(实例化,但是还未初始化),用来解决对象创建过程中的循环依赖问题; 三级缓.原创 2021-03-05 15:52:50 · 2601 阅读 · 0 评论 -
Spring-bean定义
1. 介绍1.1 为什么使用beanDefinition对spring bean进行建模由于普通的Class对象无法完成bean的抽象,例如bean的作用域、是否懒加载等,故而需要beanDefinition来抽象这些信息,以便于Spring能完美的实例化一个bean。1.2 Spring如何实现bean定义Spring设计了一个BeanDefinition的类用来存储类的类型、名字、构造方法等等。Spring定义了BeanDefinition后置处理器(BeanDefinitionR.原创 2021-02-26 15:26:38 · 263 阅读 · 0 评论