기본 웹어플리케이션 개발
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-RS로 REST 개발하기
아키타입은 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 : 규모가 큰 라이브러리는 여러 모듈로 쪼개져서 배포되는 경우가 있다. 예를 들어 Jackson은 Jackson-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파일 서블릿 컨테이너에 배포하여 이용할 경우 사용.
'툴사용법' 카테고리의 다른 글
[GRADLE] GROOVY 설치 및 입문(1) (4) | 2020.08.26 |
---|---|
[MAVEN] 멀티모듈 (0) | 2020.08.25 |
[MAVEN] 기본 자바 프로젝트 생성 및 실행 (0) | 2020.08.21 |
[MAVEN] 저장소_내가만든jar추가 (0) | 2020.08.20 |
[MAVEN] 이클립스 사용법/명령어 정리 (0) | 2020.08.19 |