jersey
Utiliser la botte de printemps avec Jersey
Recherche…
Application simple avec botte de printemps et jersey
Spring Boot est un framework d'amorçage pour les applications Spring. Il a un support transparent pour l'intégration avec Jersey également. Un des avantages de ceci (du point de vue d'un utilisateur de Jersey) est que vous avez accès au vaste écosystème de Spring.
Pour commencer, créez un nouveau projet Maven autonome (non-wepapp). Nous pouvons également créer une application Web, mais pour ce guide, nous utiliserons simplement une application autonome. Une fois le projet créé, ajoutez ce qui suit à votre 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>
Nous avons juste besoin de deux dépendances. Un pour le module Jersey Spring Boot et un autre pour un serveur Tomcat intégré. Le plugin que nous utiliserons pour exécuter l'application à tester.
Une fois que vous avez cela, ajoutez les classes suivantes au projet.
com/example
|
+-- GreetingApplication.class
+-- JerseyConfig.class
|
+ com/example/services
| |
| +-- GreetingService.class
| +-- NiceGreetingService.class
|
+ com/examples/resources
|
+-- GreetingResource.class
GreetingApplication.class
C'est la classe de bootstrap (très simple)
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
Ceci est la classe de configuration 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
et 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
C'est la classe de ressources où nous allons laisser Spring injecter le service 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);
}
}
Et c'est tout. Nous pouvons maintenant exécuter l'application. Prenez un terminal et exécutez la commande suivante à partir de la racine du projet.
mvn spring-boot:run
L'application devrait prendre quelques secondes pour commencer. Il y aura des opérations de diagraphie et vous verrez de l'art ASCII au printemps. Après cet art, il devrait y avoir environ 30 lignes ou plus de journalisation, alors vous devriez voir
15.784 seconds (JVM running for 38.056)
Maintenant, l'application est démarrée. Si vous utilisez cURL, vous pouvez le tester avec
curl -v 'http://localhost:8080/api/greeting?name=peeskillet'
Si vous êtes sous Windows, utilisez des guillemets doubles autour de l'URL. Si vous n'utilisez pas cURL, saisissez-le simplement dans le navigateur. Vous devriez voir le résultat
Hello peeskillet!
Vous remarquerez peut-être que la demande prend quelques secondes à la première demande que vous faites. C'est parce que Jersey n'est pas complètement chargé au lancement de l'application. Nous pouvons changer cela en ajoutant un fichier application.properties
dans le dossier src/main/resources
. Dans ce fichier, ajoutez ce qui suit:
spring.jersey.servlet.load-on-startup=1