-
공개 HTML
- /resources/static 폴더에 HTML을 넣어두면, 실제 서비스에서도 공개된다. 서비스를 운영한다면 지금처럼 공개할 필요없는 HTML을 두는 것은 주의하자
부트스트랩
- HTML을 편리하게 개발하도록 도와줌
- intellij에서 부트스트랩이 적용이 안될 시 out 폴더를 삭제하고 어플리케이션을 재시작하면된다.
thymeleaf
|입력|
-> || 안에 문자를 입력하면 조합을 전부 합쳐주는 기능을 한다.
- th:each를 이용해서 loop를 순회한 만큼 변수에 넣어줄 수 있다.
- ex) th:each="item : ${items}" //모델에 있는 items만큼 루프를 돌아서 item 변수에 집어 넣는다.
- th:text=""를 이용해서 text 출력
@PostConstruct
- 스프링빈 생명주기에서 생성자가 호출되었을 때, 아직 빈이 초기화되지 않은 상태이다. 따라서,
- PostConstruct를 사용해서 빈을 초기화 할 수 있다.
- bean lifecycle에서 오직 한 번만 수행된다는 것을 보장할 수 있다. (WAS가 올라가면서 bean이 생성될 때 딱 한 번 초기화함)
- 따라서, @PostConstruct를 사용하면 bean이 여러번 초기화되는 것을 방지할 수 있다.
- th:href="@{/basic/items/{itemId}(itemId=${item.Id})}"
- (itemId=${item.id})를 치환해서 {itemId}에 넣어준다.
- 결론적으로 href로 이동할 시 domain/basic/items/itemId로 이동한다.
- nature template인 이유는 html을 어느정도 살리면서 반환하기 때문
- th:xxx가 붙은 부분은 서버사이드에서 렌더링되고, 기존 것을 대체한다. th:xxx가 없으면 기존 html 속성이 그대로 사용된다.
- HTML로 파일을 직접 열었을 때, th:xxx가 있어도 웹 브라우저는 th: 속성을 알지 못하므로 무시한다.
- 따라서, HTML 파일 보기를 유지하면서 템플릿 기능도 사용할 수 있다.
@PreDestroy
- 스프링빈 생명주기에서 빈을 종료하는 어노테이션
- 마지막 소멸 단계
- close() 직전에 수행
- 객체(빈)을 제거하기 전에 수행해야할 메서드가 있다면 사용하는 어노테이션