웹 계층의 구현(完)

cy8erpsycho·2023년 9월 3일
0

스프링

목록 보기
11/29
post-thumbnail

웹 계층의 구현


비즈니스 계층의 구현까지 모든 테스트가 진행되었다면 이제 남은 작업은 프레젠테이션 계층인 웹의 구현이다.

Contoller의 작성

스프링 MVC의 Controlle는 하나의 클래스 내에서 여러 메서드를 작성하고, @RequestMapping 등을 이용해서 URL을 분기하는 구조로 작성할 수 있기 때문에 하나의 클래스에서 필요한 만큼 메서드의 분기를 이용하는 구조로 작성한다.

BoardController의 분석

웹 계층에서 가장 먼저 설계하는 것은 URI의 설계이다.

RootContext 변경

✍BoardController의 작성

package com.zerock.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import com.zerock.service.BoardService;

import lombok.Setter;
import lombok.extern.log4j.Log4j;

@Controller
@Log4j
@RequestMapping("/board/*")
public class BoardController {
	
	@Setter(onMethod_=@Autowired)
	private BoardService service;
	
	@GetMapping("/list")
	public void list(Model model) {
		log.info("list 요청");
		model.addAttribute("list",service.getList());
	}

}

@Controller 어노테이션을 추가해서 스프링의 빈으로 인식할 수 있게하고, @RequestMapping을 통해서'/board'로 시작하는 모든 처리를 BoardController가 하도록 지정한다.

list()는 나중에 게시물의 목록을 전달해야 하므로 Model을 파라미터로 지정하고, 이를 통해서 BoardServiceImpl 객체의 getList() 결과를 담아 전달한다.


url 호출하기 위해서 웹의 환경을 흉내내야한다. 그 환경을 조성하기 위해서 testcase가 복잡해진다. 다음 장에서는 테스트 케이스가 아닌 직접 화면을 만들어서 구현해보도록 했다.

0개의 댓글