乐途乐途
主页
  • 计算机基础

    • TCP/IP
    • Linux
    • HTTP
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C
    • C++
    • Java SE
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • Maven 入门
    • Maven 进阶
    • MyBatis
    • Spring
    • Spring MVC
  • Java

    • Spring Boot
    • Spring Cloud
    • Spring Cloud Alibaba
    • Spring Security
    • Spring AI
    • Spring Batch
    • Kafka
    • Java 设计模式
  • 缓存

    • Redis
  • 搜索引擎

    • Elasticsearch
  • 分布式协调

    • ZooKeeper
联系
阿里云
主页
  • 计算机基础

    • TCP/IP
    • Linux
    • HTTP
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C
    • C++
    • Java SE
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • Maven 入门
    • Maven 进阶
    • MyBatis
    • Spring
    • Spring MVC
  • Java

    • Spring Boot
    • Spring Cloud
    • Spring Cloud Alibaba
    • Spring Security
    • Spring AI
    • Spring Batch
    • Kafka
    • Java 设计模式
  • 缓存

    • Redis
  • 搜索引擎

    • Elasticsearch
  • 分布式协调

    • ZooKeeper
联系
阿里云
  • 学习路径
  • 第1章 Spring 概述与 IoC 容器

    • 本章定位
    • Spring Framework 概述
    • IoC 与 DI 核心概念
    • @Configuration 详解
    • @Component 详解
    • @ComponentScan 详解
    • @Import 详解
    • @Profile 详解
    • @PropertySource 详解
    • @Service 详解
    • @Repository 详解
  • 第2章 Bean 的定义与依赖注入

    • 本章定位
    • @Bean 详解
    • @Autowired 详解
    • @Qualifier 详解
    • @Primary 详解
    • @Resource 详解
    • @Inject 详解
    • @Named 详解
    • @Value 详解
    • @Scope 详解
    • @Lazy 详解
  • 第3章 Bean 生命周期与作用域

    • 本章定位
    • Bean 生命周期概述
    • @PostConstruct
    • @PreDestroy
    • InitializingBean
    • DisposableBean
    • BeanPostProcessor
    • BeanFactoryPostProcessor
  • 第4章 AOP 面向切面编程

    • 本章定位
    • AOP 核心概念
    • @EnableAspectJAutoProxy
    • @Aspect
    • @Pointcut
    • @Before
    • @After
    • @AfterReturning
    • @AfterThrowing
    • @Around
  • 第5章 数据访问与事务管理

    • 本章定位
    • 数据访问概述
    • @EnableTransactionManagement
    • @Transactional
    • @Transactional 的传播行为
    • @Transactional 的隔离级别
    • @Transactional 的回滚规则
    • @Transactional 的超时与只读属性
    • @TransactionalEventListener
  • 第6章 Spring Boot 自动配置

    • 本章定位
    • @SpringBootApplication 注解
    • @EnableAutoConfiguration 注解
    • @ConfigurationProperties 注解
    • @ConditionalOnClass 注解
    • @ConditionalOnMissingBean 注解
    • @ConditionalOnProperty 注解
  • 第7章 Spring MVC 导引

    • Spring MVC 导引
  • 第8章 扩展阅读

    • 本章定位
    • Spring 事件机制 — ApplicationEvent / ApplicationListener
    • @EventListener
    • SpEL — Spring 表达式语言
    • 校验 Validation — JSR-303 / JSR-380 Bean Validation
    • 类型转换与数据绑定 — Converter / DataBinder
  • 附录

    • Spring Framework 专业术语
    • Spring 核心知识点
    • Spring 面试高频考点
    • Spring 核心注解速查表

"白歌在 Code Review 时对小崔说:'你的 Service 里还在 new UserDaoImpl?让容器来装配依赖,这是 Spring 的底线。'这一章,你将掌握 Spring 提供的全套依赖装配工具,彻底告别手动 new 对象。"

Bean 的定义与依赖注入

本章定位

本章解决的核心问题:当 IoC 容器已经收纳了各类 Bean 之后,如何精确、灵活、可扩展地将它们装配到一起,实现真正的"依赖注入"。

学习路线图

学习顺序说明:先明确 Bean 的本质定义 → 掌握最核心注入注解 @Autowired → 学习处理多候选 Bean 的 @Qualifier 与 @Primary → 掌握值注入 @Value → 了解 JSR-330 标准注解 @Inject/@Named → 理解 JSR-250 的 @Resource → 最后深入延迟初始化与作用域控制。

文件关系说明

文件一句话角色
Bean.md回归本质,理解 Spring 中"Bean"的定义与容器中的存在形式。
Autowired.md依赖注入的"主角",Spring 最核心、最常用的自动装配注解。
Qualifier.md@Autowired 的"副手",当容器中有多个同类型 Bean 时精确点名。
Primary.md多候选 Bean 时的"默认赢家",与 @Qualifier 形成互补策略。
Value.md值注入注解,将配置文件中的字符串、SpEL 表达式注入字段。
Inject.mdJSR-330 标准注解,Spring 对 Java 标准的兼容实现。
Named.mdJSR-330 的命名注解,与 @Inject 配合使用实现按名注入。
Resource.mdJSR-250 标准注解,先按名称、再按类型的经典注入方式。
Lazy.md延迟初始化注解,控制 Bean 是否在容器启动时立即创建。
Scope.md作用域注解,决定 Bean 是单例、原型还是与 Web 请求同生命周期。

知识图谱

核心逻辑:@Autowired 是 Spring 生态的注入中枢;@Qualifier/@Primary 解决多候选冲突;@Value 解决配置值注入;@Inject/@Named/@Resource 体现 Spring 对 Java 标准的拥抱;@Lazy 与 @Scope 则从创建时机和生命周期维度控制 Bean 行为。

与下一章的衔接

本章学完后,你已经掌握了Bean 如何被定义、如何被注入。下一章「Bean 生命周期与作用域」将解决:Bean 从诞生到销毁的完整生命周期中,Spring 提供了哪些钩子让开发者介入——小崔需要在 Bean 创建后初始化连接池,李眉需要在应用关闭前释放资源,这些正是 InitializingBean、@PostConstruct、BeanPostProcessor 等机制要回答的问题。

下一页
@Bean 详解