![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spring
spring
十万大山深处
这个作者很懒,什么都没留下…
展开
-
Spring AOP
简介AOP:Aspect Oriented Programming 面向切面编程优点:降低模块之间的耦合度使系统更加容易拓展更好的代码复用非业务代码更加集中,便于统一管理业务代码更加简洁纯粹AOP是对面向队形编程的一个补充,在运行时,动态的将代码切入到累的制定方法,指定位置上的编程思想就是面向切面编程,将不同方法的同一位置抽象成一个切面对象,对该切面对象进行编程就是AOP。使用示例创建maven工程,pom.xml添加依赖 <dependency>原创 2020-12-21 14:19:47 · 80 阅读 · 0 评论 -
Spring IOC初始化源码分析之(十一)finishBeanFactoryInitialization----初始化bean
源码分析通过上述的各个配置和准备工作,终于来到了重点,将剩余的bean示例化,那么它是如何实现的呢,先看下代码: protected void finishBeanFactoryInitialization(ConfigurableListableBeanFactory beanFactory) { // Initialize conversion service for this context. //判断BeanFactory中是否存在名称为“conversionService”且类型为Co原创 2020-11-26 09:08:08 · 128 阅读 · 0 评论 -
Spring IOC初始化源码分析之(十)registerListeners----注册监听器
源码分析先看代码 protected void registerListeners() { // Register statically specified listeners first. //将默认特定的监听器与多播器绑定 for (ApplicationListener<?> listener : getApplicationListeners()) { getApplicationEventMulticaster().addApplicationListener(原创 2020-11-25 21:13:37 · 276 阅读 · 0 评论 -
Spring IOC初始化源码分析之(九)onRefresh()----刷新
源码分析先看代码:protected void initApplicationEventMulticaster() { //获取bean工厂 ConfigurableListableBeanFactory beanFactory = getBeanFactory(); //当前是否包含了名为applicationEventMulticaster的事件多播器bean注入 if (beanFactory.containsLocalBean(APPLICATION_EVENT_MULTICAS原创 2020-11-25 21:11:48 · 262 阅读 · 0 评论 -
Spring IOC初始化源码分析之(八) initApplicationEventMulticaster----初始化事件多播器
源码分析先看代码:protected void initApplicationEventMulticaster() { //获取bean工厂 ConfigurableListableBeanFactory beanFactory = getBeanFactory(); //当前是否包含了名为applicationEventMulticaster的事件多播器bean注入 if (beanFactory.containsLocalBean(APPLICATION_EVENT_MULTICAS原创 2020-11-25 21:10:48 · 536 阅读 · 0 评论 -
Spring IOC初始化源码分析之(七)initMessageSource----初始化消息源
protected void initMessageSource() { ConfigurableListableBeanFactory beanFactory = getBeanFactory(); if (beanFactory.containsLocalBean(MESSAGE_SOURCE_BEAN_NAME)) { this.messageSource = beanFactory.getBean(MESSAGE_SOURCE_BEAN_NAME, MessageSource.clas原创 2020-11-25 21:10:23 · 215 阅读 · 0 评论 -
Spring IOC初始化源码分析之(六)registerBeanPostProcessors----注册bean增强器
源码分析先看代码:protected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFactory) { PostProcessorRegistrationDelegate.registerBeanPostProcessors(beanFactory, this); }方法中只有一个registerBeanPostProcessors方法,具体如下:public static void register原创 2020-11-25 21:10:09 · 196 阅读 · 0 评论 -
Spring IOC初始化源码分析之(五)invokeBeanFactoryPostProcessors----执行bean工厂增强处理器
源码分析先看代码/** * Instantiate and invoke all registered BeanFactoryPostProcessor beans, * respecting explicit order if given. * <p>Must be called before singleton instantiation. * 示例化并且执行所有注册为bean的BeanFactoryPostProssor,并且按照显式顺序执行(若有) * 这步必须要原创 2020-11-25 21:09:45 · 144 阅读 · 0 评论 -
Spring IOC初始化源码分析之(四)postProcessBeanFactory-----对bean工厂进行后置处理
源码分析先看源码:protected void prepareBeanFactory(ConfigurableListableBeanFactory beanFactory) { // Tell the internal bean factory to use the context's class loader etc. //设置类加载器 beanFactory.setBeanClassLoader(getClassLoader()); //设置bean表达式解释器,能够让beanFa原创 2020-11-25 21:08:41 · 199 阅读 · 0 评论 -
Spring IOC初始化源码分析之(三)parepareBeanFatory----配置bean工厂
源码分析源码如下:protected void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) { }显然,在AbstractApplicationContext中,postProcessBeanFactory只是定义的一个抽象方法,而继承自AbstractApplicationContext的子类可重写此实现,即对于继承的子类能够对beanFactory进行其想要的操作。例如在AbstractRefresh原创 2020-11-25 21:04:58 · 135 阅读 · 0 评论 -
Spring IOC初始化源码分析之(二)obtainFreshBeanFactory----获取bean工厂
源码分析 protected ConfigurableListableBeanFactory obtainFreshBeanFactory() { //刷新bean工厂 refreshBeanFactory(); //返回工厂 return getBeanFactory(); }代码显示,获取bean工厂的过程分两步:第一步刷新,第二步返回;(如同将大象关进冰箱)那么,刷新工厂需要做哪些事呢,下面看代码: protected final void refreshBeanFa原创 2020-11-25 18:02:42 · 181 阅读 · 0 评论 -
Spring IOC初始化源码分析之(一)prepareRefresh----准备上下文
源码分析先看代码 protected void prepareRefresh() { // Switch to active. //设置日期和标识位 this.startupDate = System.currentTimeMillis(); this.closed.set(false); this.active.set(true); //写日志 if (logger.isDebugEnabled()) { if (logger.isTraceEnabled()) {原创 2020-11-25 18:02:16 · 103 阅读 · 0 评论 -
一文简述IOC
概述ioc容器作为spring框架核心组件之一,此篇文章对其进行简述分析概念:ioc全称Inversion of Control ,翻译为控制反转;那么什么是控制反转?在讨论这个问题前先看下对象的创建有哪些方式?//newStudent stu=new Student();//使用反射1Class clazz =Class.forName("xxx.Student");Student stu=(Student)clazz.newInstance();//使用反射2 使用构造器类C原创 2020-11-15 22:19:27 · 579 阅读 · 0 评论