본문 바로가기
Spring/[Spring]Board(기본 게시판)

스프링 게시판 만들기 - 3(VO 형태 바꾸기)

by Ms.Pudding 2022. 1. 15.

보통 객체를 작성할 때 아래와 같은 형태로 객체를 만들었었다.

@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를 가져온다. 

 

댓글