━━━━ ◇ ━━━━
Spring/Spring 실무

Spring + Maven 연동하기

10개월 간의 교육을 마치고 다이렉트로 취업에 성공하였다.


내가 취업한 회사는 부산 센텀시티에 위치한 솔루션 회사다.


입사한 다음 처음으로 받은 미션은 


Spring 과 Maven 을 연동하여 Hello World 찍기 


이다.


https://maven.apache.org/ 에 접속하여 maven을 다운 받았다.



굳이 사진까지 첨부하여 설명을 하자면, 다운로드 카테고리에서 Binary zip archive 파일을 다운 받아 적당한 위치에 압축을 풀어 주었다.


그런 다음 Eclipse를 실행시켜 메이븐을 연동 시켰다.


구체적인 방법은 Eclipse 에서 (참고로 나는 STS를 사용했다) 설정 파일을 연다.


좌측의 메뉴에서 Maven 을 찾아 확장시켜보면 Installations 가 있다.


Add 버튼을 눌러 설치된 메이븐 폴더를 지정해 준다.



그런 다음 User Settings 메뉴를 눌러서 setting 파일을 연결한다.


이 설정은 하지 않아도 상관없지만 나처럼 로컬 저장소를 임의로 변경하고 싶으면 해야한다.


세팅 파일을 연결하면 로컬 저장소가 자동으로 입력된다.


로컬 저장소를 변경하는 방법은 사용자가 직접 세팅파일을 열어서 수정해야 한다.



세팅 파일의 위치는 메이븐 폴더의 conf 폴더를 열어보면 있다.


세팅 파일을 편집 프로그램으로 열어 로컬 저장소를 설정해줬다.


로컬 저장소의 디폴트 값은 C 드라이버 : \사용자 \.m2 폴더 이다.



이제 기본 설정이 끝이 났다.



위 캡쳐와 같이 Spring Legacy Project 를 새로 만들어 준다.



프로젝트 이름을 입력하고, Spring MVC Project 를 선택한 다음 Next 를 클릭한다.


참고로 처음 프로젝트를 생성한다면, 자동으로 다운로드가 실행될 것이다.


기다려 주면 된다.


다운로드된 파일은 위에서 설정한 로컬 저장소에 저장된다.



디폴트 패키지 이름을 입력하고 Finish를 클릭한다.



대충 위와 같은 구조의 프로젝트가 생성 되었다.



가장 먼저 pom.xml 파일을 열었다.


이곳에 각종 Dependency를 주입하면 자동으로 Maven Repository 에서 라이브러리를 다운 받을 수 있다.


Dependency는 https://mvnrepository.com/ <== 여기에서 검색하여 주입하면 된다.



검색어를 입력하고 검색을 하면 위 캡쳐 처럼 여러 결과가 나오는데 맞는 것을 찾아 클릭한다.



버전 선택이 중요한데, 무조건 최신 버전이 좋은것은 아닌것 같다. 


실제로 적용했을때 에러가 나는 경우가 잦았다.


그래서 나는 위 캡쳐처럼 하얀색으로 표시되어 있으며,


Usages를 보고 많은 사용자가 사용한 검증된 버전을 사용한다.



이제 위에 표시된 부분의 내용을 복사한다.


참고로 Gradle도 이곳에서 찾아서 사용할 수 있다.



pom.xml에 붙여주면 된다.


HomeController.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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package com.imex.Test;
 
import java.util.Locale;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
 
/**
 * Handles requests for the application home page.
 *
 * Controller annotation: Controller로 사용하고자 하는 클래스에 @Controller 어노테이션을 명시하여 사용합니다.
 * servlet-context.xml에 있는 context:component-scan 에 등록되어 요청에 따라 호출됩니다.
 */
@Controller
public class HomeController {
    
    private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
    
    /*
     * RequestMapping은 Controller의 메서드와 URL을 맵핑할 때 사용한다.
     * value: 디폴트 속성이기 때문에, 밸류만 정의한다면 앞 부분은 생략하고 URL만 입력 가능하다.
     * method: GET, POST 등 HTTP Request method에 따라 타입을 지정할 수 있다.
     * params: HTTP Request로 들어오는 파라미터 표현이다. */
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String home(Locale locale) {
        logger.info("Welcome home! The client locale is {}.", locale);
        
        return "home";
    }
    /*
     * 27~32 라인을 설명하자면,
     * URL 주소 "/" 가 호출되었을때, home()메소드가 호출된다.
     * home()메소드는 파라미터로 locale을 가지고 있으며, 29번 명령문에 의해 콘솔에 로그가 출력된다.
     * 그리고 31번 명령문에 의해 String 타입의 home2가 리턴된다.
     * HomeController2가 종료되면 Front Controller에 의해 적절한 View를 호출하게 된다.
     * -->servlet-context.xml 의 InternalResourceViewResolver구문을 보면
     * 홈컨트롤러에서 리턴된 값의 앞에 /WEB-INF/views/가 붙고, 뒤에 .jsp가 붙는 View를 맵핑하게된다.
     * 결론적으로 /WEB-INF/views/home2.jsp 가 호출되어 사용자에게 보여진다.
     * */ 
    
}
 
cs



home.jsp


1
2
3
4
5
6
7
8
9
10
11
12
13
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Spring Maven Test</title>
</head>
<body>
    <h1>Spring Maven Test</h1>
    <p>Hello World ~~~!!!</p>
</body>
</html>
cs



과장님에게 보고하기 위해 주석을 엄청 자세하게 달아놓아 더이상의 자세한 설명은 생략한다.


위 와 같이 깔끔하게 성공 !!!


두번째 과제는 Gradle로 빌드하는 것이었다. 


Gradle로 빌드하는 것은 다음 글에...

'Spring > Spring 실무' 카테고리의 다른 글

Spring + Gradle 연동하기  (0) 2017.01.03
COMMENT