8000 [2026-03-06] Czy wiesz, że zależności w Springu powinniśmy wstrzykiwać przez konstruktor? by sirtekyt · Pull Request #277 · Consdata/consdata.github.io · GitHub
[go: up one dir, main page]

Skip to content

[2026-03-06] Czy wiesz, że zależności w Springu powinniśmy wstrzykiwać przez konstruktor?#277

Open
sirtekyt wants to merge 1 commit intomasterfrom
zaleznosci-spring
Open

[2026-03-06] Czy wiesz, że zależności w Springu powinniśmy wstrzykiwać przez konstruktor?#277
sirtekyt wants to merge 1 commit intomasterfrom
zaleznosci-spring

Conversation

@sirtekyt
Copy link
Contributor

No description provided.

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.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

czekam na źródła @BartoszPietrowiak

*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`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ja bym usunął z tego wpisu te informacje o @qualifier. W tej postaci można odnieść wrażenie, że @qualifier działa tylko w tym konkretnym przypadku, podczas gdy można go użyć w pozostałych trybach czyli jawny konstruktor, settery i autowired.
Ewentualnie można opisać działanie w osobnym akapicie i tam rozróżnić użycie z Lombok i bez.

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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

stylistyka: "Wstrzykiwanie jawnie zdefiniowanym konstruktorem"

- Wstrzykiwanie przez konstruktor z jawnie zdefiniowanym konstruktorem
```java
@Component
public class ServiceA {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

luźna sugestia. ServiceA, ServiceB nic nie znaczą, dlatego zawsze namiawiam, żeby w przykładach używać realistycznych nazw - taki kod jest wtedy bardziej czytelny.
Na przykład OrderService do którego wstrzykujemy PaymentService.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments

0