프로젝트 생성

IDE 별로 프로젝트 생성 과정이 다르기 때문에 Spring 공식 홈페이지에서 프로젝트 생성 툴을 지원하고 있다.

https://start.spring.io
  • 프로젝트 기본 설정에서 빌드(프로젝트) 관리 도구, 언어, 버전 및 프로젝트 기본 정보를 입력
  • 프로젝트에서 사용하고자 하는 Dependency 들을 선택 후 Generate 버턴으로 프로젝트 생성 -> 선택한 Dependency 들은 pom.xml 에 자동으로 등록됨
  • zip 파일로 생성된 프로젝트를 workspace 에 압축해제

개발환경 설정(Eclipse 기준)

프로젝트 Import

  • Project Explorer > Import… > Import > Maven > Existing Maven Projects > Browse… > 프로젝트 디렉토리 선택 > Finish

JDK 설정

  • Project Explorer > Properties > Java Build Path > JDK 설정

빌드

Traditional Configurational
빌드
- Run As… > Maven clean
- … > Maven install
초기 세팅
- Run As… > Maven build… > Goal : clean install, check Skip Test > Apply > Run

빌드
- Run As… > Maven build
특징
- clean, install 을 수동으로 진행해야 해서 절차가 많음
- 매 빌드 시마다 Test 가 진행되어 불필요한 과정이 추가됨
- 빌드 속도가 상대적으로 느림
특징
- 빌드 과정을 하나의 세트로 묶어서 관리함
- Skip Tests 옵션으로 불필요한 빌드 과정을 제거함
- 빌드 속도가 상대적으로 빠름

서비스 구동

  • Project Explorer > Run As… > Spring Boot App 으로 서버 구동

비즈니스 로직 구성 및 테스트

(JSP, JDBC 구성은 커스텀 설정이 필요하여 REST API 기반의 임시 데이터 생성 로직으로 테스트 한다)

package 및 class 구성

me.hotsse.quicksample/
└── home
    └── HomeController.java
    └── HomeDao.java
    └── HomeService.java
    └── HomeTestVO.java
  • HomeController.java ``` java package me.hotsse.quicksample.home;

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;

import org.springframework.web.bind.annotation.RestController;

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping;

@RestController @RequestMapping({“/”, “/home”}) public class HomeController {

@Autowired
private HomeService homeService;
 
@GetMapping("")
public HomeTestVO index(HttpServletRequest req, HttpServletResponse res) {
    return homeService.getTest();
}      } ```
  • HomeService.java ``` java package me.hotsse.quicksample.home;

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

@Service public class HomeService {

@Autowired
private HomeDao homeDao;
 
public HomeTestVO getTest() {
    return homeDao.getTest();
}      } ```
  • HomeDao.java ``` java package me.hotsse.quicksample.home;

import org.springframework.stereotype.Repository;

@Repository public class HomeDao {

public HomeTestVO getTest() {
     
    // JDBC 연동은 추가 설정이 필요한 관계로 데이터를 임시 생성하는 것으로 대체한다.
    HomeTestVO test = new HomeTestVO();
    test.setParam1("value1");
    test.setParam2("value22");
    test.setParam3("value333");
     
    return test;
} } ```
  • HomeTestVO.java ``` java package me.hotsse.quicksample.home;

import lombok.Data;

@Data public class HomeTestVO {

private String param1;
private String param2;
private String param3; } ```