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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow