Zoeken…


Eenvoudige toepassing met Spring Boot en Jersey

Spring Boot is een bootstrapping-framework voor Spring-toepassingen. Het biedt ook naadloze ondersteuning voor integratie met Jersey. Een van de voordelen hiervan (vanuit het perspectief van een Jersey-gebruiker) is dat je toegang hebt tot het enorme ecosysteem van Spring.

Maak om te beginnen een nieuw zelfstandig (niet-wepapp) Maven-project. We kunnen ook een webapp maken, maar voor deze handleiding gebruiken we alleen een zelfstandige app. Nadat u het project hebt gemaakt, voegt u het volgende toe aan uw pom.xml

<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>

We hebben slechts twee afhankelijkheden nodig. Een voor de Jersey Spring Boot-module en een andere voor een ingesloten Tomcat-server. De plug-in die we zullen gebruiken om de te testen applicatie uit te voeren.

Zodra je dat hebt, voeg je de volgende klassen toe aan het project.

com/example
  |
  +-- GreetingApplication.class
  +-- JerseyConfig.class
  |
  + com/example/services
  |   |
  |   +-- GreetingService.class
  |   +-- NiceGreetingService.class
  |
  + com/examples/resources
      |
      +-- GreetingResource.class 

GreetingApplication.class

Dit is de bootstrap-klasse (heel eenvoudig)

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

Dit is de Jersey-configuratieklasse

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 en 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

Dit is de resource-klasse waar we Spring de GreetingService in laten injecteren.

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);
    }
}

En dat is het. We kunnen de applicatie nu uitvoeren. Pak een terminal en voer de volgende opdracht uit vanuit de root van het project.

mvn spring-boot:run

De toepassing moet enkele seconden duren om te beginnen. Er zal wat logboekregistratie zijn en je zult wat Spring ASCII-kunst zien. Na die kunst zou het ongeveer 30 regels of meer moeten zijn om te loggen, dan zou je moeten zien

 15.784 seconds (JVM running for 38.056)

Nu is de app gestart. Als u cURL gebruikt, kunt u het testen

curl -v 'http://localhost:8080/api/greeting?name=peeskillet'

Als u Windows gebruikt, gebruikt u dubbele aanhalingstekens rond de URL. Als u cURL niet gebruikt, typt u het gewoon in de browser. Je zou het resultaat moeten zien

Hello peeskillet!

Mogelijk merkt u dat het verzoek enkele seconden duurt bij het eerste verzoek dat u doet. Dat komt omdat Jersey niet volledig is geladen wanneer de app wordt gestart. We kunnen dat wijzigen door een bestand application.properties voegen aan de map src/main/resources . Voeg in dat bestand het volgende toe:

spring.jersey.servlet.load-on-startup=1


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow