71人参与 • 2026-05-13 • Java
直接给你一句话戳穿本质,马上彻底懂
答案:
这个方法本身不是 bean,方法执行后返回的对象才是 bean!
spring 会把这个返回的对象放进容器里管理!
看这段代码:
@configuration // 配置类
public class mesaageconfig {
// 加了 @bean 的方法
@bean
public messageconverter messageconverter() {
// 1. 自己 new 对象
jackson2jsonmessageconverter converter = new jackson2jsonmessageconverter();
// 2. 自己配置对象
converter.setcreatemessageids(true);
// 3. 返回对象
return converter;
}
}
spring 会自动调用这个方法,拿到返回值,然后:
总结:
@bean = 告诉 spring:执行我这个方法,把返回的对象给我当成 bean 管理!
画个等号你就懂了:
@bean
public 消息 造消息的方法() {
造一个消息...
return 消息; // spring 拿走这个「消息」当 bean
}
@bean:就是贴在流水线上的标签,告诉 spring 来拿货其他类里直接注入就能用:
@service
public class messageservice {
// 直接注入!spring 自动把上面方法返回的对象给你
@autowired
private messageconverter messageconverter;
}
| 方式 | 注解 | 适用场景 |
|---|---|---|
| 自己写的类 | @service @component | 类是你写的,直接加注解 |
| 别人写的类(jackson、rabbittemplate…) | @bean | 类不是你写的,你需要new 出来 + 配置,交给 spring |
你的场景:
jackson2jsonmessageconverter 是别人写的类,你需要:
new 出来setcreatemessageids(true)→ 必须用 @bean!
@bean 的方法 = spring 会自动调用最直白的一句:
你写的是方法,但 spring 要的是你方法 return 出来的那个对象!
再给你对应一下:
@configuration:造 bean 的工厂类@bean:工厂里的加工方法return xxx:加工好的产品 → bean以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论