作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题
代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等
联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。码炫课堂的个人空间-码炫码哥个人主页-面试,源码等
回答
首先我们需要明确 @Component 标注在类上,@Bean 标注在方法上,如果同一个类里面既有 @Component 又有 @Bean,那么 Spring 会同时将:
- 该类本身作为一个 Bean
- @Bean 方法返回的对象也作为一个独立的 Bean 注册到容器中
例如:
@Component
public class SkService {
@Bean
public String skJava() {
return "This is a skJava!";
}
}
在这种情况下:
- Spring 容器会注册一个名为
skService的 Bean,该 Bean 对应 SkService 类的实例。 - Spring 容器也会注册一个名为
skJava的 Bean,对应方法skJava()的返回值
但是,在实际开发过程中,并不推荐 @Component 和 @Bean 搭配使用,而是使用 @Configuration。
630

被折叠的 条评论
为什么被折叠?



