IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

Question Java Spring en entreprise


Sujet :

Spring Java

  1. #1
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2015
    Messages : 24
    Par défaut Question Java Spring en entreprise
    Bonjour,

    Je suis actuellement en école d'ingénieur généraliste et je suis rentré en alternance dans une SSII depuis mercredi et cela en tant que développeur Java/JEE pour 3 ans.

    Ça fait maintenant plus de deux ans que je suis en école et j'ai bien évidemment fait du Java notamment en orienté objet mais je n'ai jamais touché à du JEE c'est pour cela que pendant 1 mois j'ai appris les principes du JEE (Pattern MVC, JSP, Servlet et Beans/modèle) mais j'ai l'impression d'être totalement perdu car dans mon entreprise, tout le développement se fait avec des frameworks et notamment Spring pour ce qui est du développement web en Java. Mon tuteur m'a dit que je vais devoir faire du Spring Batch donc je me suis renseigné et j'en ai compris le principe mais mon problème survient à ce niveau :

    Dans Spring Batch il y'a Spring et je n'ai jamais utilisé ce framework du coup j'ai beaucoup de mal à en comprendre le fonctionnement de plus je vais être en relation avec des bases de données et mon tuteur a évoqué dès lors : Spring JPA Data, Hibernate Spring boot etc etc. Je suis vraiment motivé pour m’imprégner tout ces concepts mais je ne sais vraiment pas par quel bout commencer !
    Je me dis d'apprendre Spring d'abord ? Batch ? Hibernate etc etc.

    Que me recommander vous pour être à l'aise avec mon environnement de développement et pas ouvrir le projet dans Eclipse et juste rien comprendre à l'architecture Spring et être performant dans la réalisation de Batch avec Spring Batch, comprendre tout ce qui est DOA, JDBC, Spring JPA DATA, Hibernate car même si je vais pas travailler concretement dessus, le fait d'utiliser Spring Batch, n’impose de comprendre tous ces outils et surtout Spring..

    Merci d'avance

    Je sais que mon message n'est pas très clair mais il reflète mon état d'esprit actuel.. Désolé.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Commence par apprendre le framework Spring qui est la base, notamment les concepts d'injection de dépendance.
    Tu pourras ensuite passer aux autres frameworks.

    http://docs.spring.io/spring/docs/cu...ce/htmlsingle/

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 136
    Par défaut
    Je te conseille un bouquin : "Spring par la pratique".
    Il explique pas mal de concepts de Spring.

    Le principal concept de Spring est l'IoC : Inversion of Control.
    C'est Spring qui prend le contrôle des dépendances (entre autres, mais c'est la partie la plus visible).

    Quand un bean est créé, Spring va regarder tous les attributs/méthodes annoté @Autowired.
    Il sais que ça correspond à d'autre Bean et qu'il va devoir le renseigner.

    Les beans sont
    *soit déclaré unitairement ( balise <bean></bean> si XML, anotation @Bean si Javaconfig),
    *soit déclaré en component scan et la Spring va regarder toute les classe du package renseigné qui on l'annotation @Service ou @Component.


    Spring batch :
    Framework spring pour créer des batch ( Merci Cpt Obvious :p )
    En pratique :
    Tu as un/des job.
    un job as des Step (etapes).
    Ces step sont composés de tasklet que soit tu crée toi même (cas très spécifique), soit tu utilise celle de spring.
    Les tasklet de Spring sont composées de
    *reader
    *processeur (Optionnel, qui va convertir un objet en un autre, faire des transformations)
    *writter


    Hibernate :
    C'est un ORM (Object Relation Manager).
    C'est un framework qui te fait une conversion BDD <-> Objet.
    Il permet de requeter ta base.


    Spring Data JPA:
    Framework de requetage.
    Il permet de crée des requête SQl sans avoir de code derrière juste en créant un méthode sur l'interface.
    ex :
    Une interface avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public interface AccountRepository extends PagingAndSortingRepository<Account, String> {
     
       Account  findByEmail(String email);
     
    }
    Tu aura déjà des méthode de get via Id (et paginable).
    Et tu aura une méthode d’accès au account via email grâce a la méthode findByEmail (dont 0 ligne de code sont nécessaire).
    Tu as la possibilité de faire du requetage via l’annotation @Query sur une méthode (attention c'est pas du SQL ).


    Voila dans les grande lignes et très succinct la présentation de ces framework.

  4. #4
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2015
    Messages : 24
    Par défaut
    Bonsoir,

    Merci bien pour vos recommandations !

  5. #5
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 187
    Par défaut
    Il faut voir Spring comme une grosse boite à outils et bien sur pour s'en servir il n'est pas nécessaire de connaitre tous les outils qu'il propose. Sans aller dans le détail des différents modules Spring dont Spring Batch fait parti il faut d'abord comprendre ce que réalise pour toi Spring. Spring c'est avant tout une fabrique d'objet de type singleton, en gros Spring te dispense de faire : new MonObjet() pour l'utiliser car c'est Spring qui le fera pour toi lorsqu'il estimera que ce sera nécessaire, il n'y a donc rien d'autre à prévoir que de déclarer l'objet comme un attribut de ta classe. Après les termes savants d'injection de dépendance ou d'IoC tu peux oublier si tu as compris le reste (Spring "injecte" des objets dans les classes).

    Evidemment afin que Spring puisse fonctionner comme ceci il faut que les objets que tu vas utiliser par le biais de Spring soient effectivement identifiés comme des objets managés par Spring et pour cela il y a différentes annotation à poser sur la classe de ton objet, tu peux utiliser @Bean pour faire simple ou sinon @Component @Service ou @Repository (il faudra lire la doc pour comprendre lesquels utiliser selon tes besoins).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    @Bean
    class MonObjet {
     public String toString() {
      return "HELO";
     }
    }
    Ensuite dans une autre classe, ex MonService.java, pour utiliser l'objet il suffit d'écrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    @Service
    class MonService {
     
     @Autowired
     private MonObjet monObjet;
     
     public void afficheMonObjet() {
      System.out.println(monObjet);
     }
    }
    L'annotation @Autowired indique à Spring attention je veux que tu injectes (instancie si pas encore fait) monObjet dans cette classe.

    Pour répondre rapidement:

    - Spring JPA Data : permet de faire du mapping d'objet sur des tables (c'est en fait Hibernate qui est implémenté derrière) et en particulier il propose des DAO avec des méthode CRUD déjà tout prêt (moins de code à écrire)
    - Spring Boot : c'est le truc qui a révolutionné Spring dernièrement car il te dispense de faire beaucoup de paramétrage (tu oublies les fichiers xml ou Javaconfig), on utilise plus que ça au boulot.

    Exemple d'utilisation de SpringBoot:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    @SpringBootApplication
    public class DemoApplication {
     
        public static void main(String[] args) {
           ApplicationContext context = SpringApplication.run(DemoApplication.class, args);	
           MonService monService = (MonService) context.getBean(MonService.class);
           monService.afficheMonObjet();
        }
    }
    Sinon pars sur un exemple simple pour "sentir" comment la mécanique Spring fonctionne et après tu verra que le reste viendra tout seul.

  6. #6
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2015
    Messages : 24
    Par défaut
    Ok je vois, merci pour votre aide !
    Le truc c'est que je me suis fixé l'objectif de devenir fort en développement car je considère que c'est vraiment très important en tant que ingénieur, pendant ma prépa j'ai toujours dominé ce que je faisais, physique, mathématique mais depuis que je suis en alternance dans une SSII je me rend compte de la difficulté de cette discipline, j'ai vraiment l'impression que la quantité de connaissance qu'on doit assimilée est gigantesque et qu'il n'y a pas de fin..

Discussions similaires

  1. [Java][Spring] Support d'aide à la certification Spring
    Par Hikage dans le forum Certifications
    Réponses: 1
    Dernier message: 29/01/2008, 14h04
  2. Question logging Spring
    Par LCH92 dans le forum Logging
    Réponses: 2
    Dernier message: 09/01/2008, 13h56
  3. [Java][Spring] Certification Spring, pour ou contre?
    Par Hikage dans le forum Certifications
    Réponses: 3
    Dernier message: 28/12/2007, 13h33
  4. question JAVA - UML
    Par oprian dans le forum UML
    Réponses: 2
    Dernier message: 01/06/2007, 12h56

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