Spring 面试总结

1.spring bean 的生命周期

  1. spring 容器根据配置中bean的定义实例化bean
  2. 根据依赖注入填充属性
  3. 如果bean 实现了BeanNameAware 接口,工厂通过bean id调用 setBeanName()
  4. 如果bean 实现了BeanFactoryAware,则通过自身实例调用setFactoryBean()
  5. 如果存在与bean 关联的BeanPostProcessers,则调用preProcessBeforeInitialization()方法
  6. init 初始化bean
  7. 调用postProcessAfterInitialization()
  8. 最好调用destroy() 销毁bean


 2.BeanFactory 与 ApplicationContext 

BeanFactory 是spring 最底层的接口,只提供最简单的功能,创建bean 与获取bean, 使用beanFactory 的时候,初始化不会实例化bean ,只有获取bean 实例的时候才会实例化

ApplicationContext 也叫做应用上下文,继承 BeanFactory,相比提供了更多的功能。默认的情况下启动就会加载所有的bean ,可以通过配置实现懒加载


 3.Spring Ioc 与 Aop

Ioc  控制反转,就是由spring 容器控制对象的生命周期和对象之间的关系。通常一个业务逻辑需要多个对象协作完成,通过 new Object () 创建使得代码有比较强的耦合

而ioc使得对象之间的依赖和创建由spring 完成,当需要某个对象时,由spring 动态的创建,代码只需要关注逻辑即可

aop 面向切面编程,在oop 的编程中,对于权限认证、日志、事物等业务逻辑基本都需要的功能,会造成大量重复的代码,不利于重用。aop 的作用是分离系统中的关注点,

进一步使得模块间的耦合度降低,提高重用性


 4.四种注入注解

@Autowire  自动装配,根据类型 byType

@Resource  根据name 注入,byName

@Quilifier 按照类型注入的基础上再按名称注入

@Value  注入普通常量


 5.Spring Aop

  1. 连接点 :所有可以被增强的方法称为连接点
  2. 切入点 : 实际被增强的方法
  3. 通知、增强
    • 前置通知
    • 后置通知
    • 异常通知
    • 返回通知
    • 环绕通知
  4. 切面:把增强应用到方法的过程

原文地址:https://www.cnblogs.com/baizhuang/p/13191560.html