• [JAVAee]spring-Bean对象的执行流程与生命周期


    执行流程

    spring中Bean对象的执行流程大致分为四步:

    1. 启动Spring容器
    2. 实例化Bean对象
    3. Bean对象注册到Spring容器中
    4. 将Bean对象装配到所需的类中

    ①启动Spring容器,在main方法中获取spring上下文对象并配备spring. 

    1. import demo.*;
    2. import org.springframework.context.ApplicationContext;
    3. import org.springframework.context.support.ClassPathXmlApplicationContext;
    4. public class Test {
    5. public static void main(String[] args) {
    6. ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
    7. }
    8. }

    实例化Bean对象,spring根据配置文件中的路径搜寻"demo"包中含有注解的类.

    通过这些类实例化出Bean对象,并对他们进行初始化Bean对象的属性,

    1. "1.0" encoding="UTF-8"?>
    2. "http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:content="http://www.springframework.org/schema/context"
    5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    6. package="demo">

     ③将实例化出的Bean对象注册到Spring容器当中.

    1. @Component
    2. public class UserBean {
    3. private String name;
    4. @Bean(name = {"user","wualala"})
    5. //Bean方法注解,将方法返回的对象存储到spring中变成Bean对象
    6. public UserBean userBeanMethod(){
    7. UserBean userBean = new UserBean();
    8. userBean.name = "wow";
    9. return userBean;
    10. }

    ④Bean对象的使用,将其分配到所需的类中

    1. @Controller
    2. public class UserController {
    3. @Resource(name = "user1")
    4. //@Autowired
    5. private UserBean userBean;
    6. public UserBean getUserBean() {
    7. return userBean;
    8. }
    9. }

    生命周期

    此处的生命周期指的是,Bean对象的创建到销毁的过程.

    Bean对象的生命周期主要分成五个主要部分:

    1.Bean的实例化

    2.设置Bean的属性:

    • 实现了各种 Aware 通知的⽅法,如 BeanNameAware、BeanFactoryAware、
    • ApplicationContextAware 的接⼝⽅法;
    • 执⾏ BeanPostProcessor 初始化前置⽅法;
    • 执⾏ @PostConstruct 初始化⽅法,依赖注⼊操作之后被执⾏;
    • 执⾏⾃⼰指定的 init-method ⽅法(如果有指定的话);
    • 执⾏ BeanPostProcessor 初始化后置⽅法

    3.Bean初始化

    4.使用Bean

    5.销毁Bean

     

  • 相关阅读:
    【GD32】GD32F303串口设置DMA发生中断无法进入中断函数
    阿里云国际版提交工单后需要多久才能解决问题
    高斯金字塔的秘密(二,加速高斯,c#实现)
    什么是惊群效应
    JavaSE——遍历Map集合
    数据分析与挖掘———SPSS Moderler
    8万ta煤焦油加氢(8400ha)工艺设计
    TCP/IP详解
    【推荐系统】geohash召回
    Java可变参数和不可变集合
  • 原文地址:https://blog.csdn.net/weixin_67719939/article/details/132918719