From da277c05b1a708fe3895bfe8496807a8f3d37dc3 Mon Sep 17 00:00:00 2001 From: bdomzalski Date: Thu, 12 Feb 2026 12:07:17 +0100 Subject: [PATCH] =?UTF-8?q?[2025-12-04]=20Czy=20wiesz,=20czym=20jest=20nar?= =?UTF-8?q?z=C4=99dzie=20Artillery=3F=20-=20przebicie=20daty?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...owinnismy-wstrzykiwac-przez-konstruktor.md | 132 ++++++++++++++++++ .../thumbnail.webp | Bin 0 -> 46848 bytes 2 files changed, 132 insertions(+) create mode 100644 _posts/pl/2026-03-06-czy-wiesz-ze-zaleznosci-w-springu-powinnismy-wstrzykiwac-przez-konstruktor.md create mode 100644 assets/img/posts/2026-03-06-czy-wiesz-ze-zaleznosci-w-springu-powinnismy-wstrzykiwac-przez-konstruktor/thumbnail.webp diff --git a/_posts/pl/2026-03-06-czy-wiesz-ze-zaleznosci-w-springu-powinnismy-wstrzykiwac-przez-konstruktor.md b/_posts/pl/2026-03-06-czy-wiesz-ze-zaleznosci-w-springu-powinnismy-wstrzykiwac-przez-konstruktor.md new file mode 100644 index 000000000..c629ebce5 --- /dev/null +++ b/_posts/pl/2026-03-06-czy-wiesz-ze-zaleznosci-w-springu-powinnismy-wstrzykiwac-przez-konstruktor.md @@ -0,0 +1,132 @@ +--- +layout: post +title: "Czy wiesz, że zależności w Springu powinniśmy wstrzykiwać przez konstruktor?" +date: 2026-02-12T08:00:00+01:00 +published: true +didyouknow: false +lang: pl +author: bpietrowiak +image: /assets/img/posts/2026-03-06-czy-wiesz-ze-zaleznosci-w-springu-powinnismy-wstrzykiwac-przez-konstruktor/thumbnail.webp +description: "Poznaj zalety tego podejścia, przykłady kodu i wskazówki dotyczące testowania oraz bezpieczeństwa aplikacji." +tags: +- spring boot +- java +--- + +Czy wiesz, że sposób wstrzykiwania zależności w Springu może mieć ogromny wpływ na jakość Twojego kodu, jego bezpieczeństwo i łatwość testowania? +Jeśli chcesz pisać lepsze aplikacje, warto poznać najważniejsze techniki i wybrać tę, która naprawdę robi różnicę. + +## Czym jest wstrzykiwanie zależności? + +Wstrzykiwanie zależności (ang. *Dependency Injection*, DI) w Springu to kluczowy mechanizm, +który umożliwia automatyczne zarządzanie zależnościami pomiędzy obiektami w aplikacji. +Jest to część szerszego podejścia do programowania, znanego jako *Inversion of Control* (IoC), +w którym zarządzanie tworzeniem obiektów i ich zależnościami przekazywane jest z aplikacji do kontenera IoC (w Springu jest nim Spring Container). + +## Metody wstrzykiwania zależności + +Możemy wyróżnić kilka sposobów wstrzykiwania zależności, z których każdy ma swoje zalety i ograniczenia. +Poniżej przedstawiam najpopularniejsze techniki DI: + +- Wstrzykiwanie przez konstruktor z jawnie zdefiniowanym konstruktorem +```java +@Component +public class ServiceA { + private final ServiceB serviceB; + + public ServiceA(final ServiceB serviceB) { + this.serviceB = serviceB; + } +} +``` + +- Wstrzykiwanie przez konstruktor z wykorzystaniem adnotacji `@RequiredArgsConstructor` +```java +@Component +@RequiredArgsConstructor +public class ServiceA { + private final ServiceB serviceB; +} +``` +*Adnotacja `@RequiredArgsConstructor` pochodzi z biblioteki Lombok i automatycznie generuje konstruktor przyjmujący wszystkie pola oznaczone jako `final` +lub z adnotacją `@NonNull`.* + +- Wstrzykiwanie przez konstruktor z wykorzystaniem adnotacji `@RequiredArgsConstructor` oraz `@Qualifier` +```java +@Component +@RequiredArgsConstructor +public class ServiceA { + @Qualifier("serviceB") + private final ServiceB serviceB; +} +``` +*Adnotacja `@Qualifier` jest przydatna, gdy w kontekście Springa istnieje wiele beanów tego samego typu i chcemy wskazać, +który z nich ma zostać wstrzyknięty.* + +W pliku `lombok.config` należy dodać wpis: + +``` +lombok.copyableAnnotations += org.springframework.beans.factory.annotation.Qualifier +``` + +- Wstrzykiwanie przez settery (metody ustawiające) +```java +@Component +public class ServiceA { + private ServiceB serviceB; + + @Autowired + public void setServiceB(ServiceB serviceB) { + this.serviceB = serviceB; + } +} +``` +*Wstrzykiwanie przez settery może być uzasadnione, gdy zależność jest opcjonalna lub gdy pracujemy z kodem legacy, gdzie nie możemy zmienić konstruktora.* + +- Wstrzykiwanie przez pola +```java +@Component +public class ServiceA { + @Autowired + private ServiceB serviceB; +} +``` +*Wstrzykiwanie przez pola jest najmniej zalecane, ponieważ utrudnia testowanie i nie pozwala na oznaczenie zależności jako finalne. +Może być stosowane w wyjątkowych przypadkach, np. w bardzo prostych klasach lub kodzie legacy.* + +## Którą metodę powinniśmy wykorzystywać i dlaczego? + +Rekomendowanym podejściem jest wykorzystywanie wstrzykiwania przez konstruktor. Oto powody, dla których to podejście jest preferowane: + +- **Wymuszenie przekazania zależności podczas tworzenia obiektu** – wstrzykiwanie przez konstruktor gwarantuje, +że wszystkie wymagane zależności zostaną dostarczone w momencie tworzenia instancji obiektu. Dzięki temu unikamy sytuacji, +w której klasa może być używana bez pełnych zależności, co mogłoby prowadzić do błędów w czasie działania. +- **Niezmienność obiektu** – przypisanie zależności poprzez konstruktor oznacza, że pola te mogą być oznaczone jako `final`, +co zapewnia ich niezmienność i chroni przed niepożądanymi modyfikacjami w trakcie cyklu życia obiektu. Taka konstrukcja promuje czystszy i bardziej bezpieczny kod. +- **Testy jednostkowe** – wstrzykiwanie przez konstruktor ułatwia testowanie, +ponieważ możemy ręcznie dostarczać zależności (np. mocki) bez potrzeby używania narzędzi wspomagających, jak refleksja. +To pozwala na łatwiejsze pisanie testów jednostkowych i zachowanie pełnej kontroli nad zależnościami podczas testowania. + + +Wstrzykiwanie przez konstruktor wspiera zasady **SOLID**, w szczególności: + +- **Single Responsibility Principle (SRP)** – dzięki tej metodzie klasa ma jasno zdefiniowane odpowiedzialności, +a zarządzanie zależnościami odbywa się na poziomie konstrukcji obiektu. +- **Dependency Inversion Principle (DIP)** – poprzez konstruktor, zależności są wprowadzane od zewnątrz, +co wzmacnia niezależność od szczegółowych implementacji. + +Wstrzykiwanie przez konstruktor sprawia, że zależności klasy są jasno widoczne i wyraźnie zadeklarowane w jej definicji. +Programista, przeglądając kod, natychmiast widzi, jakie komponenty są wymagane do działania klasy. + +W przypadku wstrzykiwania przez konstruktor łatwiej jest zidentyfikować brakujące zależności lub problemy z ich konfiguracją podczas uruchamiania aplikacji, +ponieważ Spring od razu poinformuje nas o braku zależności, której nie można dostarczyć. + +Konstruktor pozwala lepiej unikać problemów z cyklicznymi zależnościami, które mogą występować w innych formach wstrzykiwania (np. wstrzykiwanie przez pola). +Spring będzie w stanie zidentyfikować takie sytuacje już na etapie konfigurowania obiektów, co ułatwia ich eliminację. + +## Podsumowanie + +Wstrzykiwanie zależności przez konstruktor to najlepsza praktyka w aplikacjach Spring. +Zapewnia bezpieczeństwo, czytelność kodu, łatwość testowania i zgodność z zasadami SOLID. +Warto stosować to podejście zawsze, gdy to możliwe, a inne metody rezerwować dla szczególnych przypadków (opcjonalne zależności, legacy code). +Dzięki temu Twój kod będzie bardziej niezawodny i łatwiejszy w utrzymaniu. diff --git a/assets/img/posts/2026-03-06-czy-wiesz-ze-zaleznosci-w-springu-powinnismy-wstrzykiwac-przez-konstruktor/thumbnail.webp b/assets/img/posts/2026-03-06-czy-wiesz-ze-zaleznosci-w-springu-powinnismy-wstrzykiwac-przez-konstruktor/thumbnail.webp new file mode 100644 index 0000000000000000000000000000000000000000..0495563fcd45b4e9ee959be7519234c7dcceaa88 GIT binary patch literal 46848 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 literal 0 HcmV?d00001