[스프링] bean 수동등록, PasswordEncoder 구현하기

구동현·2024년 1월 24일

스프링

목록 보기
13/21
post-thumbnail
@Configuration
public class PasswordConfig {

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
}
@SpringBootTest
public class PasswordEncoderTest {

    @Autowired
    PasswordEncoder passwordEncoder;

    @Test
    @DisplayName("수동 등록한 passwordEncoder를 주입 받아와 문자열 암호화")
    void test1() {
        String password = "Robbie's password";

        // 암호화
        String encodePassword = passwordEncoder.encode(password);
        System.out.println("encodePassword = " + encodePassword);

        String inputPassword = "Robbie";

        // 복호화를 통해 암호화된 비밀번호와 비교
        boolean matches = passwordEncoder.matches(inputPassword, encodePassword);
        System.out.println("matches = " + matches); // 암호화할 때 사용된 값과 다른 문자열과 비교했기 때문에 false
    }
}

@Bean + @Autowired

bean으로 생성해서 test클래스에서 Autowired되게 한다. (수동등록)

@SpringBootTest

해당 클래스가 Test 클래스임을 알림.

수동등록이란?

business logic과 다르게 기술 logic의 경우, 수동등록을 할때가 있음.

  1. @bean 을 원하는 기술로직에 달아준다.
  2. @Autowired를 구현할 때 달아준다.

자세한 것은 추후에 더 서술하겠다.

profile
개발합시다

0개의 댓글