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

Spring Java Discussion :

Tutoriel sur AngularJS et Spring 4


Sujet :

Spring Java

  1. #1
    Expert éminent

    Profil pro
    Inscrit en
    avril 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 113
    Points : 6 316
    Points
    6 316
    Par défaut Tutoriel sur AngularJS et Spring 4
    Bonjour,

    J'ai mis en ligne [http://tahe.developpez.com/angularjs-spring4/] un tutoriel (320 pages) présentant une application client / serveur où le client est développé avec AngularJS et le serveur avec Spring 4.

    Il peut être utilisé comme document d'apprentissage des deux frameworks. Tous les éléments de l'architecture du code sont disséqués et analysés.

    Côté serveur, on utilise les technologies
    • [Spring Data] pour l'accès à la base de données*;
    • [Spring MVC] pour le service web*;
    • [Spring Security] pour la sécurisation de celui-ci*;


    Côté client, on utilise les principales notions d'Angular JS*:
    • développement MVC*;
    • utilisation de services*;
    • utilisation de directives*;
    • étude approfondie de la notion de modèle*;


    L'application est mise en exploitation dans deux domaines*:
    • comme une application web classique*;
    • comme un binaire exécutable Android produit par Phonegap*;

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    décembre 2011
    Messages
    949
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2011
    Messages : 949
    Points : 1 742
    Points
    1 742
    Par défaut
    il y a petit pb:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Not Found
     
    The requested URL /angularjs-spring4/] was not found on this server.

  3. #3
    Expert éminent

    Profil pro
    Inscrit en
    avril 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 113
    Points : 6 316
    Points
    6 316
    Par défaut
    vu et corrigé. Merci.

  4. #4
    Expert éminent

    Profil pro
    Inscrit en
    avril 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 113
    Points : 6 316
    Points
    6 316
    Par défaut [errata]
    Correction d'une coquille au paragraphe 4.4 qui décrit l'installation de l'application sur un mobile Android. J'avais écrit que côté serveur les entêtes CORS devaient être générés. C'est incorrect. Ils n'ont pas à être générés puisque l'application Android ne s'exécute pas dans un navigateur.

    st

  5. #5
    Modérateur
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2005
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2005
    Messages : 4 264
    Points : 17 634
    Points
    17 634
    Par défaut
    Bonjour,

    j'ai parcouru rapidement.

    Je regrette l'absence de tests (unitaires, intégration, et fonctionnels) sur ce tutoriel. C'est une problématique à prendre en compte lors de la conception du code et AngularJS a été entre autres conçu pour répondre à un besoin croissant de rationalisation dans les méthodo de dev frontend (injection de dépendance native, Jasmine via Karma pour tests unitaires et e2e, archi orientée services, mock de $http natif, ...)

    Sinon super.
    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
    Jean-Baptiste Say, Traité d'économie politique, 1803.

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

  6. #6
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    février 2013
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : février 2013
    Messages : 119
    Points : 203
    Points
    203
    Billets dans le blog
    1
    Par défaut gestion de ressources et fuites memoires
    Bonjour!

    Je souhaite connaitre votre avis sur ce genre d applications a savoir ce qui ce dit HTML5 souvent Angularjs , bootstrap.....! concerant l gestion des ressources sur un navigateur web ?
    Sur votre exemple d application pas de soucis ca passera puisqu il s agit d un petit exemple , avec 4 ou 5 controler et autant de directives et fichier JS ,
    Mais imaginons une tres grande application
    Ou l on se met a charger l ensemble de l application (JS) sur le navigateur heinnnn???
    J ai teste votre application et c est juste un exemple de quelques pages sur une machine (VM) a 256 Mo RAM !
    IE crache au bout de trois navigation !
    Chrome Bloque toute la machine
    FF Freez

  7. #7
    Expert éminent

    Profil pro
    Inscrit en
    avril 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 113
    Points : 6 316
    Points
    6 316
    Par défaut
    @Marco46
    Je regrette l'absence de tests (unitaires, intégration, et fonctionnels) sur ce tutoriel.
    Il ne faut pas. Dès l'introduction, il est indiqué clairement que le tutoriel n'est pas exhaustif et je donne des références pour "combler" les manques, notamment le livre d'Adam Freeman "Pro AngularJS", qui a un chapitre consacré aux tests. Dans ma conclusion, j'indique que je n'ai pas couvert les tests mais que ceux-ci sont très importants et qu'Angular est accompagné d'outils pour les faire de façon professionnelle et automatisée.

    Je n'avais pas pour objectif d'être exhaustif mais simplement de permettre au lecteur de démarrer une auto-formation avec AngularJS et Spring.

  8. #8
    Expert éminent

    Profil pro
    Inscrit en
    avril 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 113
    Points : 6 316
    Points
    6 316
    Par défaut
    @Lakhdr

    Je souhaite connaitre votre avis sur ce genre d applications a savoir ce qui ce dit HTML5 souvent Angularjs , bootstrap.....! concerant l gestion des ressources sur un navigateur web ?
    Je n'en ai pas. J'ai travaillé avec une machine avec 8 Go de Ram. Au cours des quelques mois où j'ai écrit ce tutoriel, ma machine a planté plusieurs fois sans raison apparente mais pas lors de tests de l'application. Néanmoins, j'ai effectivement suspecté des fuites mémoire causées par les différents tests que j'ai pu faire. Sans preuve. Mais je ne serais pas étonné que les problèmes que vous évoquez puissent se produire.

  9. #9
    Modérateur
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2005
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2005
    Messages : 4 264
    Points : 17 634
    Points
    17 634
    Par défaut
    Citation Envoyé par Lakhdr Voir le message
    Bonjour!

    Je souhaite connaitre votre avis sur ce genre d applications a savoir ce qui ce dit HTML5 souvent Angularjs , bootstrap.....! concerant l gestion des ressources sur un navigateur web ?
    Sur votre exemple d application pas de soucis ca passera puisqu il s agit d un petit exemple , avec 4 ou 5 controler et autant de directives et fichier JS ,
    Mais imaginons une tres grande application
    Ou l on se met a charger l ensemble de l application (JS) sur le navigateur heinnnn???
    J ai teste votre application et c est juste un exemple de quelques pages sur une machine (VM) a 256 Mo RAM !
    IE crache au bout de trois navigation !
    Chrome Bloque toute la machine
    FF Freez
    IE quelle version ?

    256 mo de RAM c'est vraiment très peu. Trop peu pour les navigateurs modernes. Or il est très clairement indiqué par les concepteurs d'Angular que le framework ne s'adresse qu'aux navigateurs Evergreen.

    Pour ce qui est des performances, je développe actuellement une application web mobile dans un grand compte. On supporte toute une série de tablettes et mobiles et les performances sont au rendez-vous. Que ce soit en terme de temps d'exécution comme en terme de taille des flux.

    Après nous avons effectué pas mal d'optimisations, comme par exemple l'intégration de requireJS pour effectuer du lazy loading sur l'application. Cela règle l'essentiel du problème du bootstrap de l'application.

    Néanmoins il faut savoir que le lazy loading sera en natif dans Angular 2. Enfin c'est ce que les dev du framework veulent faire.

    Une dernière solution consiste à découper l'application en sous-applications.

    @Serge Tahé
    Ok bien reçu ^^
    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
    Jean-Baptiste Say, Traité d'économie politique, 1803.

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    mai 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2006
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Excellent
    Excellent tuto merci Monsieu Tahé

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2015
    Messages : 2
    Points : 6
    Points
    6
    Par défaut
    Bonjour,


    Je viens de découvrir ce tutoriel. Je trouve qu'il est bien structuré et très claire avec pas mal d'exemple à l'appui.


    Merci monsieur Tahé.

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Haïti

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : juillet 2011
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Probleme rencontré
    Bonjour,

    En essayant de déployer l'application téléchargé j'ai rencontré cette erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/C:/Users/yves/.m2/repository/ch/qos/logback/logback-classic/1.1.1/logback-classic-1.1.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/C:/Users/yves/.m2/repository/ch/qos/logback/logback-classic/1.1.2/logback-classic-1.1.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: See <a href="http://www.slf4j.org/codes.html#multiple_bindings" target="_blank">http://www.slf4j.org/codes.html#multiple_bindings</a> for an explanation.
    SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
     
      .   ____          _            __ _ _
     /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
     \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::        (v1.0.0.RELEASE)
     
    2015-04-11 20:14:22.214  INFO 7328 --- [           main] rdvmedecins.web.boot.Boot                : Starting Boot on YvesJoseph with PID 7328 (C:\workspace\dvp\rdvmedecins-webapi-v4\target\classes started by yves)
    2015-04-11 20:14:22.691  INFO 7328 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@646153: startup date [Sat Apr 11 20:14:22 EDT 2015]; root of context hierarchy
    2015-04-11 20:14:32.979  INFO 7328 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Overriding bean definition for bean 'org.springframework.boot.autoconfigure.AutoConfigurationPackages': replacing [Generic bean: class [org.springframework.boot.autoconfigure.AutoConfigurationPackages$BasePackages]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] with [Generic bean: class [org.springframework.boot.autoconfigure.AutoConfigurationPackages$BasePackages]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null]
    2015-04-11 20:14:32.983  INFO 7328 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Overriding bean definition for bean 'org.springframework.boot.autoconfigure.AutoConfigurationPackages': replacing [Generic bean: class [org.springframework.boot.autoconfigure.AutoConfigurationPackages$BasePackages]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] with [Generic bean: class [org.springframework.boot.autoconfigure.AutoConfigurationPackages$BasePackages]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null]
    2015-04-11 20:14:33.835  INFO 7328 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Overriding bean definition for bean 'beanNameViewResolver': replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]]
    2015-04-11 20:14:37.112  INFO 7328 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [class org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$c56ef9d0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    2015-04-11 20:14:37.334  INFO 7328 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'transactionAttributeSource' of type [class org.springframework.transaction.annotation.AnnotationTransactionAttributeSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    2015-04-11 20:14:37.507  INFO 7328 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'transactionInterceptor' of type [class org.springframework.transaction.interceptor.TransactionInterceptor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    2015-04-11 20:14:37.586  INFO 7328 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.config.internalTransactionAdvisor' of type [class org.springframework.transaction.interceptor.BeanFactoryTransactionAttributeSourceAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    2015-04-11 20:14:38.682  INFO 7328 --- [           main] .b.l.ClasspathLoggingApplicationListener : Application failed to start with classpath: [file:/C:/workspace/dvp/rdvmedecins-webapi-v4/target/classes/, file:/C:/workspace/dvp/rdvmedecins-webapi-v4/target/test-classes/, file:/C:/Users/yves/.m2/repository/org/springframework/boot/spring-boot-starter-web/1.0.0.RELEASE/spring-boot-starter-web-1.0.0.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/boot/spring-boot-starter/1.0.0.RELEASE/spring-boot-starter-1.0.0.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/boot/spring-boot/1.0.0.RELEASE/spring-boot-1.0.0.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/1.0.0.RELEASE/spring-boot-autoconfigure-1.0.0.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/boot/spring-boot-starter-logging/1.0.0.RELEASE/spring-boot-starter-logging-1.0.0.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.6/jcl-over-slf4j-1.7.6.jar, file:/C:/Users/yves/.m2/repository/org/slf4j/jul-to-slf4j/1.7.6/jul-to-slf4j-1.7.6.jar, file:/C:/Users/yves/.m2/repository/org/slf4j/log4j-over-slf4j/1.7.6/log4j-over-slf4j-1.7.6.jar, file:/C:/Users/yves/.m2/repository/ch/qos/logback/logback-classic/1.1.1/logback-classic-1.1.1.jar, file:/C:/Users/yves/.m2/repository/ch/qos/logback/logback-core/1.1.1/logback-core-1.1.1.jar, file:/C:/Users/yves/.m2/repository/org/yaml/snakeyaml/1.13/snakeyaml-1.13.jar, file:/C:/Users/yves/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.3.2/jackson-databind-2.3.2.jar, file:/C:/Users/yves/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.3.0/jackson-annotations-2.3.0.jar, file:/C:/Users/yves/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.3.2/jackson-core-2.3.2.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-web/4.0.3.RELEASE/spring-web-4.0.3.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-webmvc/4.0.3.RELEASE/spring-webmvc-4.0.3.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/boot/spring-boot-starter-security/1.0.0.RELEASE/spring-boot-starter-security-1.0.0.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/security/spring-security-config/3.2.3.RELEASE/spring-security-config-3.2.3.RELEASE.jar, file:/C:/Users/yves/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar, file:/C:/Users/yves/.m2/repository/org/springframework/security/spring-security-core/3.2.3.RELEASE/spring-security-core-3.2.3.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/security/spring-security-web/3.2.3.RELEASE/spring-security-web-3.2.3.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-aop/4.0.3.RELEASE/spring-aop-4.0.3.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-beans/4.0.3.RELEASE/spring-beans-4.0.3.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-context/4.0.3.RELEASE/spring-context-4.0.3.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-core/4.0.3.RELEASE/spring-core-4.0.3.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-expression/4.0.3.RELEASE/spring-expression-4.0.3.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/1.0.0.RELEASE/spring-boot-starter-tomcat-1.0.0.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/7.0.52/tomcat-embed-core-7.0.52.jar, file:/C:/Users/yves/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/7.0.52/tomcat-embed-el-7.0.52.jar, file:/C:/Users/yves/.m2/repository/org/apache/tomcat/embed/tomcat-embed-logging-juli/7.0.52/tomcat-embed-logging-juli-7.0.52.jar, file:/C:/workspace/dvp/rdvmedecins-metier-dao-v2/target/classes/, file:/C:/workspace/dvp/rdvmedecins-metier-dao-v2/target/test-classes/, file:/C:/Users/yves/.m2/repository/org/springframework/boot/spring-boot-starter-data-jpa/1.1.0.RC1/spring-boot-starter-data-jpa-1.1.0.RC1.jar, file:/C:/Users/yves/.m2/repository/org/springframework/boot/spring-boot-starter/1.1.0.RC1/spring-boot-starter-1.1.0.RC1.jar, file:/C:/Users/yves/.m2/repository/org/springframework/boot/spring-boot/1.1.0.RC1/spring-boot-1.1.0.RC1.jar, file:/C:/Users/yves/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/1.1.0.RC1/spring-boot-autoconfigure-1.1.0.RC1.jar, file:/C:/Users/yves/.m2/repository/org/springframework/boot/spring-boot-starter-logging/1.1.0.RC1/spring-boot-starter-logging-1.1.0.RC1.jar, file:/C:/Users/yves/.m2/repository/org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.jar, file:/C:/Users/yves/.m2/repository/org/slf4j/log4j-over-slf4j/1.7.7/log4j-over-slf4j-1.7.7.jar, file:/C:/Users/yves/.m2/repository/ch/qos/logback/logback-classic/1.1.2/logback-classic-1.1.2.jar, file:/C:/Users/yves/.m2/repository/ch/qos/logback/logback-core/1.1.2/logback-core-1.1.2.jar, file:/C:/Users/yves/.m2/repository/org/springframework/boot/spring-boot-starter-aop/1.1.0.RC1/spring-boot-starter-aop-1.1.0.RC1.jar, file:/C:/Users/yves/.m2/repository/org/aspectj/aspectjrt/1.8.0/aspectjrt-1.8.0.jar, file:/C:/Users/yves/.m2/repository/org/aspectj/aspectjweaver/1.8.0/aspectjweaver-1.8.0.jar, file:/C:/Users/yves/.m2/repository/org/springframework/boot/spring-boot-starter-jdbc/1.1.0.RC1/spring-boot-starter-jdbc-1.1.0.RC1.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-jdbc/4.0.5.RELEASE/spring-jdbc-4.0.5.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/apache/tomcat/tomcat-jdbc/7.0.54/tomcat-jdbc-7.0.54.jar, file:/C:/Users/yves/.m2/repository/org/apache/tomcat/tomcat-juli/7.0.54/tomcat-juli-7.0.54.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-tx/4.0.5.RELEASE/spring-tx-4.0.5.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/hibernate/hibernate-entitymanager/4.3.1.Final/hibernate-entitymanager-4.3.1.Final.jar, file:/C:/Users/yves/.m2/repository/org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.jar, file:/C:/Users/yves/.m2/repository/org/jboss/logging/jboss-logging-annotations/1.2.0.Beta1/jboss-logging-annotations-1.2.0.Beta1.jar, file:/C:/Users/yves/.m2/repository/org/hibernate/hibernate-core/4.3.1.Final/hibernate-core-4.3.1.Final.jar, file:/C:/Users/yves/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar, file:/C:/Users/yves/.m2/repository/org/jboss/jandex/1.1.0.Final/jandex-1.1.0.Final.jar, file:/C:/Users/yves/.m2/repository/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar, file:/C:/Users/yves/.m2/repository/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar, file:/C:/Users/yves/.m2/repository/org/hibernate/common/hibernate-commons-annotations/4.0.4.Final/hibernate-commons-annotations-4.0.4.Final.jar, file:/C:/Users/yves/.m2/repository/org/hibernate/javax/persistence/hibernate-jpa-2.1-api/1.0.0.Final/hibernate-jpa-2.1-api-1.0.0.Final.jar, file:/C:/Users/yves/.m2/repository/org/jboss/spec/javax/transaction/jboss-transaction-api_1.2_spec/1.0.0.Final/jboss-transaction-api_1.2_spec-1.0.0.Final.jar, file:/C:/Users/yves/.m2/repository/org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-core/4.0.5.RELEASE/spring-core-4.0.5.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-orm/4.0.5.RELEASE/spring-orm-4.0.5.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/data/spring-data-jpa/1.6.0.RELEASE/spring-data-jpa-1.6.0.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/data/spring-data-commons/1.8.0.RELEASE/spring-data-commons-1.8.0.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar, file:/C:/Users/yves/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.7/jcl-over-slf4j-1.7.7.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-aspects/4.0.5.RELEASE/spring-aspects-4.0.5.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/boot/spring-boot-starter-test/1.1.0.RC1/spring-boot-starter-test-1.1.0.RC1.jar, file:/C:/Users/yves/.m2/repository/junit/junit/4.11/junit-4.11.jar, file:/C:/Users/yves/.m2/repository/org/mockito/mockito-core/1.9.5/mockito-core-1.9.5.jar, file:/C:/Users/yves/.m2/repository/org/objenesis/objenesis/1.0/objenesis-1.0.jar, file:/C:/Users/yves/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar, file:/C:/Users/yves/.m2/repository/org/hamcrest/hamcrest-library/1.3/hamcrest-library-1.3.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-test/4.0.5.RELEASE/spring-test-4.0.5.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/boot/spring-boot-starter-security/1.1.0.RC1/spring-boot-starter-security-1.1.0.RC1.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-beans/4.0.5.RELEASE/spring-beans-4.0.5.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-context/4.0.5.RELEASE/spring-context-4.0.5.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-expression/4.0.5.RELEASE/spring-expression-4.0.5.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-web/4.0.5.RELEASE/spring-web-4.0.5.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/security/spring-security-config/3.2.4.RELEASE/spring-security-config-3.2.4.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/security/spring-security-core/3.2.4.RELEASE/spring-security-core-3.2.4.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/security/spring-security-web/3.2.4.RELEASE/spring-security-web-3.2.4.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-aop/4.0.5.RELEASE/spring-aop-4.0.5.RELEASE.jar, file:/C:/Users/yves/.m2/repository/mysql/mysql-connector-java/5.1.30/mysql-connector-java-5.1.30.jar, file:/C:/Users/yves/.m2/repository/commons-dbcp/commons-dbcp/1.4/commons-dbcp-1.4.jar, file:/C:/Users/yves/.m2/repository/commons-pool/commons-pool/1.6/commons-pool-1.6.jar, file:/C:/Users/yves/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.3.3/jackson-databind-2.3.3.jar, file:/C:/Users/yves/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.3.3/jackson-annotations-2.3.3.jar, file:/C:/Users/yves/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.3.3/jackson-core-2.3.3.jar, file:/C:/Users/yves/.m2/repository/com/google/guava/guava/16.0.1/guava-16.0.1.jar, file:/C:/Users/yves/.m2/repository/org/springframework/boot/spring-boot-starter-data-jpa/1.0.0.RELEASE/spring-boot-starter-data-jpa-1.0.0.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/boot/spring-boot-starter-aop/1.0.0.RELEASE/spring-boot-starter-aop-1.0.0.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/aspectj/aspectjrt/1.7.4/aspectjrt-1.7.4.jar, file:/C:/Users/yves/.m2/repository/org/aspectj/aspectjweaver/1.7.4/aspectjweaver-1.7.4.jar, file:/C:/Users/yves/.m2/repository/org/springframework/boot/spring-boot-starter-jdbc/1.0.0.RELEASE/spring-boot-starter-jdbc-1.0.0.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-jdbc/4.0.3.RELEASE/spring-jdbc-4.0.3.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/apache/tomcat/tomcat-jdbc/7.0.52/tomcat-jdbc-7.0.52.jar, file:/C:/Users/yves/.m2/repository/org/apache/tomcat/tomcat-juli/7.0.52/tomcat-juli-7.0.52.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-tx/4.0.3.RELEASE/spring-tx-4.0.3.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-orm/4.0.3.RELEASE/spring-orm-4.0.3.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/data/spring-data-jpa/1.5.1.RELEASE/spring-data-jpa-1.5.1.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/springframework/data/spring-data-commons/1.7.1.RELEASE/spring-data-commons-1.7.1.RELEASE.jar, file:/C:/Users/yves/.m2/repository/org/slf4j/slf4j-api/1.7.6/slf4j-api-1.7.6.jar, file:/C:/Users/yves/.m2/repository/org/springframework/spring-aspects/4.0.3.RELEASE/spring-aspects-4.0.3.RELEASE.jar, file:/C:/Users/yves/.m2/repository/mysql/mysql-connector-java/5.1.29/mysql-connector-java-5.1.29.jar]
    Exception in thread "main" org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tomcatEmbeddedServletContainerFactory' defined in class path resource [org/springframework/boot/autoconfigure/web/EmbeddedServletContainerAutoConfiguration$EmbeddedTomcat.class]: Initialization of bean failed; nested exception is java.lang.NoSuchMethodError: org.springframework.boot.autoconfigure.web.ServerProperties.getServletPrefix()Ljava/lang/String;
    	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:135)
    	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:476)
    	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:120)
    	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:648)
    	at org.springframework.boot.SpringApplication.run(SpringApplication.java:311)
    	at org.springframework.boot.SpringApplication.run(SpringApplication.java:909)
    	at org.springframework.boot.SpringApplication.run(SpringApplication.java:898)
    	at rdvmedecins.web.boot.Boot.main(Boot.java:10)
    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tomcatEmbeddedServletContainerFactory' defined in class path resource [org/springframework/boot/autoconfigure/web/EmbeddedServletContainerAutoConfiguration$EmbeddedTomcat.class]: Initialization of bean failed; nested exception is java.lang.NoSuchMethodError: org.springframework.boot.autoconfigure.web.ServerProperties.getServletPrefix()Ljava/lang/String;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:547)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
    	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
    	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
    	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.getEmbeddedServletContainerFactory(EmbeddedWebApplicationContext.java:195)
    	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:158)
    	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:132)
    	... 7 more
    Caused by: java.lang.NoSuchMethodError: org.springframework.boot.autoconfigure.web.ServerProperties.getServletPrefix()Ljava/lang/String;
    	at org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration.customize(ErrorMvcAutoConfiguration.java:94)
    	at org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizerBeanPostProcessor.postProcessBeforeInitialization(EmbeddedServletContainerCustomizerBeanPostProcessor.java:67)
    	at org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizerBeanPostProcessor.postProcessBeforeInitialization(EmbeddedServletContainerCustomizerBeanPostProcessor.java:54)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:407)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1545)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
    	... 15 more
    Picked up _JAVA_OPTIONS: -Xmx512M

    J'utilise Spring Tools Suite (STS)

  13. #13
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : mai 2013
    Messages : 36
    Points : 68
    Points
    68
    Par défaut
    merci pour ce tutoriel, c'est exactement ce que j'utilise en ce moment. Seul bémol qui n'en est pas un: on peut pousser l'étude de chaque couche Data + MVC x 2 à l'extrême et detourner certaines fonctionnalités.
    Un exemple de cas assez courant: on envoie un model Spring dans les templates de directive. Cela devrait être interdit? Mais c'est pratique pour donner le même UX à des objets légèrement différents. Dans les tutos les templates sont généralement inline ou HTML statique. Rien n'interdit d'envoyer une Vue compilé pour un certain contexte.

  14. #14
    Candidat au Club
    Homme Profil pro
    Inscrit en
    novembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : novembre 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Problème d'actualisation de la page
    Bonsoir notre chère professeur, il y'a un petit problème dans votre application. En fait quand j'actualise la page HOME ou la page RESA ou AGENDA, ça s'affiche rien et juste la barre de traitement en cours, merci bien si vous pouvez nous éclaircir plus le problème.

  15. #15
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : novembre 2011
    Messages : 24
    Points : 21
    Points
    21
    Par défaut les relation JPA utilisés
    Bonsoir,

    J'ai une question a propos des relations JPA utilisés. Je ne comprends pas pourquoi vous n'avez pas utilisé la relation OneToMany sur le médécin (un médecin a plusieurs créneaux) et que vous avez utilisez l'autre relation ManyToOne porté par la classe Creneau.

    il y aurait pas un problème de perfermances SQL car pour chaque creneau on ramene un medecin eventuellement, alors qu'avec l'autre relation, on peut ramener la liste des creaneaux directement pour un medecin donné?

    Merci de votre réponse.

  16. #16
    Membre habitué
    Profil pro
    développeur
    Inscrit en
    août 2003
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : août 2003
    Messages : 108
    Points : 154
    Points
    154
    Par défaut
    Un grand merci Monsieur Tahé pour votre travail. J'ai commencé à suivre ce tutoriel.
    J'ai rencontré une erreur au moment de tester l'application car en ouvrant le fichier : rdvmedecins-angular-v2/app.html j'obtiens une erreur dans la console :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
    Il me semble qu'il s'agit d'une sécurité qui a été ajouté par Chrome récemment. J'ai pu m'en sortir en lançant la commande python suivante :

    (en python 3)

    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    python -m SimpleHTTPServer
    (en python 2)

    Qui permet de créer un serveur de fichier statique et j'ai pu accéder à l'application en me connectant à l'adresse http://localhost:8000/app.html (le port 8000 est utilisé par défaut par le module python http.server)

    En espérant que cela puisse aider d'autres lecteurs du forum.

    Axel

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/03/2016, 15h17
  2. Tutoriel sur la mise en place de Spring Security avec GWT
    Par Mickael Baron dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 13/03/2014, 16h51
  3. Réponses: 0
    Dernier message: 12/05/2013, 16h52

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