spring
文章平均质量分 92
试水流连
这个作者很懒,什么都没留下…
展开
-
Spring源码学习之容器篇
一、ApplicationContext系列浏览ApplicationContext接口体系如图: 其中主要分为ApplicationContext和WebApplicationContext 1、ApplicationContext接口//从接口ApplicationContext中可以看出,该接口扩展自对象工厂体系,主要实现的也还是一个对象工厂功能public interface Ap原创 2017-04-10 15:23:21 · 265 阅读 · 3 评论 -
(八)关于spring aop的实现细节(如何实现的各种Advice)
(七)重点看了spring aop的各个主要接口的定义,以及简单分析了各个主要方法的作用,这节主要了解spring是怎么利用jdk\cglib 来实现的前置通知、环绕通知等等通过(七)中查看AbstractAutoProxyCreator类时,可以知道spring创建代理对象是通过ProxyFactory来创建的。那么这里就从ProxyFactory开始1、查看分析spring创建...原创 2018-05-21 10:17:41 · 2692 阅读 · 0 评论 -
在SpringTest中将Mockito的mock对象通过spring注入使用
1. 原理介绍通过BeanFactoryPostProcessor向BeanFactory中注册需要进行Mock的对象,使当前Bean容器在依赖注入时使用我们提供的Mock对象注入到实例中使用。具体需要交给容器管理的mock实例,是通过TestExecutionListener在容器开始启动前去解析当前测试类中的使用@Mock注解的字段,然后根据类型创建对应的Mock实例,将创建出来的M...原创 2018-04-27 18:37:18 · 12450 阅读 · 3 评论 -
(七)spring aop的源码学习
1.spring AOP相关的核心API接口定义关于AOP概念Aspect:方面 一个模块化的关于点Join point:连接点 程序中的一个执行点(比如执行方法、执行构造器)Advice: 通知 在特定的连接上的特定时机的特定行为Pointcut:切入点 用来匹配符合要求的连接点(用于配合通知使用,来控制在哪些连接点执行通知的行为)Int...原创 2018-05-11 17:36:16 · 348 阅读 · 1 评论 -
(六)关于spring中的FactoryBean与ObjectFactory以及其区别
1.查看接口定义以及其区别public interface FactoryBean<T> { //获取对象的工厂方法 @Nullable T getObject() throws Exception; //对象类型 @Nullable Class<?> getObjectType(); //是否是单例,这个属性...原创 2018-05-11 17:35:13 · 14335 阅读 · 4 评论 -
(五)关于BeanPostProcessor各个回调的时机
1、BeanPostProcessor的五大接口一共有11个回调方法1.1.BeanPostProcessor关于对象初始化前后的回调。public interface BeanPostProcessor { //该方法在bean实例化完毕(且已经注入完毕),在afterPropertiesSet或自定义init方法执行之前 @Nullable ...原创 2018-05-11 17:34:39 · 5002 阅读 · 1 评论 -
(四)BeanFactory初始化Singleton的实现细节
1.介绍查看ApplicationContext的启动以及初始化部分的代码时,发现最终实现对象创建以及所有非懒加载的单例对象整体初始化,都是通过DefaultListableBeanFacotry来实现的其中对象创建是通过beanFactory.getBean(xxx)来实现,而整体初始化是通过beanFactory.preInstantiateSingletons();来实现,下面针对这...原创 2018-05-11 17:33:58 · 4651 阅读 · 0 评论 -
(三)spring中BeanFacotryPostProcessor注册以及执行的先后顺序以及BeanPostProcessor的注册先后顺序
1. spring中的两大回调接口org.springframework.beans.factory.config.BeanFactoryPostProcessor关于对象工厂BeanFactory创建完毕的回调处理org.springframework.beans.factory.config.BeanPostProcessor关于通过对象工厂BeanFactory创建对象前后...原创 2018-05-11 17:32:47 · 4827 阅读 · 2 评论 -
(二)ApplicationContext的启动以及初始化过程
在查看SpringBoot的源码时,可以看到构造完ConfigurableApplicationContext实例后,是通过调用ConfigurableApplicationContext中的refresh方法来触发容器的一切处理流程的。1.关于AbstractApplicationContext的refresh()方法该方法是触发容器加载BeanDefinition以及创建对象等...原创 2018-05-11 17:32:19 · 5245 阅读 · 0 评论 -
(一)SpringBoot源码学习笔记
1、SpringBoot容器启动版本: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>...原创 2018-05-11 17:30:28 · 843 阅读 · 0 评论 -
spring拓展之定义自己的namespace
1.查看源码认识spring是怎么加载xml配置的1.1 spring是怎么创建对象的?查看spring beanFactory的继承关系 通过查看源码可以得知,BeanFactory 中的对象创建是实际是根据RootBeanDefinition创建的, 在AbstractAutowireCapableBeanFactory有具体的实现,包括创建实例,利用Spring拓展的 java的内省Be原创 2017-10-24 14:24:46 · 5443 阅读 · 0 评论 -
SpringBoot使用devtools导致的类型转换异常
问题:最近在使用新框架SpringBoot + shiro + spring-data-jpa时,为了体验下spring自带的热部署工具的便捷,于是引入了<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <!-原创 2017-09-22 16:42:42 · 30424 阅读 · 7 评论 -
spring源码学习之容器监听器篇
一、监听器相关接口1、ApplicationEventPublisher容器的事件发布者//该接口规范了发布事件的基本功能public interface ApplicationEventPublisher { /** * 发布事件 */ void publishEvent(ApplicationEvent event); /** * 发布事件原创 2017-04-12 13:32:39 · 346 阅读 · 0 评论 -
在spring cloud中引入jaeger报'io.jaegertracing.spi.Reporter' 不存在问题
问题描述:在spring cloud项目中使用jaeger追踪系统opentracing-spring-jaeger-cloud-starter时出现错误2018-09-14 17:53:36.404 - DEBUG [main] sync [org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter_report...原创 2018-09-14 22:00:33 · 2425 阅读 · 0 评论