Un guide étape par étape / blogs / perficient

Dans cet article de blog, je vous guiderai tout au long du processus d’implémentation d’un validateur Spring Expression Language (SPEL) dans une application Spring Boot. Spel est un langage d’expression puissant qui prend en charge l’interrogation et la manipulation d’un graphique d’objet à l’exécution. À la fin de ce tutoriel, vous aurez un exemple de travail d’utilisation de Spel pour la validation dans votre application Spring Boot.
Structure du projet

Étape 1: Configurez votre projet Spring Boot
Tout d’abord, configurons votre projet Spring Boot. Dirigez-vous vers Spring Initialiseur et créez un nouveau projet avec les dépendances suivantes:
- Web de démarrage de démarrage de Spring
- Thymeleaf (pour l’interface de forme)
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>3.4.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> <version>3.4.2</version> </dependency> </dependencies>
Étape 2: Créez la classe d’application principale
Ensuite, nous créerons la classe d’application principale pour bootstrap notre application Spring Boot.
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
Étape 3: Créez une classe de modèle
Créez une classe Spelexpression pour maintenir l’entrée utilisateur.
package com.example.demo.model; public class SpelExpression { private String expression; // Getters and Setters public String getExpression() { return expression; } public void setExpression(String expression) { this.expression = expression; } }
Étape 4: Créez un contrôleur
Créez un contrôleur pour gérer l’entrée de l’utilisateur et valider l’expression de Spel.
package com.example.demo.controller; import com.example.demo.model.SpelExpression; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.SpelParseException; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PostMapping; @Controller public class SpelController { private final ExpressionParser parser = new SpelExpressionParser(); @GetMapping("https://blogs.perficient.com/spelForm") public String showForm(Model model) { model.addAttribute("spelExpression", new SpelExpression()); return "spelForm"; } @PostMapping("/validateSpel") public String validateSpel(@ModelAttribute SpelExpression spelExpression, Model model) { try { parser.parseExpression(spelExpression.getExpression()); model.addAttribute("message", "The expression is valid."); } catch (SpelParseException e) { model.addAttribute("message", "Invalid expression: " + e.getMessage()); } return "result"; } }
Étape 5: Créez des modèles de thymeleaf
Créez des modèles de thymeleaf pour le formulaire et la page de résultat.
Formulaire de jeu.html
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>SpEL Form</title> <style> body { font-family: Arial, sans-serif; background-color: #f4f4f9; color: #333; margin: 0; padding: 0; display: flex; justify-content: center; align-items: center; height: 100vh; } .container { background-color: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); text-align: center; } h1 { color: #4CAF50; } form { margin-top: 20px; } label { display: block; margin-bottom: 8px; font-weight: bold; } input[type="text"] { width: 100%; padding: 8px; margin-bottom: 20px; border: 1px solid #ccc; border-radius: 4px; } button { padding: 10px 20px; background-color: #4CAF50; color: #fff; border: none; border-radius: 4px; cursor: pointer; } button:hover { background-color: #45a049; } </style> </head> <body> <div class="container"> <h1>SpEL Expression Validator</h1> <form th:action="@{/validateSpel}" th:object="${spelExpression}" method="post"> <div> <label>Expression:</label> <input type="text" th:field="*{expression}" /> </div> <div> <button type="submit">Validate</button> </div> </form> </div> </body> </html>
résultat.html
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>Validation Result</title> <style> body { font-family: Arial, sans-serif; background-color: #f4f4f9; color: #333; margin: 0; padding: 0; display: flex; justify-content: center; align-items: center; height: 100vh; } .container { background-color: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); text-align: center; } h1 { color: #4CAF50; } p { font-size: 18px; } a { display: inline-block; margin-top: 20px; padding: 10px 20px; background-color: #4CAF50; color: #fff; text-decoration: none; border-radius: 4px; } a:hover { background-color: #45a049; } </style> </head> <body> <div class="container"> <h1>Validation Result</h1> <p th:text="${message}"></p> <a href="https://blogs.perficient.com/spelForm">Back to Form</a> </div> </body> </html>
Étape 6: Exécutez l’application
Maintenant, il est temps d’exécuter votre application Spring Boot. Pour tester le validateur de Spel, accédez à http: // localhost: 8080 / jeu de jeu dans votre navigateur.
Pour une expression valide
Pour une expression non valide

Conclusion
Suivant ce guide, vous avez réussi à implémenter un validateur Spel dans votre application Spring Boot. Cette fonctionnalité puissante améliore la flexibilité et la robustesse de votre application. Continuez à explorer Spel pour des solutions plus dynamiques et sophistiquées. Codage heureux!
Source link