Jakarta Contexts & Dependency Injection(CDI)
CDI는 "Contexts and Dependency Injection"의 약자로, 자바 엔터프라이즈 애플리케이션 개발을 위한 스펙이며, Java EE (Java Platform, Enterprise Edition)에서 사용되는 기술 중 하나이다. CDI는 컨텍스트와 의존성 주입을 통해 관리되는 컴포넌트 기반 애플리케이션을 지원합니다.
의존성 주입을 수행하는데 사용할 수 있는데, 자바의 표준으로서 스프링에서는 CDI가 구현되어 있으므로 CDI어노테이션도 지원이 된다.
자바 라이브러리이기 때문에 의존성을 추가해줘야 한다.
<dependency>
<groupId>jakarta.inject</groupId>
<artifactId>jakarta.inject-tck</artifactId>
<version>2.0.1</version>
</dependency>
//@Component
@Named
class BusinessService{
private DataService dataService;
// @Autowired
@Inject
public void setDataService(DataService dataService) {
this.dataService = dataService;
System.out.println("Setter Injection");
}
public DataService getDataService() {
return dataService;
}
}
위의 예시처럼 스프링에서 지원하는 어노테이션 대신 활용이 가능하다.