Fairy ' s

[Spring] 게시판 / 작동 순서 본문

Study/Spring

[Spring] 게시판 / 작동 순서

berafairy 2023. 1. 2. 12:14

 

Spring과 Oracle DB를 이용하여 게시판을 제작해 보았습니다.

게시판은 MelonPeach 님의 블로그를 참고하여 제작하였습니다. 

 

// Github

 


 

 

jsp 파일 URL 호출 -> Controller -> Service -> ServiceImpl -> Dao -> DaoImpl -> Service -> View

 


  • Controller
    1. Controller 제일 앞에 어노테이션 @Controller를 작성해야 호출할 수 있음
    2. 웹에서 처리해야할 데이터를 받고, 받은 데이터를 service를 선택하여 호출함
    3. 처리한 데이터를 다음 페이지에서 볼 수 있게 셋팅하고 이동할 페이지를 리턴함
    4. @RequestMapping("/") 을 사용하여 들어온 요청을 특정 메서드와 매핑함
// BoardController.java

@Controller
@RequestMapping("/board/*")
public class BoardController {
	...
    
	// 게시판 글 작성 화면
	@RequestMapping(value = "/board/writeView", method = RequestMethod.GET)
	public void writeView() throws Exception{
    	...
    }
}

 


  • Service // 참고
    1. 데이터를 dao를 통해 넘겨주거나 받으면서 비즈니스 로직을 수행함
    2. @Service 어노테이션 사용, Controller에서 @inject 혹은 @Autowired를 사용하여 호출함
// BoardController.java
    
// Spring에서는 @Autowired를 더 많이 사용함 
@Inject 
BoardService service;
    
service.write(boardVO, mpRequest);

 


  • DAO(data access object)
    1. DB를 통해 데이터 조회, 수정, 삭제함
// BoardServiceImpl.java

@Inject
private BoardDAO dao;
    
dao.write(boardVO);

 


  • VO
    1. DB에 있는 테이블 컬럼 값을 java에서 객체로 다루기 위해 사용함
    2. private 자료형 변수이름; 으로 선언 후 
       필드에 오른쪽 클릭 Source > Generate Getter and Setters 체크박스 모두 체크 OK
// BoardVO.java 
// Getter Setter 전

package kr.co.vo;

import java.util.Date;

public class BoardVO {
	private int bno;
	private String title;
	private String content;
	private String writer;
	private Date regdate;
	private int hit;
}

 

 

필드에 우클릭 Source ▷Generate Getters and Setters...

 

 

// BoardVO.java
// Getter Setter 후

package kr.co.vo;

import java.util.Date;

public class BoardVO {
	private int bno;
	private String title;
	private String content;
	private String writer;
	private Date regdate;
	private int hit;
	
	public int getBno() {
		return bno;
	}
	public void setBno(int bno) {
		this.bno = bno;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
	public String getWriter() {
		return writer;
	}
	public void setWriter(String writer) {
		this.writer = writer;
	}
	public Date getRegdate() {
		return regdate;
	}
	public void setRegdate(Date regdate) {
		this.regdate = regdate;
	}
	public int getHit() {
		return hit;
	}
	public void setHit(int hit) {
		this.hit = hit;
	}
}

 


  • Mapper
    1. mybatis mapping xml에 기재된 sql을 호출함
    2. namespace는 패키지명을 포함한 인터페이스 명을 작성함 (boardMapper.xml의 namespace = boardMapper)
    3. sql id는 인터페이스에 정의된 method명과 동일하게 작성함
    4. mybatis mapper.xml에서 사용되는 매핑 구문 ◁

 

Comments