Szukaj…


Prosta aplikacja z wiosennym butem i jersey

Spring Boot to platforma ładująca dla aplikacji Spring. Ma również płynną obsługę integracji z Jersey. Jedną z zalet tego (z perspektywy użytkownika Jersey) jest to, że masz dostęp do rozległego ekosystemu Springa.

Aby rozpocząć, utwórz nowy autonomiczny projekt Maven (nie wepapp). Możemy również stworzyć aplikację internetową, ale w tym przewodniku użyjemy tylko samodzielnej aplikacji. Po utworzeniu projektu dodaj następujące elementy do 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>

Potrzebujemy tylko dwóch zależności. Jeden dla modułu Jersey Spring Boot, a drugi dla wbudowanego serwera Tomcat. Wtyczka, której użyjemy do uruchomienia aplikacji do testowania.

Gdy to zrobisz, dodaj następujące klasy do projektu.

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

GreetingApplication.class

To jest klasa bootstrap (bardzo prosta)

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

To jest klasa konfiguracji Jersey

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

Jest to klasa zasobów, w której pozwolimy Springowi wstrzykiwać usługę 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);
    }
}

I to wszystko. Możemy teraz uruchomić aplikację. Chwyć terminal i uruchom następującą komendę z katalogu głównego projektu.

mvn spring-boot:run

Uruchomienie aplikacji powinno zająć kilka sekund. Będzie trochę logowania, a zobaczysz trochę wiosennej grafiki ASCII. Po tej sztuce powinno być około 30 wierszy więcej rejestrowania, to powinieneś zobaczyć

 15.784 seconds (JVM running for 38.056)

Teraz aplikacja jest uruchomiona. Jeśli używasz cURL, możesz go przetestować

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

Jeśli korzystasz z systemu Windows, użyj podwójnych cudzysłowów wokół adresu URL. Jeśli nie używasz cURL, po prostu wpisz go w przeglądarce. Powinieneś zobaczyć wynik

Hello peeskillet!

Możesz zauważyć, że żądanie zajmuje kilka sekund przy pierwszym złożonym żądaniu. Wynika to z faktu, że Jersey nie jest w pełni załadowany po uruchomieniu aplikacji. Możemy to zmienić, dodając plik application.properties w folderze src/main/resources . W tym pliku dodaj:

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


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow