目录
IOC:把创建对象的权力交给spring容器
创建实体类(和对应接口),在beans.xml中配置这个实体类的bean,然后创键spring工厂(或者appliccation容器),让它们获得指定实体类的bean(参数为beanName=id or =class全限定名),它们会帮助你new一个对象。
执行顺序
1.构造方法
2.注入其他实体类的方法
3.接口中的afterpropertiesSet方法(此方法和初始化方法都可以进行初始化操作)
4.init-method=“”: 指定初始化方法
5.destory-method=“”:指定销毁方法
依赖注入的数据类型:1.普通数据类型:例如:String,int,boolean等,通过value属性指定。
2.引用数据类型:例如:UserDaoimpl,DataSource等,通过ref属性指定。
3.集合数据类型:例如:List,Map,Properties等。
注入集合
常用标签:bean标签。
beans标签。
import标签:有很多xml配置文件,使用import标签,可以在一个xml配置文件中导入另其它的xml配置文件。
alias标签:给bean起别名。(在bean中用name=“”,也可以起别名)
其他:<beans profile="别名"></beans>(用profile给beans起别名,用于切换不同的beans环境)
bean实例化过程
bean的生命周期
Spring Bean的生命周期是从Bean实例化之后,即创建出对象之后,到Bean成为一个完整对象,最终存储到单例池中,这个过程被称为Spring Bean的生命周期。 Bean的生命周期分为三个阶段:
Bean的实例化阶段:取出BeanDefinition的信息进行实例化;
Bean的初始化阶段:Bean创建之后,还需要对Bean实例的属性进行填充、执行BeanPostProcessor方法、执行lnitializingBean接口的初始化方法、执行自定义初始化init方法等。Aop增强功能,后面要学习的Spring的注解功能等spring高频面试题Bean的循环引用问题都是在这个阶段体现的;
Bean的完成阶段:经过初始化阶段,Bean就成为了一个完整的Spring Bean,被存储到单例池singletonObjects中去了,即完成了Spring Bean的整个生命周期。