1.怎么理解IOC容器
他的思想就是反转资源获取的方向;
IOC容器本质上是ConcurrentHashMap集合;
以唯一标识beanName为键,以Bean定义(BeanDefinition)为值存到map集合中;
Spring IOC 容器可以对 Bean 的生命周期进行管理;
2.@Autowired和@resource的区别
@Autowired 自动装配,默认按照数据类型进行自动装配,若没有匹配上则通过名字进行装配; @Resource 指定name属性,将会根据beanName进行自动装配;指定type属性,将会根据类型进行自动装配;
3.bean的生命周期
实例bean的完整生命周期
1.BeanDefinition构建,包含:beanName、class类信息、是否抽象、parent、scope作用域等
2.实例化前 --> postProcessBeforeInstantiation()
3.推断构造器 --> 默认使用无参构造方法
4.实例化 --> People()
5.实例化后 --> postProcessAfterInstantiation() 修改属性的值
6.属性注入
7.初始化前 --> postProcessBeforeInitialization()
8.@PostConstruc
9.初始化
1)实现InitializingBean接口 重写afterPropertiesSet()
2)@Bean(initMethod="init")
10.初始化后 --> postProcessAfterInitialization() 结合AOP增强目标对象
11.使用实例bean
12.@PreDestroy
13.销毁 ac.close()
1)实现DisposableBean接口 重写destroy()
2)@Bean(destroyMethod="destroy")