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

执行流程

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

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

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

java 复制代码
import demo.*;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


public class Test {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
    }
}

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

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

java 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:content="http://www.springframework.org/schema/context"
       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">
    <content:component-scan base-package="demo"></content:component-scan>
</beans>

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

java 复制代码
@Component
public class UserBean {
    private String name;

    @Bean(name = {"user","wualala"})
    //Bean方法注解,将方法返回的对象存储到spring中变成Bean对象
    public UserBean userBeanMethod(){
        UserBean userBean = new UserBean();
        userBean.name = "wow";
        return userBean;
    }

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

java 复制代码
@Controller
public class UserController {

    @Resource(name = "user1")
    //@Autowired
    private UserBean userBean;

    public UserBean getUserBean() {
        return userBean;
    }
}

生命周期

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

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

1.Bean的实例化

2.设置Bean的属性:

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

3.Bean初始化

4.使用Bean

5.销毁Bean

相关推荐
三金1213827 分钟前
SpringIoC容器的初识
网络·网络协议·rpc
沉登c1 小时前
幂等性接口实现
java·rpc
wxin_VXbishe5 小时前
springboot合肥师范学院实习实训管理系统-计算机毕业设计源码31290
java·spring boot·python·spring·servlet·django·php
OEC小胖胖5 小时前
Spring Boot + MyBatis 项目中常用注解详解(万字长篇解读)
java·spring boot·后端·spring·mybatis·web
落落落sss6 小时前
MybatisPlus
android·java·开发语言·spring·tomcat·rabbitmq·mybatis
潘多编程14 小时前
Java中的状态机实现:使用Spring State Machine管理复杂状态流转
java·开发语言·spring
_阿伟_14 小时前
SpringMVC
java·spring
杨半仙儿还未成仙儿20 小时前
Spring框架:Spring Core、Spring AOP、Spring MVC、Spring Boot、Spring Cloud等组件的基本原理及使用
spring boot·spring·mvc
攸攸太上1 天前
Spring Gateway学习
java·后端·学习·spring·微服务·gateway
无理 Java1 天前
【技术详解】SpringMVC框架全面解析:从入门到精通(SpringMVC)
java·后端·spring·面试·mvc·框架·springmvc