Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre expérimenté

    Homme Profil pro
    Ingénieur R&D en informatique
    Inscrit en
    août 2011
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur R&D en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : août 2011
    Messages : 238
    Points : 1 385
    Points
    1 385
    Par défaut Tutoriel sur le développement full stack d'une application Web avec Angular 7 et Spring Boot 2
    Bonjour,

    L'article a pour but de présenter la conception, l'architecture et le développement full stack d'une application web en s'appuyant sur les technologies Java, Spring Boot et Angular. Plusieurs concepts sont abordés et expliqués dans l'article par la mise en oeuvre d'un exemple concret d'une application.

    https://gkemayo.developpez.com/tutor...spring-boot-2/

    Qu'en pensez-vous?

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur en génie logiciel
    Inscrit en
    juin 2012
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur en génie logiciel
    Secteur : Finance

    Informations forums :
    Inscription : juin 2012
    Messages : 398
    Points : 894
    Points
    894
    Par défaut
    bravo pour le tutoriel

    en couplant tes entités, tu brises un peu le concept de package by feature architecture
    il aurait été possible de passer par des id, sinon de copier les données et de passer par un événèment pour les mettres à jour, suppression...
    Aillez le courage de justifier vos -1.
    http://www.laboiteaprog.com/ - http://www.solutions-norenda.com/

  3. #3
    Membre actif
    Inscrit en
    juin 2005
    Messages
    497
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 497
    Points : 204
    Points
    204
    Par défaut
    Bonjour

    Très bon tutoriel, cependant je rencontre quelques problèmes lors de l'exécution du code source téléchargeable à la fin de l'article.

    Après avoir installé les dépendances avec npm install, j'exécute ng serve --open. Et là je reçois le message d'erreur suivant:

    Proxy config file D:\workspace-spring_tool_suite\library-ui-master\src\proxy.conf.json does not exist.
    Error: Proxy config file D:\workspace-spring_tool_suite\library-ui-master\src\proxy.conf.json does not exist.
    Je ne sais pas si c'est une erreur de votre part, mais il a fallu que je change le chemin menant vers proxy.conf.json dans le fichier angular.json pour régler le problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "proxyConfig": "proxy.conf.json"
    au lieu de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "proxyConfig": "src/proxy.conf.json"
    Ensuite lorsque j'accède à la page book-page, je reçois le message d'erreur suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    An error occurs when retreiving categories data
    Ci-dessous une capture d'écran:

    Nom : error.PNG
