Spring MVC_basic.6 context:component-scan을 통한 Controller, Service 구현

dwanGim·2022년 6월 9일
0

spring_basic

목록 보기
5/41
post-thumbnail

<context:component-scan>

이제 모든 서비스와 mapper의 테스트 구현이 끝났습니다.

실제로 jsp 파일의 경로를 따라 Model을 이용해 데이터를 주고 받으며

화면을 구현하는 일만 남았습니다.

이에 따라 필요한 데이터들을 bean에 자동으로 저장 즉

@AutoWired하기 위해서는

<context:component-scan> 을 통해 원하는 경로를 root-context.xml에

삽입해주어야 합니다.

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

제 경우에는 service를 담당하는 패키지의 경로를

저장해두었습니다.

코드를 추가했으면 Namespaces 창을 엽니다.

context name에 체크를 누르고 저장해주시면 이제 root-context가 해당

경로를 감지하기 시작합니다.

서비스 Implements

package com.ict.service;

import java.util.List;

import com.ict.persistence.BoardVO;
import com.ict.persistence.Criteria;

public interface BoardService {

	public List<BoardVO> getList(Criteria cri);
	
	
	public void insert(BoardVO vo);
	
	
	public void delete(Long bno);
	
	.
	public void update(BoardVO vo);
	
	
	public BoardVO getDetail(Long bno);
	
}

Service는 원래 하나의 동작(사용자 기준)을 선언하고

Mapper는 하나의 호출(쿼리문) 을 선언하는 용도입니다.

지금 생성해둔 기본적인 로직은 하나의 동작이 하나의 쿼리문이므로

일단은 로직별로 하나씩 메서드를 만들었습니다.


그러면 이제 service 패키지에 이 BoardService를 상속받는

@Service 클래스를 하나 생성하도록 하겠습니다.

package com.ict.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.ict.mapper.BoardMapper;
import com.ict.persistence.BoardVO;
import com.ict.persistence.Criteria;

@Service
public class BoardServiceImpl implements BoardService {

	@Autowired
	private BoardMapper mapper;

	@Override
	public List<BoardVO> getList(Criteria cri) {
		
		return mapper.getList(cri);
	}

	@Override
	public void insert(BoardVO vo) {
		mapper.insert(vo);
	}

	@Override
	public void delete(Long bno) {
		mapper.delete(bno);
	}

	@Override
	public void update(BoardVO vo) {
		mapper.update(vo);
	}

	@Override
	public BoardVO getDetail(Long bno) {
		return mapper.getDetail(bno);
	}
	
}

가장 먼저 확인해야할 것은

@AutoWired가 걸려있는 데이터들이 bean으로 잘 저장되고 있는지

방금 context:component-scan을 걸어둔 태그가 잘 작동하고 있는지 확인하는 것 입니다.

root-context의 bean graph를 확인해봅니다.

아주 좋습니다.

이렇게 서비스들을 구현하는데 성공했습니다.

server에서도 데이터만 잘 보내고 있다면 서버에서도 안전하고 신속하게

작동할 것 입니다.

일단은 여기까지 입니다.

profile
배울 게 참 많네요.

0개의 댓글