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.