보통 객체를 작성할 때 아래와 같은 형태로 객체를 만들었었다.
@Data
public class Board {
private int boardNo;
private String title;
private String content;
private String writer;
private Date regDate;
}
하지만 최근에는 요청(request)하는 부분과 응답(response)하는 부분을 각각 다르게 객체를 만들어준다.
1.Respnse 객체
public clas BoardVO{
@Getter
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@AllArgsConstructor
@Builder
public static class Response{
private int boardNo;
private String content;
private String writer;
private String originFileName;
private String storedFileName;
private String regDate;
private String updateDate;
}
}
@NoArgsConstructor : 디폴트 생성자로서 , 객체 생성을 방지하기 위해 설정한다. 즉 Response r = new Resonse();이런식으로 못만든다. static이 있어서 만들수 없긴 하지만 그래도 한번 더 써줌
@Builder : NoArgsConstructor로 객체를 만들 수 없기 때문에 builder라는 클라스를 생성하는 라이브러리를 가져온다.
2.Request 객체
@Getter
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@AllArgsCOnstructor
@Builder
public static class Request{
private String title;
private String content;
private String writer;
@Setter
private String originFileName;
@Setter
private String storedFileName;
private MultipartFile file;
}
Request는 사용자로부터 저장을 받을 떄의 객체이다.
여기서는 파일이름만 다르게 저장되기 때문에 이 부분에만 @Setter를 넣어준다.
3.BoardMapper.xml수정
<insert id = "insertBoard" parameterType="com.board.web.vo.board.BoardVO$Request">
insert into board(title,content,writer,origin_file_name,stored_file_name)
values(#{title},#{content},#{writer},#{originFileName},#{storedFileName})
</insert>
$: 객체를 xml에 가져올 때 쓴다. db에 저장을 받는 요청이라서 Request를 가져온다.
'Spring > [Spring]Board(기본 게시판)' 카테고리의 다른 글
스프링 게시판 만들기 - 6(파일 다운로드 링크) (0) | 2022.01.24 |
---|---|
스프링 게시판 만들기 - 4(글 업로드) (0) | 2022.01.15 |
스프링 게시판 만들기 - 2(파일업로드 기능 추가, WebConfig ,WebMvcConfigurer) (0) | 2022.01.13 |
스프링 게시판 만들기 - 1(게시판 목록 보여주기,mvc패턴) (0) | 2022.01.12 |
댓글