Sök…


Enkel applikation med Spring Boot och Jersey

Spring Boot är ett bootstrapping-ramverk för Spring-applikationer. Det har sömlöst stöd för att integrera med Jersey också. En av fördelarna med detta (ur en Jersey-användares perspektiv) är att du har tillgång till vårens enorma ekosystem.

För att komma igång, skapa ett nytt fristående (icke-wepapp) Maven-projekt. Vi kan skapa en webapp också, men för den här guiden använder vi bara en fristående app. När du har skapat projektet lägger du till följande i din 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>

Vi behöver bara två beroenden. En för Jersey Spring Boot-modulen och en för en inbäddad Tomcat-server. Plugin som vi kommer att använda för att köra applikationen för att testa.

När du har gjort det lägger du till följande klasser i projektet.

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

GreetingApplication.class

Detta är bootstrap-klassen (mycket enkel)

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

Detta är Jersey-konfigurationsklassen

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

Det här är resursklassen där vi låter Spring injicera GreetingService .

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

Och det är allt. Vi kan nu köra applikationen. Ta en terminal och kör följande kommando från roten till projektet.

mvn spring-boot:run

Det bör ta några sekunder innan applikationen kommer igång. Det kommer att finnas en del loggning, och du kommer att se vår ASCII-konst. Efter den konsten bör det vara ungefär 30 rader eller mer av loggning, då borde du se

 15.784 seconds (JVM running for 38.056)

Nu är appen startad. Om du använder CURL kan du testa det med

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

Om du är på Windows, använd dubbla citat runt URL: n. Om du inte använder cURL skriver du bara det i webbläsaren. Du borde se resultatet

Hello peeskillet!

Du kanske märker att begäran tar några sekunder på den första begäran du gör. Det beror på att Jersey inte är fulladdat när appen startas. Vi kan ändra det genom att lägga till en application.properties fil i mappen src/main/resources . Lägg till följande i den filen:

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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow