jersey
Spring Boot mit Jersey verwenden
Suche…
Einfache Anwendung mit Spring Boot und Jersey
Spring Boot ist ein Bootstrapping-Framework für Spring-Anwendungen. Es bietet nahtlose Unterstützung für die Integration mit Jersey. Einer der Vorteile (aus Sicht eines Jersey-Benutzers) besteht darin, dass Sie Zugang zu Spring 'großem Ökosystem haben.
Erstellen Sie zunächst ein neues eigenständiges (nicht wepapp) Maven-Projekt. Wir können auch eine Webapp erstellen, aber für dieses Handbuch verwenden wir nur eine eigenständige App. Nachdem Sie das Projekt erstellt haben, fügen Sie der pom.xml
Folgendes hinzu
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jersey</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Wir brauchen nur zwei Abhängigkeiten. Eine für das Jersey Spring Boot-Modul und eine weitere für einen eingebetteten Tomcat-Server. Das Plugin, das wir verwenden werden, um die Anwendung zum Testen auszuführen.
Sobald Sie das haben, fügen Sie dem Projekt die folgenden Klassen hinzu.
com/example
|
+-- GreetingApplication.class
+-- JerseyConfig.class
|
+ com/example/services
| |
| +-- GreetingService.class
| +-- NiceGreetingService.class
|
+ com/examples/resources
|
+-- GreetingResource.class
GreetingApplication.class
Dies ist die Bootstrap-Klasse (sehr einfach)
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class GreetingApplication {
public static void main(String[] args) {
SpringApplication.run(GreetingApplication.class, args);
}
}
JerseyConfig.class
Dies ist die Jersey-Konfigurationsklasse
import javax.ws.rs.ApplicationPath;
import org.glassfish.jersey.server.ResourceConfig;
import org.springframework.stereotype.Component;
@Component
@ApplicationPath("/api")
public class JerseyConfig extends ResourceConfig {
public JerseyConfig() {
packages("com.example");
}
}
GreetingService.class
und NiceGreetingService.class
public interface GreetingService {
public String getGreeting(String name);
}
import org.springframework.stereotype.Component;
@Component
public class NiceGreetingService implements GreetingService {
@Override
public String getGreeting(String name) {
return "Hello " + name + "!";
}
}
GreetingResource
Dies ist die Ressourcenklasse, in die Spring den GreetingService
einfügen soll.
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;
import org.springframework.beans.factory.annotation.Autowired;
import com.example.service.GreetingService;
@Path("greeting")
public class GreetingResource {
private GreetingService greetingService;
@Autowired
public GreetingResource(GreetingService greetingService) {
this.greetingService = greetingService;
}
@GET
public String getGreeting(@QueryParam("name") String name) {
return this.greetingService.getGreeting(name);
}
}
Und das ist es. Wir können jetzt die Anwendung ausführen. Holen Sie sich ein Terminal und führen Sie den folgenden Befehl aus dem Stammverzeichnis des Projekts aus.
mvn spring-boot:run
Die Anwendung sollte einige Sekunden dauern, um zu beginnen. Es wird einige Protokollierungen stattfinden, und Sie werden einige Spring ASCII-Grafiken sehen. Nach dieser Kunst sollte es ungefähr 30 Zeilen mehr Protokollierung sein, dann sollten Sie sehen
15.784 seconds (JVM running for 38.056)
Nun wird die App gestartet. Wenn Sie cURL verwenden, können Sie es mit testen
curl -v 'http://localhost:8080/api/greeting?name=peeskillet'
Wenn Sie mit Windows arbeiten, setzen Sie die URL in Anführungszeichen. Wenn Sie cURL nicht verwenden, geben Sie es einfach in den Browser ein. Sie sollten das Ergebnis sehen
Hello peeskillet!
Möglicherweise stellen Sie fest, dass die Anforderung bei der ersten Anforderung einige Sekunden dauert. Das liegt daran, dass Jersey beim Start der App nicht vollständig geladen ist. Wir können dies ändern, indem Sie im Ordner src/main/resources
eine Datei application.properties
hinzufügen. Fügen Sie in dieser Datei Folgendes hinzu:
spring.jersey.servlet.load-on-startup=1