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


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow