spring-boot-dependency-injection

Solid

Provides dependency injection patterns for Spring Boot projects, including constructor-first design, optional collaborator handling, bean selection, and wiring validation. Use when creating services and configurations, replacing field injection, or troubleshooting ambiguous or fragile Spring wiring.

AI & Automation 278 stars 32 forks Updated 5 days ago MIT

Install

View on GitHub

Quality Score: 91/100

Stars 20%
81
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Spring Boot Dependency Injection ## Overview Provides constructor-first dependency injection patterns for Spring Boot: - mandatory collaborators via constructor injection - optional collaborators via `ObjectProvider` or no-op fallbacks - bean selection via `@Primary` and `@Qualifier` - validation via minimal context tests before full integration ## When to Use Use this skill when: - creating a new `@Service`, `@Component`, `@Repository`, or `@Configuration` class - replacing field injection in legacy Spring code - resolving multiple beans of the same type with qualifiers or primary beans - handling optional features, adapters, or integrations without null-driven wiring - reviewing circular dependencies or brittle context startup failures - preparing code for direct constructor-based unit testing ## Instructions ### 1. Separate mandatory and optional collaborators For each class, identify: - mandatory collaborators required for correct behavior - optional collaborators that enable integrations, caching, notifications, or feature-flagged behavior Mandatory collaborators belong in the constructor. Optional ones need an explicit strategy such as `ObjectProvider`, conditional beans, or a no-op implementation. ### 2. Default to constructor injection For application services and adapters: - inject mandatory dependencies through the constructor - keep injected fields `final` - instantiate the class directly in unit tests without starting Spring A single constructor is u...

Details

Author
giuseppe-trisciuoglio
Repository
giuseppe-trisciuoglio/developer-kit
Created
7 months ago
Last Updated
5 days ago
Language
Python
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category