Core CDI patterns including constructor injection, scopes, producers, and container configuration
Core CDI (Contexts and Dependency Injection) standards applicable to any CDI container. Covers dependency injection patterns, scopes, producer methods, events/observers, and interceptors.
This skill applies to Jakarta CDI projects:
jakarta.inject:jakarta.inject-apijakarta.enterprise:jakarta.enterprise.cdi-api// CDI Core
import jakarta.inject.Inject;
import jakarta.inject.Named;
import jakarta.inject.Singleton;
// CDI Scopes
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.context.RequestScoped;
import jakarta.enterprise.context.SessionScoped;
import jakarta.enterprise.context.Dependent;
// CDI Producers and Optional Dependencies
import jakarta.enterprise.inject.Produces;
import jakarta.enterprise.inject.Instance;
// CDI Events
import jakarta.enterprise.event.Event;
import jakarta.enterprise.event.Observes;
import jakarta.enterprise.event.ObservesAsync;
// CDI Interceptors
import jakarta.interceptor.AroundInvoke;
import jakarta.interceptor.Interceptor;
import jakarta.interceptor.InterceptorBinding;
import jakarta.interceptor.InvocationContext;
// Quarkus Configuration
import org.eclipse.microprofile.config.inject.ConfigProperty;
standards/basic.md — Injection, scopes, scope mismatch rule, optional dependencies, producers, error handlingstandards/advanced.md — Events, observers, interceptorstemplates/cdi-bean.java.tmpl — ApplicationScoped bean with constructor injection and Instancetemplates/cdi-producer.java.tmpl — Producer method with Null Object pattern (never returns null)@Inject needed) or @Inject on injection constructorInstance<T>Instance<T> used for optional dependencies (not Provider<T>)@Priority for deterministic orderingpm-dev-java:java-quarkus — Quarkus-specific CDI patterns, container/Docker config, securitypm-dev-java:java-core — Core Java patternspm-dev-java:junit-core — CDI testing patterns