
Spring源码系列
IT拉菲
这个作者很懒,什么都没留下…
展开
-
spring提供干涉Spring工厂的方法---草稿版
spring提供了两种方式允许我们来参与bean工厂的建设1,BeanFactoryPostProcessor,实现这个接口,重写它的方法,可以拿到beanFactory对象,修改bd的属性2,ImportBeanDefinitionRegistrar实现这个接口,重写它的方法,可以使beanFactory的BeanDefinitionMap暴露出来。向spring工厂注册bd有以下几种方法applicationContext.register() 需要一个类参数,程序员无法参与过程appli原创 2020-06-13 22:48:09 · 126 阅读 · 1 评论 -
spring源码解析三
前面两讲讲到了应用上下文的初始化,比较重要的点就是在初始化Reader读取器时,会想spring的bean工厂添加6个beanDefinition对象。而register(componentClasses)也不过是将配置类转化为bd,交给spring的bean工厂。前面对于refresh()方法却讲解的比较少,今天我们就来详细讲解refresh()方法。/** * spring初始化spring环境 * @throws BeansException * @throws IllegalState原创 2020-06-13 19:31:32 · 220 阅读 · 0 评论 -
代理设计模式-Proxy
设计模式—proxy什么是代理增强一个对象的功能买火车票,app就是一个代理,他代理了火车站,小区当中的代售窗口java当中如何实现代理java实现的代理的两种办法代理的名词代理对象 增强后的对象目标对象 被增强的对象他们不是绝对的,会根据情况发生变化静态代理继承 :代理对象继承目标对象,重写需要增强的方法; 缺点:会代理类过多,非常复杂聚合: 目标对象和代理对象实现同一个接口,代理对象当中要包含目标对象。 缺点:也会产生类爆炸,只不过原创 2020-05-24 18:28:37 · 148 阅读 · 0 评论 -
spring-aop应用
自定义注解XML文件用于描述元数据 自定义注解与xml一样,也是用于,描述元数据。 话不多说,我们来一个demoimport java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/*** 自定义注解中,有很多方法* 元数据是修饰注解的数据原创 2020-05-23 12:47:51 · 345 阅读 · 0 评论 -
spring源码分析五-日志体系
日志spring5日志打印使用的是 java.util.logging,也会使用jcl,只不过是srping-jclspring4日志打印使用的是log4j,使用的是jcl,即commons-logging.jarjava常用的日志结束:log4j, logback,log4j2, jul(java.util.logging,也就是jdk14Logger), slf4j, simple-log, jcl(jakata commons-loging,jcl现在已经停止更新,比jcl更优秀的slf原创 2020-05-12 21:34:57 · 375 阅读 · 1 评论 -
spring源码解析一
查看spring源码方法1,使用intellJ IDEA 反编译class文件,反编译过来的文件不能编辑,也没有注释。2,使用maven自动下载下来的,此时的文件也不能编辑,有注释。3,在github上下载spring源码,然后在本地构建。第3中种方式是极力推荐的方式AnnotationConfigApplicationContext 注解配置应用上下文下面这行代码就会把spring所有的前提环境都准备好,bean工厂,容器以及对象的实例化都会准备好AnnotationConfigAppli原创 2020-05-08 20:51:14 · 1776 阅读 · 0 评论 -
spring源码解析二
spring的bean工厂类是DefaultListableBeanFactory,工厂对象坐落在applicationContext对象中,它是在AnnotationConfigApplicationContext的父类是GenericApplicationContext的构造方法中初始化了初始化的下面来讲解工厂类中的重要属性:/** Optional OrderComparator for dependency Lists and arrays. */// 决定了实例化bean的实例化顺序,前面讲原创 2020-05-09 08:49:44 · 223 阅读 · 0 评论