+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Expert éminent

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

    Informations forums :
    Inscription : avril 2009
    Messages : 100
    Points : 6 354
    Points
    6 354

    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
    942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2011
    Messages : 942
    Points : 1 735
    Points
    1 735

    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
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 100
    Points : 6 354
    Points
    6 354

    Par défaut

    vu et corrigé. Merci.

  4. #4
    Expert éminent

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

    Informations forums :
    Inscription : avril 2009
    Messages : 100
    Points : 6 354
    Points
    6 354

    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
    Expert éminent Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2005
    Messages
    2 538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2005
    Messages : 2 538
    Points : 7 551
    Points
    7 551

    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

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

    Trust me, i'm an engineer !
    https://www.youtube.com/watch?v=rp8hvyjZWHs

  6. #6
    Membre habitué

    Homme Profil pro
    Étudiant
    Inscrit en
    février 2013
    Messages
    106
    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 : 106
    Points : 186
    Points
    186
    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
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 100
    Points : 6 354
    Points
    6 354

    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
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 100
    Points : 6 354
    Points
    6 354

    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
    Expert éminent Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2005
    Messages
    2 538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2005
    Messages : 2 538
    Points : 7 551
    Points
    7 551

    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

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

    Trust me, i'm an engineer !
    https://www.youtube.com/watch?v=rp8hvyjZWHs

  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.

Discussions similaires

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

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