하.. @Component만 들어가면 걍 다 해결되는 줄 알았다.
하지만 잊은게있지. “의존관계 주입.”
아무리 해도 @PostConstruct에 미리 넘겨준 데이터가 웹에 출력이 안되더라. 계속 공포의 NullPointException이 뜨는거임.. 영한쌤이 말하던게 또 떠올랐다. 가장 좋은 에러는 컴파일 에러라는것을.
분명 놓친게 없다고 생각했는데, 크게 놓친게 있었다.
아니,
주입을 하려면,
받는 쪽에도 주입을 해줘야지… 뭐 주는쪽만 계속 주고있으면 뭐해 안받겠다는데 ㅠ ㅠ
놓친 포인트는 의존관계 주입이었다.
itemRepository를 MainController에서 사용하고자 했는데, ItemRepository itemRepository;
이렇게만 적어뒀으니 DI가 안되지… (역할 구분이 안되었지만.. 일단은 습작이므로 스킵 ㅠ 아직은 역할 구분까지 전부 해내기엔 무리가 있으므로, 나중에 차근차근 하기로했다.)
생성자주입이 가장 좋은 방법으로 판단되는데, 어떻게 하더라..? 싶더라고..
그래. 물론 컴파일러가 클래스에 생성자가 없으면 기본 생성자를 만들어주긴 해.. 근데 그걸 DI까지 해주진 않는다고.. 정말 바보같았다 ㅠ
ItemRepository itemRepository;
@Autowired
public MainController(ItemRepository itemRepository) {
this.itemRepository = itemRepository;
}
결국, 그걸 한.. 50분걸려서 깨닫고 위 코드를 추가하고 해결되었다.
PostConstruct도 작동을 잘 하였다. 에효 공부 더 열심히 해야겠다.