(0) 스프링 프로젝트 생성하기
#1 프로젝트 생성
IntelliJ 에서 프로젝트 생성, Spring initializr에서 생성으로 가능
본 프로젝트는 Spring initializr에서 생성했다.
#2 Spring initializr
링크 : https://start.spring.io/index.html
각종 Builder와 Spring Boot 버전,Java 버전, Dependencies를 선택
생성한 Jar 파일을 지정할 프로젝트 path에 압축해제 한다.
(1) MYSQL 서버와 프로젝트 연결하기
#1 MYSQL 설치 및 설정
-링크: https://dev.mysql.com/downloads/installer/
-1. MYSQL 서버를 설치 후 installer 실행
-2. MYSQL 8.0 Command Line Client CLI 도구를 활용하여 root 계정의 비밀번호설정
-3. “Create db db_name;” 쿼리를 활용하여 db를 생성하기
(2) 프로젝트와 Mysql 서버와 연결하기
- 1. 프로젝트의 resources의 application.properties 파일은 삭제하고 아래의 application.yml 파일을 생성
application.yml는 생성한 DB 서버와 프로젝트간의 연결 정보를 담고있다.
# 서버 포트 설정
server:
port: 60000 // 프로젝트의 어플리케이션에 접근 시 필요 (localhost:60000)
# database 연동 설정
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/[DB_name]?serverTimezone=Asia/Seoul&characterEncoding=UTF-8
username: root // root 계정 외 다른 계정 생성 시 다른 계정 사용 가능
password: 0000 // 계정의 pwd 입력
thymeleaf:
cache: false
# spring data jpa 설정 // ORM(Object-Relational Mapping)
jpa:
database-platform: org.hibernate.dialect.MySQL8Dialect
open-in-view: false
show-sql: true
hibernate:
ddl-auto: create
(3) View template-Controller 연결해 페이지 생성
#1 Spring Boot 프로젝트의 구조
-Java Spring Boot 프레임워크 구조는 기본적으로 MVC 패턴이다.
-
Model: Java의 메서드를 DB의 쿼리로 변환하여 수행한다.
-View: Controller에서 설정한 path에 클라이언트가 요청 시 연결된 html을 보여준다.
-Controller: path와 View template를 연결하며, DB의 정보를 Model을 통해 html에 동적으로 전달한다.
#1 Controller 생성
- 1. 프로젝트 package 하위에 Controller package를 생성한다.
-2. 패키지 내 controller 클래스 생성
-3. 클래스에 다음과 같은 Annotation을 추가한다.
@Controller // 이 클래스가 Controller 기능을 수행함
@RequiredArgsConstructor // 후에 있을 Service 클래스의 변수의 의존성을 부여한다.
@RequestMapping("/board") // Request의 path를 지정한다.
-4. 메서드를 추가한다.
@GetMapping("/save") // 리퀘스트 메서드와 하위 path를 지정한다.
public String saveForm()
{
return "save"; // Thymeleaf를 통해 String을 리턴 시 String.html의 뷰템플릿과 연결된다.
}
-5. 연결한 View template를 생성한다.
-Resources.templates 에 save.html 파일 생성
-다음과 같은 내용으로 구성
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>save</title>
</head>
<body>
<!-- action속성: 목적지(서버주소), method속성: http request method(get, post) -->
<form action="/board/save" method="post"">
writer: <input type="text" name="boardWriter"> <br>
pass: <input type="text" name="boardPass"> <br>
title: <input type="text" name="boardTitle"> <br>
contents: <textarea name="boardContents" cols="30" rows="10"></textarea>
<input type="submit" value="글작성">
<!—name: 이후 DTO 객체로 변환 시 매칭되어 변수에 저장 -->
</form>
</body>
</html>
- 참조: https://www.youtube.com/watch?v=YshcPPHClR4&list=PLV9zd3otBRt7jmXvwCkmvJ8dH5tR_20c0&index=1
'공부 > Java' 카테고리의 다른 글
#API# Spring의 API 생성 방식과 Model (0) | 2024.11.26 |
---|---|
#의존성 2# Spring의 의존성 주입 기능 (0) | 2024.11.25 |
#의존성 1#의존성 주입이란? (0) | 2024.11.25 |
#개인 프로젝트 3# DB와 프로젝트 연결 및 JPA로 쿼리 수행하기 (0) | 2024.11.23 |
#개인 프로젝트1# Spring Boot로 게시판 웹서비스 만들기 (2) | 2024.11.22 |