使用 Spring 引导配置 Jersey
Configuring Jersey with Spring boot
我正在尝试使用球衣配置 spring 靴子,但球衣注释似乎不适用于 spring 靴子。
你能帮帮我吗?
我在服务中尝试使用@RestController 代替@Component 和@RequestMapping 代替@Path class。
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 引导应用程序 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);
}
}
服务class带有球衣注释
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";
}
}
不错的在线教程:
Spring Boot Jersey Example July 14, 2017 by Lokesh Gupta。这似乎是你缺少的部分。
球衣配置
1:现在我们有一个 JAX-RS 资源,我们想从 spring 包含 Jersey 依赖项的启动应用程序访问它。让我们将此资源注册为 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 注释。它使 class 能够在 spring 启动自动扫描源文件夹中的 java classes 时注册。
2:ResourceConfig
提供高级功能来简化 JAX-RS 组件的注册。
3: 使用 SpringBootServletInitializer
.
扩展 spring 启动应用程序
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 class和 JerseydemoApplication class 在同一个包里,否则注册不了。教程中没有明确提到这一点。
我在使用 intellij 终极版并遵循上面 Nicholas 提供的相同教程时发现了这个
我正在尝试使用球衣配置 spring 靴子,但球衣注释似乎不适用于 spring 靴子。 你能帮帮我吗?
我在服务中尝试使用@RestController 代替@Component 和@RequestMapping 代替@Path class。
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 引导应用程序 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);
}
}
服务class带有球衣注释
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";
}
}
不错的在线教程: Spring Boot Jersey Example July 14, 2017 by Lokesh Gupta。这似乎是你缺少的部分。
球衣配置
1:现在我们有一个 JAX-RS 资源,我们想从 spring 包含 Jersey 依赖项的启动应用程序访问它。让我们将此资源注册为 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 注释。它使 class 能够在 spring 启动自动扫描源文件夹中的 java classes 时注册。
2:ResourceConfig
提供高级功能来简化 JAX-RS 组件的注册。
3: 使用 SpringBootServletInitializer
.
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 class和 JerseydemoApplication class 在同一个包里,否则注册不了。教程中没有明确提到这一点。
我在使用 intellij 终极版并遵循上面 Nicholas 提供的相同教程时发现了这个