Accéder au contenu principal

Articles

Affichage des articles du 2021

Le patron décorateur avec Thymeleaf

Dans le précédent article de thymeleaf , nous avons utilisé l'approche par défaut des templates. Nous avions une page principal, product et about. Pour chacune d'elle, nous avions un fragment menu, footer. Tous ces pages avaient une structure similaire.  Nous allons maintenant utiliser une approche différente. Nous allons utiliser le patron décorateur. Nous allons utiliser le même exemple, mais avec cette approche.Le header sera mis dans un fragment cette fois. Les sources sont disponibles sur github Le fragment header <head th :fragment ="my-header" > <title> Good Thymes Virtual Grocery </title> <meta http-equiv ="Content-Type" content ="text/html; charset=UTF-8" /> <link rel ="stylesheet" type ="text/css" media ="all" href ="../../css/main.css" th :href ="@{/css/main.css}" /> </head>   Layout Decorator Nous allons créer un fichier main-layout avec l...

La puissance des fragments avec Thymeleaf

Nous allons traiter une des particularités de Thymleaf, les fragments. Nous avons vue jusqu'à maintenant les templates. Nous utiliserons spring boot et la structure du projet sera. Les sources sont disponible ici .     Un template peut être vue comme une page html, javascript, css.  Par exemple, dans un fichier index.html <!DOCTYPE html> < html xmlns: th = " http://www.thymeleaf.org " > < head > < title > Good Thymes Virtual Grocery </ title > < meta http-equiv = " Content-Type " content = " text/html; charset = UTF-8 " /> < link rel = " stylesheet " type = " text/css " media = " all " href = " ../../css/main.css " th: href = " @{/css/main.css} " /> </ head > < body > < p th: text = " #{home.welcome} " > Welcome to our grocery store! </ p > < p > Today is: < sp...

Les transactions en JPA avec Springs

Comme bien souvent avec le framework spring, une annotation permet de lui confier une tâche. Dans cet article, nous détaillerons quelques points qu'il faut faire attention afin d'obtenir les résultats escompté. Transaction Les transactions sont disponibles dans la majorité des bases de données. Mais qu'est-ce qu'une transaction. C'est une opération avec un début et une fin. Elle est définie par 4 propriétés qui sont désignés par l'acronyme ACID. Atomicité Tous les opérations qui composent la transaction sont soit réussite soit en échec. C'est tout ou rien. Cohérence La transaction doit emmener le système valide dans un état valide Isolation La transaction doit s'exécuter comme si seul elle était seul à fonctionner. Durabilité Les modifications apportés lors d'une transaction doivent être conservés. Spring permet de respecté ces propriétés avec sa gestion des transactions. Nous utiliserons spring boot avec Hibernate comme implémentation de JPA. Dans l...

Lenovo mini5i et Linux

J'ai récemment fait l'acquisiton d'un Lenovo mini 5i au lieu d'un ordinateur portable qui ont de plus en plus de composant soudé. Un petit intel Core i3-10100, qui est au final autrement plus puissant que le i5-5300U de mon T450S Tous les composants sont accessible: ssd, disque dur, carte wifi, mémoire vive. J'ai mis 32 gig de ram. Le ssd a été remplacé par un WD_BLACK  SN850 compatible pcie 4. Tous les composants de la machines sont bien supportés par linux. Suse tumbleweed y a été installé sans aucune anomalie. La machine possède plusieurs ports USB 3.2. Au niveau graphique, il y a un port display port et hdmi 1.4b. Au démarrage, il y a quelques erreur dans les logs CPI BIOS Error (bug): Failure creating named object [\_SB.PCI0.XHC.RHUB.GPLD], AE_ALREADY_EXISTS (20210331/dswload2-326)  ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20210331/psobject-220) ACPI: Skipping parse of AML opcode: Method (0x0014) ACPI BIOS Error (bug): Failure creating named ...