@Autowired

Yuno·2024년 8월 16일
0

Spring Framework 에서 의존성 주입(Dependency Injection) 을 자동으로 처리해주는 어노테이션. Spring IoC(제어의 역전) 컨테이너를 통해 관리되는 빈(Bean) 의 의존성을 자동으로 주입할 수 있게 해줌


📌 주요 특징

  1. 자동 의존성 주입 : @Autowired 를 사용하면 Spring이 자동으로 필요한 의존성을 주입해줌. 이를 통해 객체 생성과 관련된 코드를 최소화할 수 있음.
  2. 생성자, 필드, 메서드 주입 : @Autowired 는 생성자, 필드, 메서드에 사용할 수 있음.
  3. 선택적 의존성 : 의존성 주입 시, 필수 또는 선택적으로 주입할 수 있으며, 주입할 빈이 없는 경우의 처리를 설정할 수 있음.

👉 사용법

  1. 필드 주입
    @Autowired 를 필드에 붙여서 의존성을 주입할 수 있음.
@Component
public class MySerivce {
	
    @Autowired
    private MyRepository myRepository;
}
  1. 생성자 주입
    생성자에 @Autowired 를 붙여서 의존성을 주입하는 방법. 이 방법은 불변성을 보장하고, 의존성이 명확이 드러나며, 테스트와 유지보수가 용이
@Component
public class MyService {
	
    private final MyRepository myRepository;
    
    @Autowired
    public MyService(MyRepository myRepository) {
    	this.myRepository = myRepository;
    }
}
  1. 메서드 주입
    메서드에 @Autowired 를 붙여서 의존성을 주입할 수 있음. 주로 설정 메서드에서 사용됨
@Component
public class MyService {
	
    private MyRepository myRepository;
    
    @Autowired
    public void setMyRepository(MyRepository myRepository) {
    	this.myRepository = myRepository;
    }
}
  1. 선택적 의존성
    빈이 존재하지 않을 경우에도 예외를 발생시키지 않고 빈을 주입하고 싶다면, @Aurowired(required=false) 를 사용할 수 있음.
@Autowired(required=false)
private OptionalBean optionalBean;
  1. @Qualifier 와 함께 사용하기
    여러 빈이 같은 타입일 때, 특정 빈을 주입받고자 할 때 @Qualifier 를 사용함.
@Component
public class MyService {
	
    @Autowired
    @Qualifier("specificBean")
    private MyRepository myRepository;
}
profile
Hello World

0개의 댓글