[SPRING] 스프링 부트를 사용하지 않고 스프링 휴식 서비스 만들기
SPRING스프링 부트를 사용하지 않고 스프링 휴식 서비스 만들기
나는 REEST 서비스 https://spring.io/guides/gs/rest-service/를 만들기 위해 spring.io의 Getting Started 튜토리얼을 따라 갔다. 문제는이 튜토리얼에서는 스프링 부트를 사용하여 Tomcat이 임베드 된 독립 실행 형 항아리를 만드는 방법 만 설명합니다.
이미 존재하는 Tomcat 인스턴스에 전개 할 전쟁을 생성하기 위해 처음부터 프로젝트를 생성하는 방법이 있습니까?
추신 : 나는 이전에 쓰레드 Spring RESTful Service를 WAR와 같이 stackoverflow의 Tomcat에서 JAR 대신에 매우 같은 문제를 발견했다. 문제는 허용 된 답변과 제안이 내 문제를 정확히 해결하지 못한다는 것입니다. 독립 실행 형 응용 프로그램 스프링 부트 프로젝트를 수정하여 외부 톰캣 컨테이너에서 작동하지만 '깨끗한'솔루션으로 스프링 부트가 전혀 필요하지 않습니다. (정확히 어떻게 여기에 행동하는지, 아직 stackoverflow 꽤 새로운 중인지 모르겠다. 나는 새로운 질문을 여는 올바른 절차입니다 희망).
해결법
-
==============================
1.나머지 컨트롤러를 생성하기 위해 스프링 부트가 필요하지 않습니다.
나머지 컨트롤러를 생성하기 위해 스프링 부트가 필요하지 않습니다.
MVC 설정 방법에 대한 스프링 프레임 워크 문서를 따르십시오. https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#spring-web
MVC 설정 (DispatcherServlet)은 스프링 버전에 따라 다르며 xml을 사용하거나 프로그래밍 방식으로 설정할 수 있습니다. https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-servlet
이 설정이 완료되면 애플리케이션에 나머지 컨트롤러를 추가 할 수 있습니다. 나머지 컨트롤러 (@RestController annotation)는 @ResponseBody와 @Controller를 결합하는 스테레오 타입 주석이며 컨트롤러는 뷰를 반환하는 대신 응답 본문에 객체를 반환합니다.
이것은 제가 위에서 말한 것을 설명하는 완벽한 예입니다 : http://www.programming-free.com/2014/01/spring-mvc-40-restful-web-services.html
-
==============================
2.다음은 또 다른 예입니다.
다음은 또 다른 예입니다.
디렉토리 레이아웃 :
. ├── ./pom.xml └── ./src └── ./src/main ├── ./src/main/java │ └── ./src/main/java/biz │ └── ./src/main/java/biz/tugay │ └── ./src/main/java/biz/tugay/restfulspring │ └── ./src/main/java/biz/tugay/restfulspring/config │ ├── ./src/main/java/biz/tugay/restfulspring/config/RestfulHello.java │ └── ./src/main/java/biz/tugay/restfulspring/config/WebAppInitalizer.java └── ./src/main/webapp └── ./src/main/webapp/WEB-INF └── ./src/main/webapp/WEB-INF/web.xml
Pom.hml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>biz.tugay</groupId> <artifactId>restfulSpring</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>restfulSpring Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.3.16.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.16.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.3.16.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.16.RELEASE</version> </dependency> </dependencies> <build> <finalName>restfulSpring</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.2.1.v20140609</version> </plugin> </plugins> </build> </project>
을 포함한다.
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> </web-app>
WebAppInitalizer.java
package biz.tugay.restfulspring.config; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; @Configuration @EnableWebMvc @ComponentScan("biz.tugay.restfulspring") public class WebAppInitalizer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected String[] getServletMappings() { return new String[]{"/*"}; } @Override protected Class<?>[] getRootConfigClasses() { return new Class<?>[]{WebAppInitalizer.class}; } @Override protected Class<?>[] getServletConfigClasses() { return new Class[0]; } }
RestfulHello.java
package biz.tugay.restfulspring.config; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController(value = "/") public class RestfulHello { @RequestMapping(value = "hello") public ResponseEntity<String> sayHello() { final HttpHeaders httpHeaders= new HttpHeaders(); httpHeaders.setContentType(MediaType.APPLICATION_JSON); return new ResponseEntity<String>("{\"msg\": \"Hello World\"}", httpHeaders, HttpStatus.OK); } }
빌드 및 실행 :
mvn clean install mvn jetty:start
테스트:
> GET /hello HTTP/1.1 > Host: localhost:8080 > User-Agent: insomnia/5.15.0 > Accept: */* < HTTP/1.1 200 OK < Date: Fri, 27 Apr 2018 00:06:07 GMT < Content-Type: application/json < Content-Length: 22 < Server: Jetty(9.2.1.v20140609)
받은 콘텐츠 :
{ "msg": "Hello World" }
여기에서 다운로드 할 수 있습니다.
from https://stackoverflow.com/questions/29416804/creating-spring-rest-services-without-using-spring-boot by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 테스트 @ 봄에 스케줄 (0) | 2019.03.03 |
---|---|
[SPRING] 하이버 네이트 세션이 쓰레드에 바인드되지 않았고, 컨피규레이션은 비 - 트랜젝션 세션의 생성을 허용하지 않는다. (0) | 2019.03.03 |
[SPRING] Spring에서 @Value의 기본값으로 null을 설정할 수 있습니까? (0) | 2019.03.02 |
[SPRING] 최고의 스프링 배치 스케일링 전략 (0) | 2019.03.02 |
[SPRING] 스프링 보안을 이용한 싱글 사인온 통합 (0) | 2019.03.02 |