Diferença Spring- @ Bean e @Component

A diferença entre @Component e @Bean

O Spring nos ajuda a gerenciar o Bean em duas partes: uma é Bean de registro e uma Bean de montagem.

Existem três maneiras de realizar essas duas ações, uma é usar a configuração automática, uma é usar o JavaConfig e a outra é usar a configuração XML.

@Compent é equivalente à configuração XML

@Component
public class Student {

    private String name = "lkm";

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

O @Bean precisa ser usado na classe de configuração, ou seja, a classe precisa ser anotada com @Configuration

@Configuration
public class WebSocketConfig {

    @Bean
    public Student student(){
        return new Student();
    }
}

Ambos podem ser montados via @Autowired

@Autowired
Student student;

 

Por que você precisa do @Bean quando possui o @Compent?

Se você deseja montar os componentes na biblioteca de terceiros em seu aplicativo, nesse caso, não há como adicionar a anotação @Component à sua classe, portanto, você não pode usar a solução de montagem automatizada, mas nós Você pode usar o @Bean, é claro, também pode usar a configuração XML.

 

Por que existe uma anotação @Bean na primavera?

As anotações se enquadram em duas categorias

1. Um é usar o Bean, ou seja, o Bean que foi configurado no arquivo xml para concluir a montagem de atributos e métodos, como @Autowired, @Resource, você pode passar porTYPE (@Autowired), byNAME (@Resource ) Maneira de obter Bean;

2. Um tipo é Bean registrado, @Component, @Repository, @Controller, @Service, @Configration.Essas anotações são todos os objetos que você deseja instanciar em um Bean, colocados no contêiner IoC, quando desejar usar , Ele funcionará com @Autowired e @Resource acima para montar perfeitamente objetos, propriedades e métodos.

  • O @Bean indica claramente um método, qual método - um método de gerar um bean e entregue ao gerenciamento de contêineres do Spring; a partir disso, entendemos por que o @Bean é colocado na anotação do método, porque é muito Diga explicitamente ao método anotado que você gera um Bean para mim, entregue-o ao contêiner Spring e deixe o resto para você.
  • Lembre-se, se @Bean for colocado no método, é um Bean.
Publicado 952 artigos originais · elogiado 1820 · 890.000 visualizações

Acho que você gosta

Origin blog.csdn.net/Dream_Weave/article/details/105394307
Recomendado
Clasificación