본문 바로가기
Spring

의존성 주입 방식

by Mecodata 2023. 5. 25.

의존성 주입 (DI, Dependency Injection)

- 객체 내부(사용자)에서가 직접 생성하는 것이 아니라 외부(Spring IOC container)에서 런타임 시점에 생성해서 사용하려는 주체에 주입시켜주는 방식

- 의존성(Dependency) = 코드에서 두 모듈간의 연결 (의존대상 B가 변하면, 그것이 A에 영향을 미치는 것)

 

생성자 주입

- 가장 권장되는 의존성 주입 방식

- private final + 클래스 생성자의존성 주입

장점

- 순환 참조 방지

- 테스트 용이

- final 선언 가능으로 불변성 보장

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter{

     private final TokenProvider tokenProvider;
	 
     @AutoWired // 생성자가 1개이면 @AutoWired 생략 가능
     public SecurityConfig(TokenProvider tokenProvider) {
            this.tokenProvider = tokenProvider;
     }
}

 

필드 주입

- 필드에 @AutoWired 입력해줌으로써 의존성 주입

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter{

  @AutoWired
  private TokenProvider tokenProvider;
}

 

수정자 주입

- setXX 메소드를 정의하여 의존성 주입

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter{

  private TokenProvider tokenProvider;
  
  @AutoWired
  public void setTokenProvider(TokenProvider tokenProvider) {
  	this.tokenProvider = tokenProvider;
  }
  
}

 

'Spring' 카테고리의 다른 글

logback-spring.xml 로그 파일 level별 설정 문제  (0) 2023.09.13
Logback  (0) 2023.09.12
JWT  (0) 2023.05.25
Spring Security 기본 로그인 구현 중 실수 정리  (0) 2023.05.11
Spring Security 기본 세팅  (0) 2023.05.09

댓글