[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

相关推荐
小坏讲微服务3 小时前
刚发布一个月的JDK 27,为什么我建议你立刻升级?
java·开发语言·spring boot·spring·架构·求职招聘·springboot4
snow@li4 小时前
SpringBoot:核心注解全景梳理 / @xxx 叫“注解”(Annotation)
java·spring
打工仔折腾 AI5 小时前
用 Dashlet 把极空间 NAS 服务入口整理成统一导航首页的实践
java·开发语言·人工智能·后端·python·rpc·ai agent 实战
Song_RsHt5 小时前
Gateway(下):过滤器与统一鉴权
spring boot·spring·gateway
Knight_AL11 小时前
别把 ThreadLocal 写进 Jackson Serializer
java·spring boot·spring
paopaokaka_luck11 小时前
校园新闻推荐系统(DeepSeek新闻助手、个性化推荐算法、 Redis热词排行榜、ECharts运营分析、互动与实时通知、新闻运营闭环)
java·spring boot·mysql·spring·tomcat·echarts·intellij idea
凤山老林11 小时前
从零搭建企业 OAuth2 授权中心:Spring Boot 集成 Spring Authorization Server 与
数据库·spring boot·spring
骑着蜗牛撵大象32712 小时前
Spring AI + Qwen3.8 周报助手:从事项采集到人工确认卡的闭环实战
人工智能·spring·elasticsearch·自动化·大模型应用·qwen3.8·rag溯源
java资料站12 小时前
十四、Spring AI Alibaba · 案例 · 基于 HumanInTheLoop 的内容审核系统
java·spring·状态模式
杨运交12 小时前
[079][消息模块]基于 Redis Stream 的高可靠消息队列实现——Spring Data Redis 实战解析
数据库·redis·spring