Inject(Annotation)

Hanbyul·2023년 11월 16일

Java

목록 보기
1/23

@Inject는 Java의 표준 의존성 주입(Dependency Injection) 어노테이션.
이 어노테이션은 주로 클래스나 메소드, 필드에 사용되며, 해당 요소에 의존성을 주입할 때 사용됨.

예를 들어, 특정 클래스에서 다른 클래스의 메서드나 필드를 사용하고 싶을 때, 직접 인스턴스를 생성해서 사용하는 대신에 @Inject 어노테이션을 사용하여 필요한 객체를 주입받아 사용할 수 있음.

Spring 프레임워크에서는 @Autowire 자체 의존성 주입 어노테이션이 있지만, @Inject 는 JSR-330(javax.inject.Inject)라는 Java의 표준 스펙에 정의된 어노테이션이므로, Spring을 사용하지 않는 환경에서도 동일하게 동작함.

ex.
public class MyService {
    private final MyRepository myRepository;

    @Inject
    public MyService(MyRepository myRepository) {
        this.myRepository = myRepository;
    }

    // ...
}

위의 예제에서 MyService 클래스는 
MyRepository에 대한 의존성을 가지고 있음. 
@Inject 어노테이션을 생성자에 붙여서, 
MyService 인스턴스 생성 시 
MyRepository 인스턴스를 주입받도록 함. 
이렇게 하면 MyService 내부에서 MyRepository의 
메서드를 자유롭게 사용할 수 있음.
profile
공부공부

0개의 댓글