Fairy ' s
[Spring] 게시판 / 작동 순서 본문
Spring과 Oracle DB를 이용하여 게시판을 제작해 보았습니다.
게시판은 MelonPeach 님의 블로그를 참고하여 제작하였습니다.
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;
}
// 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에서 사용되는 매핑 구문 ◁
'Study > Spring' 카테고리의 다른 글
[Spring] Annotation (0) | 2023.01.17 |
---|---|
[Spring] 게시판 / 함수 & 개념 정리 #3 (0) | 2023.01.06 |
[Spring] 개발 환경 구축 (0) | 2023.01.04 |
[Spring] 게시판 / 함수 & 개념 정리 #2 (0) | 2023.01.02 |
[Spring] 게시판 / 함수 & 개념 정리 #1 (0) | 2023.01.02 |
Comments