📌어노테이션정리
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 |