오늘은 Spring에 라이브러리 등록하는 방법과, 게시판을 간단하게 짜는 법을 배웠다.
1. 라이브러리 등록
라이브러리를 등록하는 방법에는 2가지가 있다고 했다.
Ant와 Maven이 있는데 Ant는 앞전에 이클립스에서 했던
lib 폴더 안에 라이브러리 파일(jar)을 넣는 방식이고,
Maven은 Spring에서 legacy project를 만들면 자동으로 생성되는
pom.xml 안에 <dependency> 태그를 이용해 등록하는 방식이다.
2. lombok 라이브러리 사용
이클립스에서는 VO 객체를 생성할 때 getter(), setter(), toString()를 직접 생성했는데
Spring에서는 lombok를 이용해서 @Data를 이용해서 자동 생성되게 할 수 있다.
https://projectlombok.org/download
Download
projectlombok.org
우선, lombok 라이브러리를 사용하기 위해 위의 링크에서 라이브러리를 다운로드 한다.
후에, cmd 창에서 라이브러리 파일이 있는 폴더>java -jar lombok.jar 하면 창이 하나 뜨면서
STS를 찾는데, 여기서 Install / Update 누르게 되면 lombok 라이브러리를 사용할 준비는 끝난다.
게시판(board)을 만든다고 가정해보자.
package com.webjjang.board.vo;
import java.util.Date;
import lombok.Data;
// lombok 라이브러리 적용 - 생성자, setter()ㆍgetter(), toString() 등 컴파일 시 자동 생성
@Data
public class BoardVO {
private long no;
private String title, content, writer;
private Date writeDate;
private long hit;
}
BoardVO 라는 클래스를 선언하기 전에 @Data 이렇게만 작성해줘도
BoardVO 밑으로 생성자, generate, toString이 생긴것을 확인할 수 있다.
3. 게시판 만들기
각 페이지마다 버튼을 누르면 어떻게 작동할지를 Spring에서는 Controller로 설정할 수 있다.
package com.webjjang.board.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
// 서버가 시작될 때,
// com.webjjang 아래에 있는 모든 패키지의 @Controller, @Service, @Repository, @Component, @RestController, @-Advice
// 클래스를 자동 생성한다.
@Controller
@RequestMapping("/board")
public class BoardController {
private static final Logger Log = LoggerFactory.getLogger(BoardController.class);
@GetMapping("/list.do")
public String list() {
Log.info("list()");
// jsp 문자열 정보 리턴 → /WEB-INF/views/ + board/list + .jsp
return "board/list";
}
@GetMapping("/write.do")
public String writeForm() {
Log.info("writeForm()");
// jsp 문자열 정보 리턴 → /WEB-INF/views/ + board/write + .jsp
return "board/write";
}
@PostMapping("/write.do")
public String write() {
Log.info("write()");
System.out.println("BoardController.write()");
// jsp 문자열 정보 리턴 → /WEB-INF/views/ + board/write + .jsp
// 자동으로 게시판 리스트로 보낸다.
return "redirect:list.do";
}
@GetMapping("/update.do")
public String updateForm() {
Log.info("updateForm()");
// jsp 문자열 정보 리턴 → /WEB-INF/views/ + board/update + .jsp
return "board/update";
}
@PostMapping("/update.do")
public String update() {
Log.info("update()");
System.out.println("BoardController.update()");
// jsp 문자열 정보 리턴 → /WEB-INF/views/ + board/update + .jsp
// 자동으로 게시판 글보기로 보낸다.
return "redirect:view.do";
}
@GetMapping("/view.do")
public String view() {
Log.info("View()");
// jsp 문자열 정보 리턴 → /WEB-INF/views/ + board/view + .jsp
return "board/view";
}
@GetMapping("/delete.do")
public String delete() {
Log.info("delete()");
System.out.println("BoardController.delete()");
// 자동으로 게시판 리스트로 보낸다.
return "redirect:list.do";
}
}
패턴은 이런식으로 진행되는데, 완전히 이해했다고는 말을 못하겠다.
이게 왜 Post방식인지, Get방식인지 이해를 잘 못하겠다.
계속 이런식으로 코드를 짜다보면 또 나도 모르게 어느순간 이해하게 될듯
게시판 리스트에서 글 보기로 넘어가는 처리를 하는 jsp 코드를 작성해보자.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>게시판 리스트</title>
</head>
<body>
<div class="container">
<h2>게시판 리스트</h2>
<div><a href="view.do">01. 제목입니다. </a></div>
<a href="write.do">게시판 글쓰기</a>
</div>
</body>
</html>
버튼을 누르면 어떻게 작동하는지 잘 확인할 수 있다.
이클립스에서 했던것과 별 차이는 없지만, .do 라는 것을 새로 배워서 활용하게 됐다.
확실히 이클립스보다는 소스가 많이 단축돼서 편한듯하다.
'BACK-END > SPRING' 카테고리의 다른 글
[Spring]AOP (0) | 2022.03.12 |
---|---|
[Spring]JUnit을 이용한 단위 테스트 (0) | 2022.03.11 |
[Spring]Spring-MyBatis를 이용해 공지사항 게시판 만들기 (0) | 2022.03.02 |
[Spring]Spring-MyBatis를 이용해 게시판 만들기 (0) | 2022.02.27 |
[Spring] 설치ㆍ환경설정ㆍ프로젝트 생성ㆍ서버 설정 (0) | 2022.02.18 |
댓글