서비스 클래스

컨트롤러와 1:1로 매핑되는 클래스이다. 서비스에서는 컴퍼넌트들만 호출 할 수 있다.

1. 서비스 IO 작성

서비스 IO 작성도 DBIO IO 작성과 동일하다. IO 생성 및 작성 방법은 'DBIO IO 생성’을 참고한다. 아래는 생성된 IO 화면이다.

서비스 IO는 bxcm.online.sample.service 하위에 io 패키지 하위에 작성했다.

chapter2/service001
Figure 1. 단건조회 서비스 IO

2. 서비스 작성

1. 서비스 클래스를 생성한다. 패키지 익스플로러에서 우클릭 → New → Service 클래스를 선택한다. (단축키 : Ctrl + N → Service 클래스 선택)

chapter2/service003
Figure 2. Service 생성

2.새로운 서비스 Wizard에서 타입 이름과 논리 이름을 입력한다.

chapter2/service004
Figure 3. 새로운 서비스

3. 생성된 컴포넌트 클래스의 형식은 다음과 같다.

            package bxcm.online.sample.service;

            import bxm.common.annotaion.BxmCategory;
            import org.slf4j.Logger;
            import org.slf4j.LoggerFactory;
            import org.springframework.stereotype.Service;

            /**
             * 직원조회를 위한 서비스이다.
             *
             * @author sysadmin
             */
            @Service
            @BxmCategory(logicalName="직원조회 서비스", description="직원조회를 위한 서비스이다.")
            public class EmployeeService {
                private Logger logger= LoggerFactory.getLogger(getClass());
            }

@Service 어노테이션이 표기되어 있어야 한다.

4. 서비스 메소드의 형식은 컴포넌트와 동일하다. 내부에 컴포넌트 호출 과정을 작성한다.

컴포넌트 IO가 서비스 IO를 사용하는 경우 객체 그대로 넘긴다.

            @BxmCategory(logicalName = "직원정보 단건 조회")
            public EmpIO retrieveEmp(EmpIO input) {

                employeeComponent = DefaultApplicationContext.getBean(employeeComponent, EmployeeComponent.class);

                output = employeeComponent.getEmployee(input);
                return output;
            }

컴포넌트 메소드 IO와 서비스 IO 사이에서 필요한 필드를 코딩으로 매핑한다.

            @BxmCategory(logicalName = "직원정보 단건 조회")
            public EmpIO retrieveEmp(EmpIO input) {

                    // employeeComponent getBean
                    employeeComponent = DefaultApplicationContext.getBean(employeeComponent, EmployeeComponent.class);

                    //컴포넌트 입력객체 매핑
                    EmployeeIO componentOut = employeeComponent.getEmployee(input.getEmpNo());

                    //컴포넌트 출력객체 매핑
                    EmpIO output = new EmpIO();
                    output.setEmpNo(componentOut.getEmpNo()); // 사원번호
                    output.setEmpNm(componentOut.getEmpNm()); // 사원명
                    output.setOcptnNm(componentOut.getOcptnNm()); // 조직명
                    output.setMngrEmpNo(componentOut.getMngrEmpNo()); // 관리자사원번호
                    output.setHireDt(componentOut.getHireDt()); // 입사일자
                    output.setPayAmt(componentOut.getPayAmt()); // 임금
                    output.setDeptNo(componentOut.getDeptNo()); // 부서번호

                    return output;
            }
SWLab Bankware Global
  • 전체
  • BXM
  • BXCM
  • BXCP
  • BXI
제품 선택 시 더 정확한 매뉴얼 가이드를 제공해드립니다.

Copyright© Bankwareglobal All Rights Reserved.