주말복습-3

bitna's study note·2022년 7월 3일

스프링

목록 보기
9/54
post-thumbnail

7월 4일
...언제 자냐...

1.비즈니스 계층 구현하기

(1)서비스 패키지 설정
src>main>java 인터페이스 만들기

package com.keduit.service;

import java.util.List;

import com.keduit.domain.BoardVO;

public interface BoardService {
	public void register(BoardVO board);
	public BoardVO get(Long bno);
	public List<BoardVO> getList();
	public boolean modify(BoardVO board);
	public boolean remove(Long bno);
}

(2)src>main>java 인터페이스 상속받는 클래스 만들기

package com.keduit.service;

import java.util.List;

import org.springframework.stereotype.Service;

import com.keduit.Mapper.BoardMapper;
import com.keduit.domain.BoardVO;

import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j;


@Log4j //로그부분은 Log4j가 관리해죠
@Service //서비스 계층 구현 어노테이션
@RequiredArgsConstructor //생성자 어노테이션(BoardMapper 선언 관연)
public class BoardServiceImpl implements BoardService {
	
	//스프링아 빈중에 BoardMapper 있으면 구현해죠!!!
	private final BoardMapper mapper;
	
	

	@Override
	public void register(BoardVO board) {
		// TODO Auto-generated method stub

	}

	@Override
	public BoardVO get(Long bno) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<BoardVO> getList() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public boolean modify(BoardVO board) {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public boolean remove(Long bno) {
		// TODO Auto-generated method stub
		return false;
	}

}

(3)root.xml에 context 설정하기

<context:component-scan base-package="com.keduit.service"></context:component-scan>

(4)서비스 구현 하기

package com.keduit.service;

import java.util.List;

import org.springframework.stereotype.Service;

import com.keduit.Mapper.BoardMapper;
import com.keduit.domain.BoardVO;

import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j;


@Log4j //로그부분은 Log4j가 관리해죠
@Service //서비스 계층 구현 어노테이션
@RequiredArgsConstructor //생성자 어노테이션(BoardMapper 선언 관연)
public class BoardServiceImpl implements BoardService {
	
	//스프링아 빈중에 BoardMapper 있으면 구현해죠!!!
	private final BoardMapper mapper;
	
	

	@Override
	public void register(BoardVO board) {
		log.info("register=================");
		mapper.insertSelectKey(board);
	}

	@Override
	public BoardVO get(Long bno) {
		log.info("get===================");
		return mapper.read(bno);
	}

	@Override
	public List<BoardVO> getList() {
		log.info("getList=====================");
		return mapper.getList();
	}

	@Override
	public boolean modify(BoardVO board) {
		log.info("modify=====================");
		return mapper.update(board)==1;
	}

	@Override
	public boolean remove(Long bno) {
		log.info("remove====================");
		return mapper.delete(bno)==1;
	}

}

(5)구현 서비스 테스트하기
src>test>java 에 서비스테스트 클래스 작성하여 코드가 맞는지 테스트하기

package com.keduit.service;

import static org.junit.Assert.assertNotNull;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.keduit.domain.BoardVO;
import com.keduit.mapper.BoardMapperTest;

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

@RunWith(SpringJUnit4ClassRunner.class) //SpringJUnit4ClassRunner.class 이클래스로 테스트 할때 쓸거야
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")//테스트 할때 참조를 하는 경로를 적어줌
@Log4j //뷰단에서 화면을 뿌려줄때 log관리는 Log4j로 할꺼야
public class BoardServiceTest {
	
	@Setter(onMethod_=@Autowired)//Setter 객체 주입 어노테이션
	private BoardService service;
	
	@Test
	public void testExist() {
		log.info(service);
		assertNotNull(service);
	}
	
	@Test
	public void testRegister() {
		BoardVO board=new BoardVO();
		board.setTitle("서비스 등록글 제목");
		board.setContent("서비스 등록글 내용");
		board.setWriter("글쓴이");
		service.register(board);
	}
	
	@Test
	public void testGetList() {
		service.getList().forEach(board->log.info(board));
	}
	
	
	@Test
	public void testGet() {
		log.info(service.get(5L));
	}
	
	@Test
	public void testRemove() {
		log.info("삭제결과=>"+service.remove(12L));
	}
	
	@Test
	public void testUpdate() {
	BoardVO	 board=service.get(6L);
	if(board==null) return;
	board.setTitle("안안녕녕");
	log.info("수정결과=>"+service.modify(board));
	}
	
}
profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글