对于普通的 Java 对象,当 new 的时候创建对象,然后该对象就能够使用了。一旦该对象不再被使用,则由 Java 自动进行垃圾回收。 而 Spring 中的对象是 bean,bean 和普通的 Java 对象没啥大的区别,只不过 Spring 不再自己去 new 对象了,而是由 IoC 容器去帮助我们实例化对象并且管理它,我们需要哪个对象,去问 IoC 容器要即可。IoC 其实就是解决对象之间的耦合问题,Spring Bean 的生命周期完全由容器控制。
欢迎参观我的博客,一个Vue 与 SpringBoot结合的产物:https://poetize.cn
- 博客:https://gitee.com/littledokey/poetize-vue2.git
- 聊天室:https://gitee.com/littledokey/poetize-im-vue3.git
- 后端:https://gitee.com/littledokey/poetize.git
- 七牛云登录/注册地址(文件服务器,CDN)
自上而下依次执行
实例化
依赖注入
BeanNameAware
对单个Bean进行扩展修改
void setBeanName(String var1);
BeanFactoryAware
对Bean工厂中的所有Bean进行扩展修改
void setBeanFactory(BeanFactory beanFactory) throws BeansException;
ApplicationContextAware
对整个容器进行扩展修改
void setApplicationContext(ApplicationContext var1) throws BeansException;
BeanPostProcessor
default Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
@PostConstruct
InitializingBean
void afterPropertiesSet() throws Exception;
ApplicationRunner
void run(ApplicationArguments args) throws Exception;
CommandLineRunner
void run(String... args) throws Exception;
BeanPostProcessor
default Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
生存期
@PreDestroy
DisposableBean
void destroy() throws Exception;