SpringBoot
1. 스프링 부트 소개
1) 스프링 생태게 기반으로한 개발 플랫폼
2) spring-boot-starter
- 자동구성을 제공하는 스타터로 빌드구성이 단순해짐
- XML 구성을 요구하지도 않고 코드로 필요없음
3) 단독 실행 가능한 스프링 애플리케이션 생성
4) 톰캣, 제티 등을 내장 가능.
- WAR(Web Application Archieve) ==> JAR(Java Archieve)
2. 빌드도구
1) 종류 - Maven, Gradle
2) 코드 컴파일, 패키징 수행, 의존성 관리(필요한 라이브러리 관리)
3. 스프링 부트 시작되는 곳
- @SpringBootApplication
- 스프링 부트 탐색지점
- 자동구성 활성화
- main(String[] args)
- 메인 클래스 진입지점
- SpringApplication.run(ThymeleafApplication.class, args)
- 스프링 부트 애플리케이션 구동지점
4. 프로젝트 코드 기본 구조
1) 기본(default) 패키지 사용금지
2) 클래스 패스(classpath)
- src/main/java
com.example.thymeleaf : 최상위 패키지
- src/main/resources
- src/test/java
- src/test/resources
5. 레이아웃
1) 반복되는 화면 영역을 별도로 분리하여
여러 다른 페이지에 적용할 수 있음
- 헤더
- 푸터
- 메뉴
- 상단검색창
2) 의존성
<dependency>
<groupId>nz.net.ultraq.thymeleaf</groupId>
<artifactId>thymeleaf-layout-dialect</artifactId>
</dependency>
3) 관련문법
- th:replace - th:fragment로 선언된 HTML 태그를
다른 HTML로 교체하는 것
ex: <body>
<div th:replace="fragments/header::header"></div>
<div layout:fragment="content"></div>
<div th:replace="fragments/footer::footer"></div>
</body>
4) 레이아웃 만들기
- 공통영역 만들기 - 헤더, 푸터
- 공통영역 헤더 코드
- ex : <div th:fragment="header">
- 공통영역 푸터 코드
- ex : <div th:fragment="footer">
- 공통 영역을 포함한 레이아웃 만들기
- ex)
<!-- 헤더 적용 -->
<div th:replace="fragments/header::header"></div>
<!-- 컨텐츠 적용 -->
<div layout:fragment="content"></div>
<!-- 푸터 적용 -->
<div th:replace="fragments/footer::footer"></div>
- (콘텐츠 만들면서) 공통 영역 적용하기
- 레이아웃을 적용한 콘텐츠 코드
- ex)
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layouts/mainLayout}">
<div layout:fragment="content">
6. 프런트엔드(FrontEnd)
1) Spring Boot에서 공식적으로 제공하는 템플릿 엔진
- Thymeleaf Template
2) 자바스크립트 라이브러리 (jQuery)
3) UI 템플릿
- Bootstrap5 : 오픈소스, 범용적인 서비스 UI 템플릿
7. 화면 개발 템플릿 (Thymeleaf)
1) 기본 문법
- th:href
- HTML a태그처럼 링크 처리하는 문법
- 내부 페이지
- 예) <a th:href="@{/login}">Login</a>
- 직접 URL
- 변수로 전달
- 파라미터 전달
'Spring' 카테고리의 다른 글
[Spring] HttpServletRequest란 무엇인가? (2) | 2023.07.12 |
---|---|
IntelliJ 무료버전인 경우 War파일 Gradle 설정 (1) | 2023.07.08 |
서블릿 요청, 응답 예제. Hello Servlet. (1) | 2023.05.29 |
비즈니스 요구사항과 설계 (1) | 2023.04.30 |
intellij spring boot, gradle 오류 발생 및 해결 (0) | 2023.04.30 |