jersey
Korzystanie z wiosennego rozruchu z jersey
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