Spring @Autowired 필드가 null 인 이유를 모르겠습니다.
public class CustomOAuth2UserService extends DefaultOAuth2UserService {
@Autowired
private MemberRepository memberRepository; // <-- 디버그로 실행하면 이부분이 null 로 확인이 됩니다.
....
@Override
public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException {
...
Member member = memberRepository.findByEmail(email); // <-- 여기서 NullPointException 이 발생합니다.
...
}
최초 oauth2 로그인 처리 시 기존 가입자인지 체크하기 위해서 memberRepository 사용하려고 하는데 저 객체가 null 로 되어서 NullPointException 이 발생합니다. 왜 그런걸까요?? ㅠㅠ
아래 컨피그에서 oauth2Login() 부분에서 로그인 처리를 하고 호출하는 방식입니다.
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/", "/oauth2/**", "/login/**", "/signup", "/css/**", "/images/**", "/js/**", "/console/**", "/favicon.ico/**")
.permitAll()
.anyRequest().authenticated()
.and()
.oauth2Login()
.userInfoEndpoint().userService(new CustomOAuth2UserService())
답변 1
4
안녕하세요. 조호형님
@Autowired를 사용하려면 CustomOAuth2UserService가 스프링이 관리하는 빈이어야 합니다.
지금 configure(HttpSecurity http) 코드를 보면 new CustomOAuth2UserService() 처럼 직접 생성하고 있습니다. 그러니까 CustomOAuth2UserService는 스프링이 관리하는 빈이 아니라는 뜻이지요. 따라서 @Autowired가 동작하지 않습니다.
스프링 입장에서 내가 관리하는 클래스여야 주입을 할 수 있겠지요?
가장 간단한 방법은
CustomOAuth2UserService를 @Service, @Component 등으로 스프링 빈으로 등록하신 다음에
configure에서 new 대신에 주입받은 CustomOAuth2UserService를 넣어주시면 됩니다^^
감사합니다.
강의 관련 외 질문입니다.
0
65
2
SpringBoot4 + Hibernate7 모듈 등록 방법 공유
0
86
1
BeanCreationException
0
86
3
Update 후 UpdateMemberResponse 매핑할 때
0
46
1
트랜잭션을 사용 안 할 때 커넥션은 언제 가져오나요?
0
98
2
페이징 + 검색조건 관련해서 질문드립니다.
0
70
1
Query Dsl Q파일 질문입니다.
0
81
1
루트 쿼리라는것은
0
58
1
메서드를 분리하는 기준
0
62
1
findAllWithMemberDelivery 메서드 질문드립니다.
0
108
3
연관관계 매핑을 안 쓸 경우, 사용해야 하는 전략
0
83
2
fetch join과 영속화와 OSIV의 관계
0
84
2
Distinct 사용 전 결과에 대한 의문
0
113
2
레포지토리 계층에서의 트랜잭션에 대한 의문
0
56
1
영속성 컨텍스트 생명주기의 신기한 부분이 있습니다.
0
78
2
dto 필드 속 엔티티 여부
0
58
1
뷰템플릿 사용 시
0
76
2
Result 클래스 관련 질문
0
56
1
@PostConstruct 프록시 관련 질문드립니다
0
85
1
DTO 대신 Form 사용은 안되나요?
0
133
1
OSIV ON 상태일 때
0
95
1
fetch join VS fetch join 페이징 궁금증
0
179
2
양방향 연관관계 알아보는 법?
0
104
1
16강 17강 간단 정리 이게 맞을까요 ?
0
165
2





