-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
HttpServeletRequest 를 못가져오는 이슈
23.01.14 22:40 작성 조회수 684
0
안녕하세요.
강의중 AuditorAawareImpl.java 에서
아래와 같이 의존성 주입하니
@Autowired
private HttpServeltRequest httpServletRequest;
-->
"Autowired members must be defined in valid Spring bean.. " 이라고 에러가 납니다.
Spring boot 2.7.7 버전인데요..
어떻게 해야할지 문의드립니다..
답변을 작성해보세요.
0
구파고
지식공유자2023.04.20
안녕하세요
JpaConfig에서 AuditorAwareImpl를 수동으로 빈으로 등록해주고 있는데, @Autowired어노테이션으로 빈을 주입하고 있어서 빈이 아닌데 빈을 주입하고있는걸로 인텔리제이에서 체크해주는걸로 보입니다. 인텔리제이 옵션마다 뜨는 사람이 있고 안뜨는 사람이 있는걸로 생각되네요 아래 코드처럼 생성자 주입으로 빈을 주입하면 아마 에러가 안뜰것입니다.
@RequiredArgsConstructor
public class AuditorAwareImpl implements AuditorAware<String> {
private final HttpServletRequest httpServletRequest;
@Override
public Optional<String> getCurrentAuditor() {
String modifiedBy = httpServletRequest.getRequestURI();
if(!StringUtils.hasText(modifiedBy)) {
modifiedBy = "unknown";
}
return Optional.of(modifiedBy);
}
}
@Configuration
@RequiredArgsConstructor
@EnableJpaAuditing
public class JpaConfig {
private final HttpServletRequest httpServletRequest;
@Bean
public AuditorAware<String> auditorAware() {
return new AuditorAwareImpl(httpServletRequest);
}
}
qnfudk
2023.04.23
당일날 바로 댓글주셨네요.. 계속 디버깅하면서 다른부분 오탈자도 찾고.. 이거저거 고치고 결국 이부분도 수정하러 왔습니다.
수정해주신 코드로하니 잘 동작합니다
피드백 감사합니다
0
Minkyu Ha
질문자2023.01.14
빠른 응답 감사합니다.
https://github.com/Minkyuman/spring-boot-template
에 올렸습니다.
해당 빨간줄은 에러가 아니고 Problems에 나옵니다. 해당강의까지는 실행에는 문제없는듯 합니다.
구파고
지식공유자2023.01.15
올려주신 소스코드 기준으로 로컬에서 실행해보고있는데, 저는 딱히 오류가 안보여서 확인이 좀 힘드네요 ㅠ AuditorAwareImpl도 빈으로 등록이 되어있기 때문에 스프링에서 httpServletRequest을 각 요청마다 빈으로 주입을 해주기 때문에 소스상으로는 크게 문제는 없습니다!
0
구파고
지식공유자2023.01.14
안녕하세요 JpaConfig도 아래와같이 작성하셨는지 한번 확인해보셔야할꺼 같습니다.
그리고 다르게 작성한 부분이 없다면 깃허브 url로 전달주시면 확인해보도록 하겠습니다.
@Configuration
@EnableJpaAuditing
public class JpaConfig {
@Bean
public AuditorAware<String> auditorAware() {
return new AuditorAwareImpl();
}
}
답변 3