Printemps RSS

Le printemps est un ensemble puissant d'outils conçus pour la construction d'applications web rapidement et efficacement, permettant aux développeurs de créer des applications d'entreprise de niveau supérieur en utilisant une manière simple et extensible de coder. Le framework Spring facilite l'utilisation de Java ou d'autres langages pour créer l'application et la déployer sur n'importe quel type de serveur hiérarchisé, qu'il soit un serveur HTTP ou un serveur d'application. Spring a prouvé qu'il ajoutait de la valeur dans un large éventail d'environnements, facilitant une grande variété de tâches pour les équipes petites et grandes. Le framework propose différents modules qui peuvent être utilisés séparément ou ensemble pour créer des applications d'entreprise, apportant flexibilité et simplicité au processus de développement. Le site officiel de Spring propose diverses ressources et outils tels que la documentation, des tutoriels, des cours de formation, des exemples qui aident les développeurs à commencer et à maîtriser le framework. Le site inclut également les dernières notes de version, les mises à jour et une section communauté où les développeurs peuvent partager des idées, obtenir du soutien ou contribuer au projet.

Fil de notes

Apache Kafka 4.0.0 introduit les Share Groups comme un nouveau modèle de consommation aux côtés des groupes de consommateurs traditionnels. Les Share Groups distribuent des enregistrements individuels, et non des partitions entières, offrant une distribution au niveau de l'enregistrement pour une flexibilité accrue. Cela diffère des groupes de consommateurs traditionnels où les partitions sont assignées à des consommateurs spécifiques, garantissant l'ordre au sein de ces partitions. Les Share Groups sont idéaux pour les événements indépendants à volume élevé où le débit est prioritaire sur la séquence. Ils offrent également des avantages d'évolutivité dynamique pour les charges de travail à demande variable. Les groupes de consommateurs traditionnels restent essentiels lorsque le traitement de l'ordre est critique ou pour le traitement avec état nécessitant une affinité de partition. Dans les Share Groups, un Share Coordinator au niveau du broker gère la distribution des enregistrements. Les enregistrements sont acquis par les consommateurs avec un verrou basé sur le temps et retournés automatiquement au pool s'ils ne sont pas accusés de réception dans le délai imparti. Les consommateurs peuvent accuser réception des enregistrements comme ACCEPT, RELEASE pour réessayer, ou REJECT pour une défaillance permanente. Le broker suit les tentatives de livraison, archivant automatiquement les messages après une limite configurée pour se protéger contre les messages empoisonnés. Spring for Apache Kafka 4.0.0 prend entièrement en charge les Share Groups, offrant à la fois la création de conteneurs programmatique et les configurations @KafkaListener basées sur des annotations. La configuration d'un ShareConsumerFactory et d'un ShareKafkaListenerContainerFactory est nécessaire. Les deux modes d'accusé de réception implicites et explicites sont pris en charge. L'accusé de réception implicite accepte automatiquement en cas de réussite de la méthode et rejette en cas d'exceptions, tandis que l'accusé de réception explicite permet un contrôle précis à l'aide d'un paramètre ShareAcknowledgment. L'accusé de réception explicite, cependant, nécessite que tous les enregistrements soient accusés de réception avant que de nouveaux enregistrements puissent être interrogés. Les Share Groups permettent également une mise à l'échelle avec la concurrence au sein d'un seul conteneur, permettant à plusieurs threads de consommateurs de traiter les enregistrements en parallèle.
Le Spring Framework introduit la prise en charge de Jackson 3, la dernière version de la populaire bibliothèque JSON JVM, dans Spring Boot 4 et les projets associés. Cette mise à jour significative fait suite à la sortie de Jackson 3.0.0 GA et s'appuie sur les améliorations passées de l'intégration de Jackson. Les équipes Spring et Jackson ont collaboré étroitement pendant la phase de release candidate de Jackson 3, ce qui a conduit à plusieurs améliorations. Celles-ci incluent la coexistence de Jackson 2 et 3, une base JDK 17, des valeurs par défaut alignées pour les vues JSON, et des capacités améliorées de null-safety et de parsing non bloquant. Spring Boot 4 fournira la gestion des dépendances pour les deux versions de Jackson, mais ne configurera automatiquement que Jackson 3, en en faisant le défaut. Il est encouragé aux applications en cours de migration d'adopter Jackson 3, bien que l'utilisation temporaire de Jackson 2 soit possible avec une configuration manuelle. Les étapes clés de migration impliquent la mise à jour des noms de packages de `com.fasterxml.jackson` à `tools.jackson` et l'adaptation aux nouveaux paramètres par défaut dans Jackson 3, tels que le tri alphabétique des propriétés et les formats de sérialisation des dates. L'introduction d'un `JsonMapper` immuable dans Jackson 3 remplace le `ObjectMapper` mutable de Jackson 2, simplifiant la configuration avec `JsonMapper.Builder`. Le `MappingJackson2HttpMessageConverter` obsolète est remplacé par un `JacksonJsonHttpMessageConverter` plus performant qui utilise directement les indications de sérialisation, éliminant le besoin de wrappers tels que `MappingJacksonValue`. Spring Security 7.0 prendra également en charge Jackson 3, améliorant la sécurité en désactivant la typisation globale par défaut et en introduisant un `PolymorphicTypeValidator`. Spring Data 4.0 apporte une prise en charge complète de Jackson 3 dans ses modules, bien que certains, comme Spring Data REST et Spring HATEOAS, nécessiteront une migration complète vers Jackson 3.
Le Model Context Protocol (MCP) est une norme en évolution rapide dans le monde de l'IA. Spring AI a lancé un nouveau projet, mcp-security, pour répondre aux besoins de sécurité des utilisateurs de Spring. Ce projet offre un support pour sécuriser les serveurs MCP avec OAuth 2 et des clés API. La dernière version de la spécification MCP gagne un support plus large de l'écosystème. Les serveurs MCP exposés via HTTP doivent être sécurisés à l'aide de jetons d'accès OAuth 2 conformément à la spécification MCP. Les appels à un serveur MCP nécessitent un en-tête Authorization avec un jeton Bearer. Le serveur MCP doit explicitement annoncer les serveurs d'autorisation dont il fait confiance pour l'acquisition de jetons. Spring AI s'intègre de manière transparente avec les serveurs de ressources OAuth 2, permettant aux applications de tirer parti des serveurs d'autorisation existants tels qu'Okta ou GitHub. Pour sécuriser un serveur MCP avec OAuth 2, les utilisateurs doivent ajouter des dépendances spécifiques à leurs applications Spring AI. Ces dépendances activent la fonctionnalité de serveur de ressources OAuth 2 et les configurations de sécurité spécifiques à MCP. Les propriétés de l'application sont ensuite utilisées pour configurer le nom du serveur MCP, le protocole et l'URL du serveur d'autorisation. Un outil d'exemple démontre comment récupérer les informations utilisateur à partir du jeton JWT authentifié. Une classe de configuration de sécurité d'exemple, McpServerSecurityConfiguration, démontre comment appliquer l'authentification pour toutes les requêtes et configurer OAuth 2 pour le serveur MCP. Cette configuration permet aux clients MCP de découvrir et d'utiliser dynamiquement les serveurs d'autorisation. Spring Authorization Server peut également être construit pour être compatible MCP, prenant en charge l'enregistrement dynamique de clients OAuth 2 et les indicateurs de ressources. Bien qu'OAuth 2 soit le mécanisme de sécurité obligatoire, la spécification MCP prend également en charge l'authentification basée sur des clés API pour les environnements dépourvus d'infrastructure OAuth 2. Le projet mcp-security facilite la sécurité des clés API en permettant des en-têtes personnalisés pour l'authentification. Cela implique l'ajout de dépendances spécifiques pour Spring Security et la configuration d'un dépôt de clés API. Le serveur MCP valide ensuite la clé API fournie, qui est généralement envoyée sous forme d'en-tête X-API-key. Le projet mcp-security vise à améliorer la sécurité MCP et propose de la documentation et des exemples pour la sécurité côté serveur et côté client. Les contributions et les commentaires sont encouragés pour améliorer davantage les fonctionnalités de sécurité du protocole. Le projet fournit également un support pour la sécurité MCP côté client au sein de Spring AI et Spring Security.
CdXz5zHNQW_nl1kdOfOBY.png
Le portefeuille Spring se prépare pour ses prochaines versions majeures, avec Spring Boot 4 et Spring Framework 7 prévus pour novembre. Cette version maintient la ligne de base JDK 17, conformément aux normes de l'industrie. Les mises à niveau significatives incluent la transition vers Jakarta EE 11 et l'adoption de versions plus récentes de Kotlin, Jackson et JUnit. Les prochaines versions majeures introduiront une large gamme de nouvelles fonctionnalités et de capacités demandées par la communauté. Pour informer les utilisateurs, des billets de blog hebdomadaires mettront en avant ces nouvelles fonctionnalités jusqu'à la disponibilité générale de novembre. La série de billets de blog couvrira des sujets tels que les fonctionnalités de résilience de base de Spring, la versionnage d'API, et les améliorations du client HTTP. Elle abordera également le support de Jackson 3, les files d'attente Kafka, la modularisation de Spring Boot et l'autorisation progressive dans Spring Security. D'autres sujets prévus incluent Spring gRPC, les applications sécurisées contre les null, l'intégration OpenTelemetry et les référentiels Ahead of Time. Les contributions de la communauté ont été déterminantes dans l'élaboration de ces nouvelles fonctionnalités, et leurs commentaires sur les versions de jalons disponibles sont vivement encouragés. Il est conseillé aux utilisateurs de mettre en signet le billet pour obtenir des mises à jour hebdomadaires et des liens vers le nouveau contenu du blog.