Spring Boot (1.5) avec Maven

Cet article va parler de Spring Boot, via Maven. Il est nécessaire de connaitre un peu Spring et Maven avant de lire ceci. Je vous conseille de lire cet article sur Spring REST avant de commencer.

L’objectif est de lancer une application Spring Boot via une unique commande Maven. On va construire un service REST avec Spring pour tester ceci.

Vous pouvez télécharger le code via ce repository GIT.

Je pense que le code reste très simple, je vais détailler un peu la configuration Maven et le service REST mis en place. Mais si vous avez des questions, n’hésitez pas à les poser.

Configuration Maven

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>fr.jmottez</groupId>
	<artifactId>spring-4-boot-mvc-hello-world</artifactId>
	<version>1.0</version>

    <properties>
        <java.version>1.8</java.version>
        <spring.boot.version>1.5.9.RELEASE</spring.boot.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring.boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

	<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>fr.jmottez.lessons.spring.spring4.SpringApplicationRunner</mainClass>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
pom.xml

 

Afin de pouvoir utiliser Spring Boot, on importe ces dépendances via Maven. La dépendance “spring-boot-starter-web” suffit pour notre exemple.

Les projets Spring Boot construits avec Maven sont souvent configurés avec le pom parent “spring-boot-starter-parent”.   Je préfère éviter, puisque je passe souvent dans mes projets par un pom parent perso. Dans ce cas, il est fortement conseillé d’utiliser le dependency management utilisé dans spring-boot-starter-parent.

On configure le plugin Spring de Maven en définissant la Main Class lançant l’application Spring (SpringApplicationRunner pour le projet).

Afin de lancer l’application, il suffit de lancer la commande maven “spring-boot:run”.

Service REST SampleController

J’ai gardé un service REST d’exemple (SampleController). Des que l’application est lancé, il est possible de tester ce service en appelant l’url “http://localhost:8080/” sur votre navigateur web préféré. Le message “Hello World!” venant du service REST va s’afficher.

Service REST User

J’ai créé un service REST complet (UserSpringRestController) pour gérer (créer, supprimer, lister …) des utilisateurs.  Je vous laisse lire cet article pour plus d’information.

Pour tester ce service, vous pouvez utiliser un client REST comme PostMan. J’ai aussi créé une vue web cliente en Angularjs, via l’url “http://localhost:8080/user.html“.

Lancer Spring boot via la commande mvn package

Je rajoute un petit bonus: On peut configurer l’exécution du plugin Spring Boot dans le cycle de vie Maven.

En modifiant le pom.xml comme ci-dessous, Spring Boot s’exécute à l’étape “compile” du cycle de vie de Maven.  Je vous laisse exécuter la commande Maven “compile” avec cette nouvelle configuration.

<plugin>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-maven-plugin</artifactId>
	<configuration>
		<mainClass>fr.jmottez.lessons.spring.spring4.SpringApplicationRunner</mainClass>
	</configuration>
	<executions>
		<execution>
			<phase>package</phase>
			<goals>
				<goal>run</goal>
			</goals>
		</execution>
	</executions>
</plugin>

Conclusion

J’espère que cela pourra vous aider. Si vous avez des questions ou des remarques, n’hésitez pas à les poser.

 

2 thoughts on “Spring Boot (1.5) avec Maven”

  1. Pingback: Spring Boot 2 – Mon MicroService complet – La pause Dev'

  2. Pingback: Architecture hexagonale: Prends ton livre et n’fais pas de bruit dans ma bibliothèque !! – La pause Dev'

Leave a Reply

Your email address will not be published. Required fields are marked *