Spring 里的 Bean 到底是什么
·
通俗讲:Spring 里的 Bean 到底是什么?
一句话总结:
Bean 就是由 Spring 容器创建、管理、组装的普通 Java 对象。
你不用自己 new 对象,Spring 帮你 new、帮你存、帮你用,这就是 Bean。
1. 最直白的比喻
把 Spring 容器 当成一个 工厂/仓库
把 Bean 当成 工厂生产出来的零件/工具
- 你不用自己造工具(不用 new 对象)
- 工厂(Spring)帮你造好、放好(创建 + 管理)
- 你要用的时候直接拿(依赖注入)
- 工厂统一管理生命周期(创建 → 初始化 → 使用 → 销毁)
所有被 Spring 管理的对象,都叫 Bean。
2. 代码里长什么样?
随便一个加了 @Controller / @Service / @Component / @Repository 的类,
Spring 一启动,就会自动把它变成 Bean。
// 加个注解 → 变成 Bean
@Service
public class UserService {
// ...
}
等价于:
// 传统写法:你自己 new
UserService userService = new UserService();
// Spring 写法:Spring 帮你 new 成 Bean,你直接用
@Autowired
private UserService userService;
3. Bean 的核心特点(必须记住)
- 由 Spring 创建:不用自己
new - 由 Spring 管理:生命周期 Spring 控制
- 单例为主:默认一个类只创建一个 Bean(全局共用)
- 可以互相注入:A Bean 想用 B Bean,直接
@Autowired拿来用 - 统一初始化、销毁:就是你刚才问的
@PostConstruct、CommandLineRunner那套流程
4. 哪些东西会变成 Bean?
@Controller(控制器)@Service(业务逻辑)@Repository(数据库操作)@Component(通用组件)@Configuration(配置类)@Bean标注的方法返回对象- 还有框架自带的各种对象(数据源、事务管理器、RedisTemplate 等)
只要被 Spring 接管的对象,全是 Bean。
5. 一句话终极总结
Bean = Spring 容器里的 Java 对象。
不用你手动创建,Spring 帮你管到底。
总结
- Bean:被 Spring 管理的 Java 对象
- Spring 容器:管理所有 Bean 的工厂
- 核心作用:解耦、统一管理、自动注入、方便扩展
更多推荐




所有评论(0)