@Component 和 @Bean 的区别

Posted kukufan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Component 和 @Bean 的区别相关的知识,希望对你有一定的参考价值。

觉得这个很不错, 所以自己留着以后备用
原文出处: https://blog.csdn.net/qq_38534144/article/details/82414201
Spring帮助我们管理Bean分为两个部分,一个是注册Bean,一个装配Bean。
完成这两个动作有三种方式,一种是使用自动配置的方式、一种是使用JavaConfig的方式,一种就是使用XML配置的方式。

@Compent 作用就相当于 XML配置

  1. @Component
  2. public class Student {
  3. private String name = "lkm";
  4. public String getName() {
  5. return name;
  6. }
  7. public void setName(String name) {
  8. this.name = name;
  9. }
  10. }

@Bean 需要在配置类中使用,即类上需要加上@Configuration注解

 

  1. @Configuration
  2. public class WebSocketConfig {
  3. @Bean
  4. public Student student(){
  5. return new Student();
  6. }
  7. }

两者都可以通过@Autowired装配

  1. @Autowired
  2. Student student;


那为什么有了@Compent,还需要@Bean呢?
如果你想要将第三方库中的组件装配到你的应用中,在这种情况下,是没有办法在它的类上添加@Component注解的,因此就不能使用自动化装配的方案了,但是我们可以使用@Bean,当然也可以使用XML配置。

以上是关于@Component 和 @Bean 的区别的主要内容,如果未能解决你的问题,请参考以下文章

@Component 和 @Bean 的区别

SpringBoot@Component和@Bean的区别

SpringBoot@Component和@Bean的区别

面试题@Component和@Bean的区别

Spring中@Component和@Bean的区别

@Bean在@Configuration和在@Component中的区别