Spring
文章平均质量分 75
Is A Old HaiYun
这个作者很懒,什么都没留下…
展开
-
实现@Service、@Autowired、@Transactional注解类
目录什么是注解注解的基本元素元注解@TargetRetention自定义注解实现声明注解改造demo测试什么是注解注解可以用来修饰类,方法,属性等,可以看做是一个特殊的标记,程序在编译或运行时检测到这些标记,从而进行一些特殊的操作。注解的基本元素1、修饰符,注解的修饰符必须是public,不写默认为public2、关键字@interface3、注解名称4、注解内容例如:public @interface Service { String value() default "";}原创 2021-04-02 18:31:52 · 1116 阅读 · 1 评论 -
AOP源码剖析——代理对象创建
代理对象创建原创 2021-03-30 16:23:35 · 115 阅读 · 0 评论 -
spring声明式事务控制
spring声明式事务@EnableTransactionManagement加载事务控制组件AutoProxyRegistrar 组件ProxyTransactionManagementConfiguration 组件事务解析器 AnnotationTransactionAttributeSource事务拦截器 TransactionInterceptor@EnableTransactionManagement@Target(ElementType.TYPE)@Retention(Retention原创 2021-03-30 00:48:04 · 97 阅读 · 0 评论 -
ioc循环依赖问题
ico循环依赖问题什么是循环依赖Spring循环依赖的场景循环依赖的处理机制什么是循环依赖循环依赖就是循环引用,两个或者两个以上的Bean互相引用对方,最终形成闭环。例如:A依赖于B,B依赖于C,C依赖于A注意:这里说的不是函数的循环调用,而是对象的互相引用Spring循环依赖的场景构造器的循环依赖(构造器注入)Field属性循环依赖(set注入)其中构造器的循环依赖是无法解决的,只能报BeanCurrentlyInCreationException异常,prototype类型的bean的原创 2021-03-26 16:26:45 · 249 阅读 · 0 评论 -
Ioc源码剖析——Bean创建流程
Bean创建流程Bean的创建流程在AbstractApplicationContext#finishBeanFactoryInitialization方法中然后我们进入finishBeanFactoryInitialization方法中protected void finishBeanFactoryInitialization(ConfigurableListableBeanFactory beanFactory) { .......... // Instantiate all r原创 2021-03-26 14:38:33 · 91 阅读 · 0 评论 -
Ioc源码剖析——BeanFactory创建流程
BeanFactory创建流程关键步骤过程分析时序图关键步骤BeanFactory注册涉及到几个关键的的步骤1、Resource定位:就是找到定义JavaBean信息的xml文件,并将其封装为Resource对象2、BeanDedefinition载入:把用户定义好的Javabean表示为Ioc容器内部的数据结构3、注册BeanDefinition到ioc容器过程分析分析BeanFactory的创建流程不是简单的去看如何new一个BeanFactory对象,而是看BeanDefinition如原创 2021-03-25 14:45:41 · 230 阅读 · 0 评论 -
Ioc源码剖析——Ioc容器初始化主流程
Ioc容器初始化流程Ioc容器体系Ioc容器体系Ioc容器是Spring的核心组件,它是抽象了对于对象的管理,依赖关系的管理的一种解决方案。在Ioc体系中BeanFactory是顶级接口,也是根容器,不能被实例化。BeanFactory定了实现一个Bean的基础操作,而他下面的子容器实现可以添加额外的功能,更具具体实现要求不同,添加不同的功能,这也体现了spring框架的一种优雅性,我们只需根据我们的功能要求去调用对应的实现接口,而不用把所有的实现都放在一个接口中。例如我们常用的Applicatio原创 2021-03-20 16:04:45 · 99 阅读 · 0 评论 -
ioc高级特性——延迟加载、FactoryBean、后置处理器
Ioc高级特性Lazy-Init延迟加载lazy-init demoFactoryBeanLazy-Init延迟加载Bean的延迟加载,通常bean会在ApplicationContext容器启动时,默认将bean进行实例化,并加载到SingletonObjects单例池中,但是如果我们为bean配置了Lazy-init以后,就不会再容器启动时创建并配置bean,而是会在我们第一次getbean的时候进行加载。下面我们用一个例子来进行演示lazy-init demo首先我们新建两个类,一个叫Com原创 2021-03-18 13:28:33 · 342 阅读 · 1 评论 -
自定义ioc/aop(二)
自定义AOP什么是AOP实现原理自定义实现AOPTransationManager 事务控制管理器ProxyFactory 动态代理工厂Beans.xml测试什么是AOPaop:Aspect oriented Programming 面向切面编程,区别于我们熟知的oop面向对象,aop是对于oop的一种补充。oop是一种垂直的继承关系,子类继承父类,可以避免大多数的重复代码,但是有一些重复代码的问题,无法通过继承解决,比如说A类是父类,B、C是子类,A类已有的方法,B、C不需要重复去实现,但是如果A里的原创 2021-03-12 15:35:16 · 171 阅读 · 0 评论 -
自定义ioc/aop(一)
自定义ioc原创 2021-03-12 14:21:06 · 1172 阅读 · 8 评论