๐Ÿ’ป๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ(2)

๋…ธ๊ฑด์šฐยท2024๋…„ 11์›” 29์ผ
0

controller

์ด์ œ ์„œ๋ฒ„ ๊ตฌ๋™์€ ๋งˆ์ณค์œผ๋‹ˆ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์ž

๋จผ์ € ๋””๋ ‰ํ† ๋ฆฌ๋Š” ์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. BoardController๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์—ˆ๋‹ค.

์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”package com.example.day01.controller;

import com.example.day01.dto.BoardDTO;
import com.example.day01.service.BoardService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

@Controller
@RequiredArgsConstructor
public class BoardController {
    private final BoardService boardService;

    @GetMapping("/save")
    public String save(){
        return "save";
    }

    @PostMapping("/save")
    public String save(BoardDTO boardDTO){
        System.out.println("boardDTO = " + boardDTO);
        return "example";
    }
}

BoardController์ด๋‹ค. ์ด๋•Œ @RequiredArgsConstructor์„ ์ž˜ ๋ด์•ผ ํ•˜๋Š”๋ฐ, ์ดˆ๊ธฐ๊ฐ’์ด ์ง€์ •๋˜์ง€ ์•Š์€ final ๋˜๋Š” @NonNull์ด ์ง€์ •๋œ ๋ชจ๋“  ํ•„๋“œ์— ๋Œ€ํ•ด ์ƒ์„ฑ์ž๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์ฃผ๋Š” ์—ญํ• ์ด๋‹ค. ์ฆ‰ fianl๋กœ BoardService๋ฅผ ์„ ์–ธํ•ด์ฃผ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— final์— ์žˆ๋Š” ๊ฒƒ๋งŒ ๋‹ค๋ฃฌ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

๋‹ค์Œ์œผ๋กœ๋Š” getmapping์ธ๋ฐ, /save๋กœ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด html saveํŒŒ์ผ๋กœ ๋งคํ•‘ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

postmapping์˜ ๊ฒฝ์šฐ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. saveํŒŒ์ผ์—์„œ์˜ ์ •๋ณด์ž…๋ ฅ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค. ์‚ฌ์ง„์€ ์•„๋ž˜ ์ถ”๊ฐ€ํ•  ๊ฒƒ.

dto

package com.example.day01.dto;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@ToString
public class BoardDTO {
    private Long id;//๊ธ€ ๋ฒˆํ˜ธ

    private String boardWriter;//์ž‘์„ฑ์ž

    private String boardPass;//๊ฒŒ์‹œ๊ธ€ ๋น„๋ฒˆ

    private String boardTitle;//์ œ๋ชฉ

    private String boardContents;//๋‚ด์šฉ

    private int boardHits;//์กฐํšŒ์ˆ˜

    private String createdAt;//์ž‘์„ฑ์‹œ๊ฐ„
}

๋‹ค์Œ์€ dto์ด๋‹ค. lombok์˜ @getter @setter๋ฅผ ์ด์šฉํ•˜์—ฌ ํด๋ž˜์Šค์™€ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ getter๋กœ ๊ฐ€์ ธ์˜ค๊ณ  setter๋กœ ์ ์šฉ๋˜๊ฒŒ ํ•œ๋‹ค.


์ด ํŽ˜์ด์ง€์—์„œ lombok์„ ์„ค์น˜ํ•ด์ค€๋‹ค.

๐Ÿค๋งŒ์ผ lombok์ด ์•ˆ๋œ๋‹ค๋ฉด
java: variable boardService not initialized in the default constructor
์—๋Ÿฌ๊ฐ€ ๋œฐ ํ…๋ฐ, gradle์˜ ๋ฒ„์ „๋ฌธ์ œ์ด๋‹ค.
Gradle 5.x ์ด์ƒ์˜ ๊ฒฝ์šฐ

dependencies {
  compileOnly 'org.projectlombok:lombok'
  annotationProcessor 'org.projectlombok:lombok'
}

์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•ด์ค˜์•ผ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์ง€ ์•Š๋Š”๋‹ค. ์ž‘์„ฑํ•˜๊ณ  gradle์„ ๋‹ค์‹œ buildํ•ด์ฃผ์ž.

Service

package com.example.day01.service;

import com.example.day01.repository.BoardRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

@Service
@RequiredArgsConstructor
public class BoardService {
    private final BoardRepository boardRepository;
}

์ปจํŠธ๋กค๋Ÿฌ๋Š” ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๊ณ  ์„œ๋น„์Šค๋Š” ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ๋ฅผ ์ด์šฉํ•œ๋‹ค.

Repository

package com.example.day01.repository;

import org.springframework.stereotype.Repository;

@Repository
public class BoardRepository {
}

์ด๊ฑด ์ผ๋‹จ ๊ทธ๋Œ€๋กœ

๊ธ€ ์ž‘์„ฑ ํŽ˜์ด์ง€

saveํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ๋‹ค.

์ด ํŽ˜์ด์ง€์—์„œ ๊ธ€ ์ž‘์„ฑ์„ ๋ˆ„๋ฅด๋ฉด

save์ฃผ์†Œ๋กœ ์ด๋™ํ•˜๋ฉด์„œ ํŽ˜์ด์ง€๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/save" method="post" enctype="multipart/form-data">
  ์ œ๋ชฉ: <input type="text" name="boardTitle"><br>
  ์ž‘์„ฑ์ž: <input type="text" name="boardWriter"><br>
  ๋น„๋ฐ€๋ฒˆํ˜ธ: <input type="text" name="boardPass"><br>
  ๋‚ด์šฉ: <textarea name="boardContents" cols="30" rows="10"></textarea>
  ํŒŒ์ผ: <input type="file" name="boardFile" multiple><br>
  <input type="submit" value="์ž‘์„ฑ"></form>
</body>
</html>

๐Ÿ’ช์ด๋•Œ boardTitle,boardWriter,boardPass,boardContents๋“ฑ์€ dto์— ์„ ์–ธํ•œ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•œ๋‹ค


์ด๋ ‡๊ฒŒ ์ž‘์„ฑ ํ–ˆ์„ ๋•Œ


์ œ๋Œ€๋กœ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๋„˜์–ด๊ฐ„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

profile
์ดˆ๋ณด ๊ฐœ๋ฐœ์ž ์ด์•ผ๊ธฐ

0๊ฐœ์˜ ๋Œ“๊ธ€