Sobes.tech
Middle

Qual é a diferença entre configuração e componente?

sobes.tech IA

Resposta da IA

A configuração define como os componentes devem ser criados, configurados e ligados entre si. Um componente é uma instância de uma classe que representa um bloco funcional independente na aplicação, gerido pelo Spring.

Com a configuração (por exemplo, uma classe anotada com @Configuration ou um ficheiro XML), declaramos os beans (@Bean), especificamos as suas dependências e o seu âmbito. Depois, o contêiner Spring usa esta configuração para criar e gerir o ciclo de vida destes beans-componentes.

Exemplo:

// src/main/java/com/example/app/config/AppConfig.java
package com.example.app.config;

import com.example.app.service.MyService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration // Esta é uma classe de configuração
public class AppConfig {

    @Bean // Isto declara um bean (componente) MyService
    public MyService myService() {
        return new MyService(); // Cria uma instância do componente
    }
}
// src/main/java/com/example/app/service/MyService.java
package com.example.app.service;

// Este é um componente (bean) definido na configuração
public class MyService {

    public void doSomething() {
        System.out.println("MyService está a fazer algo.");
    }
}

Neste exemplo, AppConfig é a configuração, e a instância da classe MyService, criada pelo método myService(), é um componente (bean). A configuração descreve como criar e fornecer MyService.