Sobes.tech
Middle

Jaka jest różnica między konfiguracją a komponentem?

sobes.tech AI

Odpowiedź od AI

Konfiguracja określa, jak komponenty powinny być tworzone, konfigurowane i łączone ze sobą. Komponent to instancja klasy reprezentująca samodzielny blok funkcjonalny w aplikacji, zarządzany przez Spring.

Za pomocą konfiguracji (np. klasy oznaczonej @Configuration lub pliku XML) deklarujemy beany (@Bean), określamy ich zależności i zakres. Kontener Spring używa tej konfiguracji do tworzenia i zarządzania cyklem życia tych beanów-komponentów.

Przykład:

// 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 // To jest klasa konfiguracji
public class AppConfig {

    @Bean // To jest deklaracja beana (komponentu) MyService
    public MyService myService() {
        return new MyService(); // Tworzymy instancję komponentu
    }
}
// src/main/java/com/example/app/service/MyService.java
package com.example.app.service;

// To jest komponent (bean) zdefiniowany w konfiguracji
public class MyService {

    public void doSomething() {
        System.out.println("MyService robi coś.");
    }
}

W tym przykładzie AppConfig jest konfiguracją, a instancja klasy MyService, utworzona przez metodę myService(), jest komponentem (beanem). Konfiguracja opisuje, jak utworzyć i dostarczyć MyService.