Spring Ioc Bean 到底是什么
Bean 到底是什么?
简单来说,Spring Bean 就是一个由 Spring IoC 容器负责创建、管理和装配的 Java 对象。
它不是一种新的技术,它本质上还是一个普普通通的 Java 对象(POJO – Plain Old Java Object),但它的“户口”被注册到了 Spring 容器中,从此它就不再是一个“野生”的对象,而是一个受容器管理的“公民”。
最核心的区别:Bean vs. 普通的 Java 对象
为了彻底理解 Bean,我们把它和我们自己用 new 创建的普通对象做个对比。
特性 普通 Java 对象 (自己 new 的) Spring Bean (容器管理的)
“生父” 你(开发者) Spring IoC 容器
创建方式 MyObject obj = new MyObject(); 通过配置(如 @Component 注解),由容器在后台自动创建。
生命周期 由你控制。当没有引用指向它时,由 JVM 垃圾回收器回收。 由容器全程管理:从创建 -> 依赖注入 -> 初始化 -> 使用 -> 销毁。
依赖关系 你必须手动创建并“塞给”它。new Service(new Repository()); 容器根据 @Autowired 等注解,自动找到并注入依赖。
“户口” 野生对象,没户口,不受管理。 在容器中有唯一标识(Bean ID),有“户口”,被严格管理。
“超能力” 没有。它只是一个普通的对象。 有! 容器可以赋予它 AOP 等“超能力”(如事务、日志、安全)。
我们用下面的比喻来详细描述:
普通 Java 对象:就像一个生活在深山里的隐士。他自己盖房子(创建),自己找食物(处理依赖),自生自灭(生命周期),与世隔绝。
Spring Bean:就像一个生活在大城市里的注册公民。
政府(IoC 容器)会给他分配一个身份证号(Bean ID)。
政府会帮他盖好房子,并把水电煤气都接好(创建并注入依赖)。
他享受城市的公共服务,比如警察巡逻(AOP 安全切面)、银行服务(AOP 事务管理)。
他需要遵守城市的规定,比如按时交税、参加社区活动(遵循容器的生命周期回调)。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
7. 本站有不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!
66源码网 » Spring Ioc Bean 到底是什么