简述 Spring 的 控制反转(IoC) 和 依赖注入(DI)
控制反转(IoC) - 类比点餐
假设你很饿,想吃饭。传统的方法是你自己去厨房做饭,洗菜、切菜、炒菜等等,整个过程都得你亲自操作。
控制反转
就是你不需要自己做饭了,而是 订外卖
。你告诉外卖平台:“我饿了,要吃饭。”外卖平台就会根据你的需求准备好食物,送到你手上,甚至把它摆到桌上,完全不用你操心。你只需要“告诉外卖平台你需要什么”,它会自动处理。
- 在
Spring 中
,控制反转就是你不再主动去创建对象或管理对象的生命周期,Spring 会为你做这些事。
依赖注入(DI) - 类比外卖小哥送餐
继续用外卖举例,外卖小哥不仅仅是把餐送到你家,假如你点了套餐,外卖小哥会把套餐里的每一份餐品(比如米饭、菜、汤)分别送到你桌上。
依赖注入
就是 Spring
帮你把需要的“工具”送到你手里。你在代码中只需要声明你需要什么(比如“我需要一个数据库连接”),Spring
会自动帮你准备好,就像外卖小哥把米饭、菜、汤都送到你桌上。
- 在
Spring
中,依赖注入就是Spring
会自动把你需要的对象注入到你写的代码中。 比如,你在类里需要一个数据库对象,Spring
会帮你找好这个对象,并“注入”到你类里,你不需要去手动创建。
总结
控制反转(IoC)
就是你让Spring
替你做“手工活”,它负责管理和创建你所需要的东西,你不用操心。依赖注入(DI)
就是Spring
自动把你需要的工具送到你面前,帮你准备好你要的所有资源,你只管使用。
Spring
就是一个智能的外卖平台, 你只需要告诉它你需要什么,它会帮你做好一切,你只管享受结果!
Spring
的控制反转(IoC)
和依赖注入(DI)
可以理解为一种“自动安排
和配送服务
”,它帮你省去“手动找东西
”和“手动组装
”的麻烦,让程序运行得更高效。