개발/Spring Boot

Spring Boot [4]

0720kmc 2024. 10. 21. 23:22

📌어노테이션정리

 

DTO(Data Transfer Object) : 클라이언트와 서버 간에 데이터를 전달할 때 사용

package com.example.finalapp.dto.board;

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

@Getter @Setter @ToString
@NoArgsConstructor
public class BoardListDTO {
    private Long boardId;
    private String title;
    private String loginId;
    private Long fileId;
    private String name;
    private String uploadPath;
    private String uuid;

}

*사용 어노테이션

@Getter : 클래스의 모든 필드에 대한 getter 메서드를 자동으로 생성

@Setter : 클래스의 모든 필드에 대한 Setter 메서드를 자동으로 생성

@To String : 클래스의 모든 필드 값을 포함하는 toString() 메서드를 자동으로 생성

@NoArgsConstructor : 매개변수가 없는 기본 생성자를 자동으로 생성

 

@DATA : @Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor를 포함한 모든 기능을 자동으로 생성하지만 코드 가독성 및 불필요한 기능을 줄이기 위해 위처럼 나눠서 사용한다.

 

Controller : 클라이언트의 요청을 처리하고, 그에 대한 응답을 생성하는 역할

@Controller
@RequiredArgsConstructor
@Slf4j
@RequestMapping("/board")
public class BoardController {
    private final BoardService boardService;

    @GetMapping("/list")
    public String boardList(Criteria criteria, Model model){
        List<BoardListDTO> boardList = boardService.findAllPage(criteria);
        int total = boardService.findTotal();
        Page page = new Page(criteria, total);

        model.addAttribute("boardList", boardList);
        model.addAttribute("page", page);

        return "board/list";
    }


    @PostMapping("/write")
    public String boardWrite(BoardWriteDTO boardWriteDTO, @SessionAttribute("userId") Long userId,
                             RedirectAttributes redirectAttributes, @RequestParam("boardFile")List<MultipartFile> files){
        boardWriteDTO.setUserId(userId);
        log.info("boardWriteDTO = " + boardWriteDTO);

        try {
            boardService.registerBoardWithFiles(boardWriteDTO, files);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

*사용 어노테이션

@Controller : 스프링 MVC에서 컨트롤러 클래스를 정의하는 어노테이션

@RequireArgsConstructor :  *final 필드나 @NonNull이 붙은 필드를 가진 필드에 대해 자동으로 생성자를 생성

                                                  -> 의존성 주입이 간편해

@Slf4j : log라는 Logger 객체를 자동으로 생성

@RequestMapping() : 기본 URL 경로를 설정

@GetMapping() : HTTP Get 요청을 처리하는 메소드임을 나타냄

@PostMapping() : HTTP Post 요청을 처리하는 메소드임을 나타냄

 

*fianl : final로 선언된 변수는 한 번 초기화된 후 값을 변경할 수 없어 상수처럼 작동한다. 변수의 의도치 않은 변경을 방지하여 코드의 안전과 명확성을 높힌다.

'개발 > Spring Boot' 카테고리의 다른 글

Spring Boot [5]  (1) 2024.10.22
Spring Boot [3]  (2) 2024.10.20
Spring Boot [2]  (1) 2024.10.16
Spring Boot [1]  (0) 2024.10.15