xml
注册bean
bean
根(扫描)路径bean
存储到Spring
中(存操作): 通过类注解进行扫描和装配bean
从Spring
读取出来(取操作),装配到相应的类所谓的生命周期指的是一个对象从诞生到销毁的整个生命过程,我们把这个过程就叫做一个对象的生命周期。
JVM
中的"加载"),从无到有,将字节码转换成内存中的对象,只是分配了内存 ex: 买了一套毛坯房Spring
里面的对象进行注入的,所以需要先将外部资源注入进来,才能进行初始化操作),就是Bean
注入和装配 ex: 购买装修材料(引入外部资源)Bean
初始化 ex: 房子装修 Aware
通知的方法,BeanNameAware
、BeanFactoryAware
、ApplicationContextAware
的接口方法 ex:打电话给各个装修的师傅来施工(水工、电工、瓦工)BeanPostProcessor
初始化前置方法 ex: 师傅到达现场,先勘察环境,指定装修方案(前置工作)@PostConstruct
初始化方法,依赖注入操作之后被执行,使用这个注解就是执行当前类的初始化方法 ex: 两类师傅进行装修,技术好的,技术一般init-method
方法(如果有指定的话),跟上面一条一样,都是执行初始化方法,init-method
方法是xml
时代的方法BeanPostProcess
初始化后置方法 ex: 装修之后的清理工作Bean
ex : 入住房子Bean
ex: 卖掉房子@Component
public class BeanLifeComponent implements BeanNameAware {@Overridepublic void setBeanName(String s) {System.out.println("执行通知");}@PostConstructpublic void postConstruct() {System.out.println("执行了PostConstruct初始化方法");}public void init() {System.out.println("执行了 init-method 初始化方法");}@PreDestroypublic void preDestory() {System.out.println("执行了PreDestroy销毁方法");}}
执行Demo
:
public class Demo3 {public static void main(String[] args) {ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-config.xml");BeanLifeComponent beanLifeComponent = applicationContext.getBean("beanLifeComponent",BeanLifeComponent.class);System.out.println("使用Bean");//销毁BeanapplicationContext.destroy();}
}