본문 바로가기

툴사용법

[MAVEN] 웹/REST/스프링부트 생성 및 실행

기본 웹어플리케이션 개발

mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp

 

10. 보통 자바 애플리케이션은 jar 파일로 되어 있는데, 이번에는 war 파일로 되어 있다.

35~48. 웹서비스 테스트를 위해 제티 플러그인 설치

40. scanIntervalSeconds : 웹 애플리케이션을 스캔하기까지의 간격()

42. connectors : 서블릿 컨테이너에 접속하는 설정.

43. connector : 커넥터 지정. Implementation 속성에 지정.

43. port : 포트번호를 지정

44. maxIdleTime : 최대 유휴 시간(밀리초)

 

 

 

JAX-RSREST 개발하기

아키타입은 REST

 

 

 

REST 구조라하는데 보통 웹어플리케이션 구조임.

War로 패키징하고 배포하면 웹애플리케이션으로 이용할 수 있다.

 

샘플로 포함된 REST용 클래스.

11. @Path(“myresource”) 어노테이션에 의해 myresource라는 경로에 할당된 것을 알 수 있다.

20. @Get 어노테이션에 의해 GET 메서드로 접속했을 때 실행됩니다. 또한 @Produces(MediaType.TEXT_PLAIN)에 의해 값이 플레인 텍스트로 반환된다.

 

기본적으로 생성된 web.xml

7. org.glassfish.jersey.servlet 패키지으이 ServletContainer 클래스가 서블릿으로 등록.

10. com.tuyano.rest 패키지 내의 클래스가 ServletContainer에 전달되어 REST 처리용 프로그램으로 이용된다.

14~17. Servlet-mapping에 의해 /webapi/*에 공개되어 /webapi/myresource 주소로 접속하면 REST 서비스에 접속할 수 있다.

 

13~21. maven-compiler-plugin : 소스코드 컴파일 플러그인

24. dependencyManagement :  규모가 큰 라이브러리는 여러 모듈로 쪼개져서 배포되는 경우가 있다. 예를 들어 JacksonJackson-core, Jackson-databind, Jackson-dataformat-yaml 등의 모듈로 나눠져 있다. 이 쪼개진 라이브러리들을 걍 dependencies에 넣으면 버전이 제각각 받아져서 ClassNotFoundException을 유발하는 원인이 된다. 하지만 이 태그 안에 넣으면 버전은 딸려온 의존성 버전을 모두 고정할 수 있다.

28,30,46. 이렇게 쪼개진 라이브러리들은 BOM을 임포트하면 모든 모듈이 3.0.0-M6버전으로 강제된다.

38. jersey-container-servlet-core : ServletContainer 서블릿 라이브러리.

 

 

Jetty 플러그인 추가

 

 

 

Spring-boot 아키타입

 

1. mvn-spring-app-1.0-SNAPSHOT.jar : 런타임인 제티와 그 외의 라이브러리 모두를 포함한 JAR파일. 이 하나만으로 애플리케이션을 실행할 수 있다.

2. mvn-spring-app-1.0-SNAPSHOT.jar.original : 라이브러리를 포함하지 않고 프로젝트의 프로그램만을 포함한 JAR파일 서블릿 컨테이너에 배포하여 이용할 경우 사용.