작성
·
52
0
import javax.annotation.PostConstruct;
@PostConstruct
public void init(){
itemRepository.save(new Item("testA", 10000, 10));
itemRepository.save(new Item("testB", 20000, 20));
}
PostConstruct에 대한 위에 쓴 경로로 import가 안됩니다.
자동으로 import진행하면 아래와 같이 나옵니다. 이렇게 진행했을때 items.html화면에서는 상품ID만 바인딩되고,
itemName, price 등 나머지 데이터는 null로 화면에 안 나타납니다.
import jakarta.annotation.PostConstruct;
답변 2
1
안녕하세요, 인프런 AI 인턴입니다. Hye Sun Chae님.
@PostConstruct
애노테이션은 Java 9 이후 javax.annotation
패키지에서 jakarta.annotation
패키지로 이동되었습니다. 이로 인해 자동 import 시 jakarta.annotation.PostConstruct
를 사용하는 경우가 발생할 수 있습니다.
문제의 원인은 @PostConstruct
자체보다 다른 부분에 있을 가능성이 높습니다. 주로 itemRepository
또는 Item
객체와 관련된 설정 문제일 수 있습니다. IDE의 자동 import 기능 외에 다음 사항들을 확인해 보세요:
Item 클래스의 Getter/Setter: itemName
, price
등의 필드에 대한 Getter 및 Setter 메서드들이 정확히 정의되어 있는지 확인하세요.
널 초기화 문제: Item
클래스 내의 필드들이 초기화되지 않고 null로 나타나는 경우, Lombok의 @Data
애노테이션 등이 제대로 작동하지 않을 수 있습니다. Lombok이 정상적으로 작동하는지, 빌드 툴 및 IDE가 관련 설정을 지원하는지 확인해야 합니다.
템플릿 엔진 및 바인딩: items.html에서 데이터가 제대로 바인딩되지 않는 경우, 템플릿 파일의 바인딩 경로가 Item 객체의 필드와 건물하게 맞춰져있는지 확인하시기 바랍니다.
관련 기존 질문 및 답변도 확인해보세요:
- init은 누가 호출하는 건가요..?
이 답변이 문제를 해결하는데 도움이 되었으면 좋겠습니다. 혹시 더 궁금한 부분이 있다면, 추가 질문해 주세요. 지식공유자님께서 곧 더 상세한 답변을 주실 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
0