작성
·
2K
0
@Configuration
public class BCryptConfig {
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
위와 같이 Config class에 PasswordEncoder 빈을 생성했는데도
Description:
Parameter 1 of constructor in domain.Member.service.MemberService required a bean of type 'org.springframework.security.crypto.password.PasswordEncoder' that could not be found.
Action:
Consider defining a bean of type 'org.springframework.security.crypto.password.PasswordEncoder' in your configuration.
Process finished with exit code 1
와 같이 에러가 발생하면 어떻게 해야할까요?
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다.
jayjoy05님의 문제를 보니 PasswordEncoder
빈을 정의한 것 같지만 Spring이 해당 빈을 찾지 못하는 상황인 것으로 보입니다. BCryptConfig
클래스가 컴포넌트 스캔의 대상이 되어야 하는데요. 몇 가지 해결방법을 살펴볼 수 있습니다:
BCryptConfig
클래스가 속한 패키지가 컴포넌트 스캔 대상이 맞는지 확인하시기 바랍니다. 메인 설정 클래스 또는 @SpringBootApplication
애너테이션이 붙어있는 클래스 옆에 위치해 있는지 살펴보세요.
클래스에 @Configuration
애너테이션이 제대로 붙어있는지, 다른 설정에서 이를 @Import
하여 사용하지 않는지 확인하세요.
PasswordEncoder
를 필요로 하는 MemberService
가 빈으로 등록되어 있는지 확인하세요. 또한, MemberService
가 생성자 주입을 통해 PasswordEncoder
를 받도록 되어 있는지 살펴보면 좋을 것 같습니다.
PasswordEncoder
빈을 명시적으로 주입하지 않고 있거나, 자동 와이어링 되지 않도록 설정되어 있다면 이를 수정해야 합니다.
만약 @ComponentScan
을 이용하여 스캔 범위를 조정하고 있다면, BCryptConfig
가 정의된 패키지가 포함되었는지 확인하세요.
개발 도구나 IDE에서 프로젝트를 재빌드 하거나, 캐시를 재설정하여 문제가 해결되는지 확인해보세요.
이러한 단계들을 확인해보신 후에도 문제가 해결되지 않는다면, 전체 구성 및 설정 코드를 다시 살펴보시거나 스프링 로그 출력 설정을 DEBUG 레벨로 변경하여 상세 정보를 확인해 보세요. 이를 통해 컨텍스트 로딩 시 더 구체적인 문제를 진단할 수 있을 것입니다.
아래 AI인턴 참고해서 해결했습니다! 감사합니다