1.ioc 和 DI 需要解决最根本的问题是什么?
答:最需要解决的问题是 bean 的循环依赖的问题
2.BeanFactory 和 applicationContext 的本质区别?
答:加载的时机不同,BeanFactory 是懒加载,applicationContext 是非懒加载的,可以指定为懒加载,是对BeanFatory 的扩充
3.什么是控制反转,什么是依赖注入?
答:首先,依赖倒置,控制反转,是把控制权交个Spring容器管理,降低了耦合性。ioc 思想最核心的地方在于,资源不由使用资源的双方管理,而由不使用资源的第三方管理,这样可以带来很多好处,第一,资源集中管理,实现资源的可配置,和易管理,第二,降低了使用资源双方的依赖程度,也就是我们说的耦合度。依赖注入,就是通过Spring容器进行注入。
4.配置Bean的作用域对象
答:
在不指定@Scope 的情况下,所有bean都是单实例饿汉加载(容器启动实力就创建好了)
Bean的懒加载@Lazy (主要针对单实例的Bean 容器启动的时候,不创建对象,在对一次使用的时候才会创建对象)
5.@Conditional 进行条件判断等。
6.往IOC 添加组建的方式有哪几种?
答:
@bean
@CompentScan + @Controller + @Service + @ comment + @ Repository (自己写时使用)
@Import (导入第三方组建时可使用,管理第三方bean的)
ImportBeanDefinitionRegister 实现接口
FactoryBean (通过实现接口来实现注册组件)
7.Bean的生命周期?
由IOC来控制。
针对单实例bean的话,容器启动的时候,bean的对象就创建了,而且容器销毁的时候,也会调用bean的销毁方法
针对多实例的时候,bean是不会被创建的而是在获取bean的时候被创建,而且bean的销毁不受IOC容器的管理。
8.PropertSource 的使用?
答:给属性赋值
9.@Autowired 根据什么装配?
答:根据名称装配
10.Profile 使用场景?
答:配置本地生产使用环境。