"大翔在飞翔科技的技术选型会上说:'我们要找一个能让代码解耦、让测试变简单的框架。'白歌推荐了Spring。这一章,你将理解白歌为什么做此推荐,以及Spring最核心的'容器'思想。"
Spring概述与IoC容器
本章定位
本章解决的核心问题:Spring是什么,以及它如何通过IoC容器将对象的创建权从程序员手中反转给框架,从而实现解耦。
学习路线图
学习顺序说明:先建立Spring全局认知 → 理解IoC/DI核心思想 → 掌握三类核心 stereotype 注解 → 学习配置类与扫描机制 → 深入模块化配置与外部化配置 → 最后掌握多环境切换。
文件关系说明
| 文件 | 一句话角色 |
|---|---|
Spring_Framework概述.md | 飞翔科技技术选型会的背景板,回答"为什么选Spring"。 |
IoC与DI核心概念.md | 本章灵魂文件,理解"控制反转"与"依赖注入"的哲学。 |
Component.md | 通用组件注解,IoC容器识别Bean的"身份证"。 |
Service.md | 业务层组件注解,小崔写Service层时最常用的标记。 |
Repository.md | 数据层组件注解,标记DAO/数据访问组件。 |
Configuration.md | 配置类注解,替代XML的JavaConfig核心入口。 |
ComponentScan.md | 自动扫描注解,让容器自动发现@Component及其派生注解。 |
Import.md | 模块化配置注解,将多个配置类组装成整体。 |
PropertySource.md | 外部化配置注解,将数据库密码等配置从代码中剥离。 |
Profile.md | 多环境切换注解,李眉部署时区分dev/test/prod的利器。 |
知识图谱
核心逻辑:IoC是思想,DI是实现手段;@Component及其派生注解定义Bean身份;@Configuration + @ComponentScan 构建容器;@Import、@PropertySource、@Profile 解决模块化、外部化、多环境三大工程问题。
与下一章的衔接
本章学完后,你已经理解了容器如何识别和收纳Bean。下一章「Bean的定义与依赖注入」将解决:容器收纳Bean之后,如何精确地装配它们之间的依赖关系——小崔的Service如何自动拿到Repository实例?当存在多个同类型Bean时如何选择?这些正是 @Autowired、@Qualifier、@Primary 等注解要回答的问题。