TD n°2

Notions abordées :

  • Models/Entities
  • JPA + Hibernate
  • H2
  • Persistance

Création

Créer le projet td2 :

  • Group : s4.spring
  • Artifact : td2
  • Packaging : War
  • Description : Gestion de messagerie
  • Dependencies : Web, Devtools, Mustache, H2, JPA

Configurer le projet dans application.properties, pour que le contextPath soit /, configurer Mustache, H2

spring.datasource.url=jdbc:h2:file:./data/messagerie;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driverClassName=org.h2.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
 
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console

server.servlet.context-path=/

# Mustache Template engine
spring.mustache.prefix=classpath:/templates/
spring.mustache.suffix=.html

Avec Handlebars au lieu de Mustache:

- dépendance Maven:

<!-- https://mvnrepository.com/artifact/pl.allegro.tech.boot/handlebars-spring-boot-starter -->
<dependency>
    <groupId>pl.allegro.tech.boot</groupId>
    <artifactId>handlebars-spring-boot-starter</artifactId>
    <version>0.3.1</version>
</dependency>

Configuration application.properties :

Voir Spring Boot Starter Handlebars

handlebars.enabled: true
handlebars.prefix: classpath:templates/
handlebars.suffix: .hbs
handlebars.cache: true
handlebars.registerMessageHelper: true
handlebars.failOnMissingFile: false
handlebars.bindI18nToMessageSource: false
handlebars.prettyPrint: false
handlebars.infiniteLoops: false

Ajouter webJars à pom.xml pour intégrer Semantic-UI :

<!-- https://mvnrepository.com/artifact/org.webjars/Semantic-UI -->
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>Semantic-UI</artifactId>
    <version>2.4.1</version>
</dependency>

Ajouter la dépendance pour jQuery (indispensable avec Semantic)

<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>3.3.1-1</version>
</dependency>	

Créer une classe de configuration de l'application pour définir des mappings vers les webJars :

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
 
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry
          .addResourceHandler("/webjars/**")
          .addResourceLocations("/webjars/");
    }
}

Créer les templates :

<!doctype html>
<html lang="fr">
<head>
	<meta charset="UTF-8">
	<title>Messagerie</title>
	<link rel="stylesheet"
          href="/webjars/Semantic-UI/2.4.1/semantic.min.css" />
</head>
<body>
<div class="ui container">

</div>
<script src="/webjars/jquery/3.3.1-1/jquery.min.js"></script>
<script src="/webjars/Semantic-UI/2.4.1/semantic.min.js"></script>
</body>
</html>

Création des Entities

Créer les classes métier correspondant au diagramme de classes suivant dans s4.spring.td2.entities :

  • penser à ajouter les relations :
    • oneToMany
    • manyToOne
    • manyToMany

Création des Repositories

Créer les repositories correspondant à chacune des classes dans s4.spring.td2.repositories.

Création des routes

/orgas/(index)?

/orgas/new

/orgas/edit/{id}

/orgas/delete/{id}

Confirmation avant la suppression d'une organisation :

/orgas/display/{id}

/orgas/search/

Recherche une organisation en fonction de la valeur contenue de l'un de ses champs visibles, puis redirige vers /orgas/

/orgas/details/{id}

framework-web/spring/td2.txt · Dernière modification: 2019/09/24 02:53 par jcheron
GNU Free Documentation License 1.3
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0