컨트롤러 클래스

Rest Client(사용자 화면, 대내외채널 등 외부에서 호출된 사용자 요청)의 요청에 대응되는 클래스이다.

HTTP 클라이언트 요청을 처리(HTTP 의존적인 영역을 처리)힌다.

트랜잭션 처리 단위의 기준이 된다.

비즈니스 로직을 처리하기 위해 Service를 호출한다.

컴포넌트와 DBIO는 직접 처리하지 않는다.

각 Layer(컨트롤러, 서비스, 컴포넌트, DBIO)에 대한 호출 관계는 프로젝트 표준으로 정의되는 사항으로, 본 가이드에서는 컨트롤러에서는 서비스만 호출 할 수 있도록 되어 있다.

1. 컨트롤러 클래스 생성

1. 컨트롤러 클래스를 생성한다. 패키지 익스플로러에서 우클릭 → New → 컨트롤러 를 선택한다.

chapter2/control001
Figure 1. 컨트롤러 클래스 생성

2. 위자드에 타입 이름과 논리 이름, RequestMapping URL정보를 입력하여 생성한다.

chapter2/control002
Figure 2. 컨트롤러 위자드

3. 생성된 컨트롤러 클래스의 형식은 다음과 같다.

            package bxcm.online.sample.controller;

            import bxm.common.annotaion.BxmCategory;
            import org.slf4j.Logger;
            import org.slf4j.LoggerFactory;
            import org.springframework.web.bind.annotation.RequestMapping;
            import org.springframework.web.bind.annotation.RestController;

            /**
             * 직원 정보에 접근하기위한 컨트롤러
             *
             * @author sysadmin
             */
            @RestController
            @RequestMapping("/employee")
            @BxmCategory(logicalName="직원 정보 관리", description="직원 정보에 접근하기위한 컨트롤러")
            public class EmployeeController {
                private Logger logger= LoggerFactory.getLogger(getClass());
            }

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

@RequestMapping 어노테이션 내에 Controller의 URL 경로 매핑 정보를 표기한다.

@BxmCategory의 logicalName에 간략한 기능명을 기술한다.

4. 컨트롤러 클래스의 public 메소드를 작성한다.

            /**
             * 사원 조회
             *
             * @param empNo 사원번호
             * @return EmployeeIO
             */
            @GetMapping("/{empNo}")
            @BxmCategory(logicalName="사원 조회", description="")
            public EmployeeIO getEmployee(int empNo){

            }

HTTP 요청 메소드 처리와 url 정보를 설정한다. (@GetMapping("/{empNo}"))

@BxmCategory의 logicalName에 간략한 기능명을 기술한다.

HTTP 요청 핸들러

용어
HTTP 요청 메소드 Annotation 설명

GET

@GetMapping("/url")

HTTP 서버에 데이터 검색을 요청

SELECT

POST

@PostMapping("/url")

HTTP 서버에 데이터 등록/수정/삭제 요청(파일 전송 가능)

INSERT/UDPATE/DELETE

PUT

@PutMapping("/url")

HTTP 서버에 데이터 저장 요청(파일 전송 가능)

INSERT/UPDATE

DELETE

@DeleteMapping("/url")

HTTP 서버에 데이터 삭제 요청

DELETE

PATCH

@PatchMapping("/url")

HTTP 서버에 데이터의 일부 갱신 요청

UPDATE

HTTP 요청 메소드는 보안에 따라 GET, DELETE, PUT등은 사용하지 않고, POST만 사용할 수 있다.

5. 서비스 호출 로직을 작성한다.

  • getBean을 사용 할 경우

            private EmployeeService employeeService;

            /**
             * 사원조회
             *
             * @param empNo 사원번호
             * @return EmployeeIO
             */
            @GetMapping("/{empNo}")
            @BxmCategory(logicalName="사원조회", description="")
            public EmpIO getEmployee(@PathVariable("empNo") int empNo) {

                employeeService = DefaultApplicationContext.getBean(employeeService, EmployeeService.class);

                EmpIO in = new EmpIO();
                in.setEmpNo(empNo);
                return employeeService.retrieveEmp(in);
            }
  • Autowired Annotation을 사용 할 경우

            @Autowired
            private EmployeeService employeeService;

            /**
             * 사원조회
             *
             * @param empNo 사원번호
             * @return EmployeeIO
             */
            @GetMapping("/{empNo}")
            @BxmCategory(logicalName="사원조회", description="")
            public EmpIO getEmployee(@PathVariable("empNo") int empNo) {

                EmpIO in = new EmpIO();
                in.setEmpNo(empNo);
                return employeeService.retrieveEmp(in);
            }

클라이언트로부터 요청이 들어오는 HTTP 메소드와 URL를 설정한다.

PathVariable Annotation은 호출한 URL의 이름을 변수를 전달 받을 수 있다.

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

Copyright© Bankwareglobal All Rights Reserved.