面试部分难点梳理 - Spring+SpringBoot自动装配

SpringIOC
Spring事务
SpringMVC
感觉MVC随便看看就行,最主要的还是那张大图要记住。

随看随记

ApplicationContext和BeanFactory的区别

  • BeanFactory是访问spring容器的根接口,里面只是提供了某些基本方法的约束和规范,为了满足更多的需求,ApplicationContext实现了此接口,并在此接口的基础之上做了某些打展功能,提供了更加丰富的api调用。一般我们在使用的时候用applicationContext更多

BeanFactory 和 FactoryBean

  • BeanFactory是个bean 工厂,是一个工厂类(接口), 它负责生产和管理bean的一个工厂,是ioc 容器最底层的接口,是个ioc容器,是spring用来管理和装配普通bean的ioc容器(这些bean成为普通bean)。
  • FactoryBean是个bean,在IOC容器的基础上给Bean的实现加上了一个简单工厂模式,是一个可以生产对象和装饰对象的工厂bean,由spring管理后,生产的对象是由getObject()方法决定的。

各种注解之间的区别

@Configuration
public class AppConfig {
       
	@Bean
	public TransferService transferService() {
   
		return new TransferServiceImpl();    
	}
}

@Component
public class ServiceImpl implements AService {
      
	....
}

@Bean
public OneService getService(status) {
   
	case (status)  {
   
		when 1:return new serviceImpl1();
		when 2:return new serviceImpl2();
		when 3:return new serviceImpl3();    
	}
}

@Configuration
public class AppConfig {
   
    @Beanpublic MyBean myBean() {
   
    // instantiate, configure and return bean ...    
    }
}
  • 在这里插入图片描述

SpringIOC

Spring程序是如何启动的

  • 整体流程(除去各种PostProcessor的细节) :

    1. 获取从外部文件或注解中得到的信息,并封装到BeanDefinition中。其中存有bean的定义信息。
    2. 根据BeanDefinition,创建beanFactory工厂。
    3. 得到bean的对象(全是空),将这个初始化对象进行初始化。
    4. 得到完整的可用对象,并使用。
  • 能够进行AOP切片的位置

    1. 从BeanDefinition到BeanFactory。
    2. 从实例化对象到初始化对象。
    3. 初始化对象到得到完整的可用对象。
  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在上述的图中,从BeanDefinitionReader得到的BeanDefinition还是会有占位符,不会替换。在invokeBeanFactoryPostProcessor中会将占位符,替换成我们配置信息。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值