의존성 주입 (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 |
댓글