[英]Configuring Jersey with Spring boot
我正在嘗試使用jersey配置Spring Boot,但似乎Jersey注解不適用於Spring Boot。 你能幫我一下嗎
我已經在服務類中嘗試使用@RestController而不是@Component和@RequestMapping而不是@Path。
pom.xml
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.hotel</groupId>
<artifactId>reservations</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>reservations</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.8.RELEASE</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>1.4.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jersey</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Spring Boot應用程序Xml
package org.hotel;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ReservationApplication {
public static void main(String []args){
SpringApplication.run(ReservationApplication.class, args);
}
}
帶球衣注釋的服務類
package org.hotel.webservices;
import org.springframework.stereotype.Component;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
@Component
@Path("/rooms")
public class AddRoomService {
@GET
public String addRoomService(){
return "success";
}
}
不錯的在線教程: Lokesh Gupta於2017年7月14日發布了Spring Boot Jersey Example 。 這似乎是您缺少的部分。
球衣配置
1:現在我們有了一個JAX-RS資源,我們想從包含Jersey依賴項的spring boot應用程序中訪問它。 讓我們將此資源注冊為Jersey資源。
package com.howtodoinjava.jerseydemo;
import org.glassfish.jersey.server.ResourceConfig;
import org.springframework.stereotype.Component;
@Component
public class JerseyConfig extends ResourceConfig
{
public JerseyConfig()
{
register(UserResource.class);
}
}
查看@Component批注。 它可以在Spring Boot自動掃描源文件夾中的java類時注冊此類。
2: ResourceConfig
提供高級功能以簡化JAX-RS組件的注冊。 3:使用SpringBootServletInitializer
擴展spring boot應用程序。
package com.howtodoinjava.jerseydemo;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
@SpringBootApplication
public class JerseydemoApplication extends SpringBootServletInitializer
{
public static void main(String[] args)
{
new JerseydemoApplication().configure(new SpringApplicationBuilder (JerseydemoApplication.class)).run(args);
}
}
只是為了補充尼古拉斯(Nicholas)同意的出色教程,但如果您希望重組項目(例如為您的資源,模型等創建多個包),則必須確保JerseyConfig類和JerseydemoApplication類位於同一包中,否則,注冊將無法進行。 本教程中未明確提及。
我在使用IntelliJ Ultimate Edition並遵循上面Nicholas提供的相同教程時發現了這一點
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.