Affichages : 230
Taille : 50,3 Ko

    Voici l'erreur au niveau du log:

    Error occurred while trying to proxy request /library/rest/category/api/allCategories from localhost:4200 to http://localhost:8082 (ECONNREFUSED) (https
    ://nodejs.org/api/errors.html#errors_common_system_errors)
    Merci

  4. #4
    Membre actif
    Inscrit en
    juin 2005
    Messages
    497
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 497
    Points : 204
    Points
    204
    Par défaut
    finalement ça marche.

    Je lançais le projet via l'option Spring Boot App, mais j'ai par la suite opté de le lancer via le server tomcat installé, tout en changer le port 8080 en 8082, et ça a marché.

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    février 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2016
    Messages : 7
    Points : 4
    Points
    4
    Par défaut create-drop inefficace
    Bonjour,

    Le tuto est vraiment bien fait.

    J'ai juste un petit soucis avec la base de données H2. J'ai fait toute la partie back et j'ai voulu tester.
    Au premier démarrage de tomcat, pas de soucis.
    J'ai fais des modifications et depuis impossible de relancer l'application :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Caused by: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Violation d'index unique ou clé primaire: "PUBLIC.PRIMARY_KEY_3 ON PUBLIC.CATEGORY(CODE) VALUES 1"
    Unique index or primary key violation: "PUBLIC.PRIMARY_KEY_3 ON PUBLIC.CATEGORY(CODE) VALUES 1"; SQL statement:
    insert into category values ('INF', 'Informatique') [23505-200]
    Je n'arrive pas à drop les données de la table category :/ j'ai essayé d'ajouté la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    truncate table category;
    dans le fichier sql chargé au début mais cela me retourne une exception ..

    Edit : j'ai augmenté le cache de la log et je vois qu'en fait le soucis provient d'un drop qui ne se fait pas sur mes tables à cause de FK qui ne sont pas supprimées...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Impossible de supprimer "BOOK" car "FK88C0YDLO57PCGP137TNTRGQX1" dépend de lui
    Cannot drop "BOOK" because "FK88C0YDLO57PCGP137TNTRGQX1" depends on it; SQL statement: drop table book if exists [90107-200]

  6. #6
    Membre expérimenté

    Homme Profil pro
    Ingénieur R&D en informatique
    Inscrit en
    août 2011
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur R&D en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : août 2011
    Messages : 238
    Points : 1 385
    Points
    1 385
    Par défaut
    Citation Envoyé par marc.collin Voir le message
    bravo pour le tutoriel

    en couplant tes entités, tu brises un peu le concept de package by feature architecture
    il aurait été possible de passer par des id, sinon de copier les données et de passer par un événement pour les mettres à jour, suppression...
    Bonjour Marc.collin,

    Tu as parfaitement raison, la contrainte du package by feature vient vraiment des "ressources" qui sont partagées entre domaines. J'étais bien conscient que je n'ai pas fait un aboutissement de cette architecture dans l'article. Le but est dans un premier temps de sensibiliser le lecteur sur cette architecture qui apporte son lot de concepts, d'avantages et d'inconvénients. Si le lecteur s'y intéresse, il ira chercher plus d'infos.

    Les solutions que l'on peut proposer pour adresser ce problème sont multiples, chacune possédant ces avantages et inconvénients. Pour la solution que tu proposes de copier les données et de d'utiliser l'event sourcing pour les mettre à jour, c'est bien, mais ça passe par une duplication de données et la mise en place de l'event sourcing pour mettre à jour chaque domaine. C'est complexe et impossible d'expliquer tout cela dans un seul et même article .

    Je peux même aller plus loin en disant que l'on peut même mettre en place le pattern Capture Data Change couplé à Kafka qui se chargera de mettre à jour la/les tables de chaque domaine. Là encore c'est très complexe et trop de travail rien que pour respecter le principe du package by feature.

    Il vaut mieux s'y investir sur tout ce que nous venons de citer lorsqu'on est vraiment en contexte Microservice ou une vraie architecture domaine driven.

    D'autres son de cloche, disent de sortir exceptionnellement les "ressources" partagées (en veillant à ce que cela ne devienne pas un fourre tout) dans un package "common" afin que les différents domaines se les partagent. Ce n'est pas moins intelligible, après tout c'est une organisation dans un seul et unique projet.

    Cordialement,
    Georges

  7. #7
    Membre expérimenté

    Homme Profil pro
    Ingénieur R&D en informatique
    Inscrit en
    août 2011
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur R&D en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : août 2011
    Messages : 238
    Points : 1 385
    Points
    1 385
    Par défaut
    Citation Envoyé par momjunior Voir le message
    finalement ça marche.

    Je lançais le projet via l'option Spring Boot App, mais j'ai par la suite opté de le lancer via le server tomcat installé, tout en changer le port 8080 en 8082, et ça a marché.

  8. #8
    Membre expérimenté

    Homme Profil pro
    Ingénieur R&D en informatique
    Inscrit en
    août 2011
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur R&D en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : août 2011
    Messages : 238
    Points : 1 385
    Points
    1 385
    Par défaut
    Citation Envoyé par DarkChyper Voir le message
    Bonjour,

    Le tuto est vraiment bien fait.

    J'ai juste un petit soucis avec la base de données H2. J'ai fait toute la partie back et j'ai voulu tester.
    Au premier démarrage de tomcat, pas de soucis.
    J'ai fais des modifications et depuis impossible de relancer l'application :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Caused by: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Violation d'index unique ou clé primaire: "PUBLIC.PRIMARY_KEY_3 ON PUBLIC.CATEGORY(CODE) VALUES 1"
    Unique index or primary key violation: "PUBLIC.PRIMARY_KEY_3 ON PUBLIC.CATEGORY(CODE) VALUES 1"; SQL statement:
    insert into category values ('INF', 'Informatique') [23505-200]
    Je n'arrive pas à drop les données de la table category :/ j'ai essayé d'ajouté la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    truncate table category;
    dans le fichier sql chargé au début mais cela me retourne une exception ..

    Edit : j'ai augmenté le cache de la log et je vois qu'en fait le soucis provient d'un drop qui ne se fait pas sur mes tables à cause de FK qui ne sont pas supprimées...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Impossible de supprimer "BOOK" car "FK88C0YDLO57PCGP137TNTRGQX1" dépend de lui
    Cannot drop "BOOK" because "FK88C0YDLO57PCGP137TNTRGQX1" depends on it; SQL statement: drop table book if exists [90107-200]

    Salut DarkChyper,

    Normalement cela ne devrait pas poser de problème si tu arrêtais toute l'application via ton Tomcat en faisant un shutdown en invite de commande dans le dossier bin.
    Puis en redémarrant avec start. Puisque l'appli utilise une base embarquée, tout devrait se réinitialiser au redemarrage.

    Assures toi juste qu'aucun processus lié ne tourne au préalable sur ta machine.

    Cordialement,
    Georges

Discussions similaires

  1. Réponses: 15
    Dernier message: 01/09/2019, 18h19
  2. Réponses: 2
    Dernier message: 05/07/2019, 12h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo