Bean 수동 등록 => 기술적인 문제나 공통적인 관심사를 처리할 때 사용하는 객체들을 수동으로 등록하는 것이 좋다
기술 지원 Bean => 수동 등록
비즈니스 로직보다는 수가 적기 때문에 부담 x
수동 등록한 빈에 문제가 생겼을 시 에러가 어디서 났는지 확인하기 수월하다.
ex. 비밀번호 암호화
빈 등록 - `@Bean`
그 메서드가 속해있는 클래스에 `@Configuration`
=> Spring IoC Container에 Bean으로 저장된다.
@Configuration
public class PasswordConfig {
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
PasswordEncoder는 interface이다. 이 구현체중에서 BCryptPasswordEncoder를 선택한 상황
BCryptPasswordEncoder란?
비밀번호를 암호화해주는 해시함수(강력한 Hash 매커니즘)
@Autowired
PasswordEncoder passwordEncoder; // 주입받기
// passwordEncoder 지원 메서드
passwordEncoder.encode(password); // 암호화
passwordEncoder.matches(inputPassword, endcodePassword); // 파라미터 순서. 뒤의 값이 암호화된 상태
`encode`는 `String` 타입 반환, `matches`는 `boolean` 타입 반환
728x90
반응형