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 :

Bean factory on the fly


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Avril 2005
    Messages : 277
    Par défaut Bean factory on the fly
    Bonjour à tous !

    Je me casse les dents sur Spring, donc je viens demander aux experts ...

    J'ai besoin de générer des beans à la volée, mais que ceux-ci soient "springés" ...

    La finalité est que j'ai besoin de faire de l'AOP sur les proxys qui seront générés.

    Pourquoi ? Une explication !

    Je dois gérer les traductions d'une appli web. Pour simplifier et utiliser les mécanismes standards Spring & Co, je veux éviter d'injecter un objet dans tous mes objects à moi (car tous ne sont pas gérés spring).

    Aussi, je veux simplement faire un Helper accessible grâce à des méthodes "static" qui me rends mes objets paramétrés. Ensuite, quand j'invoque une méthode de ces objets "translate()" par exemple, HOP l'aop fait le job.

    J'ai fait un "Builder" sur mes objets pour simplifier, et j'ai aussi déjà mes méthodes "static" via mon Helper.

    Je n'arrive juste pas a faire générer par Spring mes objets ...

    Je peux mettre du code ou autre si besoin sans soucis.

    Merci à vous par avance.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 962
    Par défaut
    voir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <context:spring-configured />
    ou
    @EnableSpringConfigured
    et
    (il faut spring-aspects.jar, et au choix : compile- ou load-time weaving)

    http://www.springindepth.com/2.5.x/0.10/ch06s03.html


    Ou avec AspectJ, mais avec un .aj pas un .java avec @Aspect...

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    +1 @Configurable est la voie à utiliser. Attention que tu ne peux annoter que des beans prototype avec @Configurable:


    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <context:spring-configured />
    <bean class="com.TaClasse"/>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @Configurable
    public class TaClasse {
      @AutoWired
      TaProp taProp;
      //....
    }

    Et l'utilisation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TaClasse tc = new TaClasse();
    tc.uneMethode();
    tc.uneAutreMethode();

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Avril 2005
    Messages : 277
    Par défaut
    Merci à vous, j'ai bien galéré quelques jours, j'ai finalement trouvé une solution, mais avec 50% de ce que je voulais faire ...

    J'ai réussi à faire ma factory.

    J'ai déclaré mon bean "prototype" dans mon context et via une interface. Ensuite applicationContext.getBean() me génère mes instances springées.

    Par contre j'ai changé mon AspectJ autonome par in Spring AOP with AspectJ ...

    C'est là que j'ai bloqué malgré les tutos ... Mon aspect est détecté et chargé par Spring, mais ne trigger jamais ... Malgré le fait que les beans soient Springés et aient une interface et donc des méthodes publiques.

    J'ai réussi en jouant avec les priorités de chargement des beans et les contextes.

    Je suis débloqué, et mes collègues aussi du coup ...

    Mais j'espère bien faire marcher cet AOP ... Mais je ne sais pas comment faire ...

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tu fais du compile time woving ou du runtime woving pour tes aspets?

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Avril 2005
    Messages : 277
    Par défaut
    Ha oui pardon, c'est du LTW ...

    En compile c'est mieux ou plus simple ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/11/2008, 15h10
  2. Bean Factory renvoie null
    Par ::Fistons dans le forum Spring
    Réponses: 16
    Dernier message: 09/07/2007, 09h23
  3. [MySQL] thumbnail persistant ou on the fly?
    Par darkbob dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/06/2007, 16h35
  4. Réponses: 2
    Dernier message: 31/05/2007, 12h19
  5. Création d'objects "on the fly"
    Par ploxien dans le forum Langage
    Réponses: 6
    Dernier message: 09/05/2007, 09h52

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