스프링 웹계층

https://devlog-wjdrbs96.tistory.com/m/209
서비스 계층(비즈니스 계층)
- 사용자의 요구사항을 일치시켜서 구현하는 계층
- DAO와 Controller 사이를 연결
- 고객마다 다르게 처리해야하는 부분을 처리
- DB와 무관하게 처리할 수 있는 영역
- 컨트롤러(외부호출)의 영속계층(persistence)종속을 막아준다.
- 컨트롤러가 트렌젝션, 예외처리등을 모두 처리해야하지만 종속적인 상황을 벗어나면 컨트롤러는 컨트롤러의 역할만 할 수 있다.
@Service
의미 : 해당 클래스를 서비스 객체로 처리(스프링에서 인식할 수 있게 만듦)

https://dev.to/urunov/truly-there-is-no-difference-in-implementation-integrating-spring-with-jersey-and-integrating-jersey-with-spring-m2k
프리젠테이션 계층(컨트롤러)
- 컨트롤러 + 뷰
- 기능
- 공통적인 URI경로, 각 기능별 URI 지정
- 결과처리, 페이지 이동, 예외처리
- 컨트롤러는 모듈로서 특정 메뉴, 기능묶음 단위로 생성한다.
- URI를 어떤 방식으로 처리할 것인지에 대한 설계가 필요하다.
- GET방식
- 외부에서 접근해오는 페이지 (주로 입력페이지)
- 정보를 조회하는 페이지
- POST방식
MemberService.java
인터페이스 생성
1 2 3 4 5 6 7 8 9
| package com.itwillbs.service;
import com.itwillbs.domain.MemberVO;
public interface MemberService { public void insertMember(MemberVO vo); }
|
MemberServiceImpl.java
클래스 생성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| package com.itwillbs.service;
import javax.inject.Inject;
import org.springframework.stereotype.Service;
import com.itwillbs.domain.MemberVO; import com.itwillbs.persistence.MemberDAO;
@Service public class MemberServiceImpl implements MemberService {
@Inject private MemberDAO mdao; @Override public void insertMember(MemberVO vo) { System.out.print("S : 회원가입동작"); if(vo == null) { return; } mdao.insertMember(vo); } }
|
root-context.xml
코드추가
1 2 3
| <context:component-scan base-package="com.itwillbs.service" /> </beans>
|
MemberServiceTest.java
테스트 클래스 생성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| package com.itwillbs.test;
import javax.inject.Inject;
import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.itwillbs.domain.MemberVO; import com.itwillbs.service.MemberService;
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration( locations = {"file:src/main/webapp/WEB-INF/spring/root-context.xml"}) public class MemberServiceTest { @Inject private MemberService service; @Test public void insertServiceTest() throws Exception { MemberVO vo = new MemberVO("uesrGang", "4321", "강조지", "jorge@com", null, null); service.insertMember(vo); } }
|