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

Langage Java Discussion :

Surcharge de méthode / annotations


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 117
    Par défaut Surcharge de méthode / annotations
    Bonjour,

    J'utilise Spring Security et la partie annotations sur les méthodes pour gérer les autorisations sur mon application.

    J'ai une couche service qui est abstraite et utilise les Generics. Ma classe s'appelle AbstractBOImpl. Ci-joint un exemple de méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public void saveEntities(List<T> added, List<T> modified, List<T> removed) {
    		for (T entity : added) {
    			create(entity);
    		}
    		for (T entity : modified) {
    			update(entity);
    		}
    		for (T entity : removed) {
    			delete(entity);
    		}
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void delete(T entity) {
    		getDAO().delete(entity);
    	}
    Si je veux gérer les autorisations pour chaque type de bean que j'utilise, je dois surcharger les méthodes en questions. Prenons comme exemple la méthode delete() de ma classe LibraryBOImpl, qui étend AbstractBOImpl :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @Override
    	@Secured("LIB_D")
    	public void delete(Library entity) {
    		super.delete(entity);
    	}
    En mettant mon annotation sur la méthode delete, je me suis dit que Spring Security allait la prendre en compte. Or ça n'est pas le cas, et ceci je pense parce que la méthode delete n'est pas mon "point d'entrée" dans la classe Abstraite. La méthode delete est appelée dans ma méthode "point d'entrée", est définie dans ma classe abstraite, mais est surchargée dans la classe fille. Je me demande si Java ne se base pas sur la signature de la classe abstraite, et surcharge seulement le body avec celui de la classe fille.

    Je dis ça car si je surcharge la méthode saveEntities et que je l'annote @Secured, l'interceptor de Spring Security fonctionne. Mais bon vous comprenez que ça ne suffit pas à répondre au niveau de finesse d'autorisation que je souhaite...

    Quelqu'un peut confirmer mon analyse ?

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 117
    Par défaut
    Pour ceux que ça intéresse, en fait c'est purement un problème d'AOP. Il faut passer par un proxy pour qu'AOP soit déclenché depuis la même instance de classe.

    Plus d'info ICI

  3. #3
    Membre Expert
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Par défaut
    Moi je dirais que ta méthode "saveEntities" n'a d'une part pas un nom très cohérent par rapport à ce qu'elle fait, d'autre part a trop de responsabilités.

    Pour n'as-tu pas une interface avec les méthodes create, update et delete, que tu implémentes dans tes daos concrets avec l'annotation de sécurité adéquate ?

Discussions similaires

  1. [POO] Héritage et surcharge de méthodes
    Par defkid dans le forum Langage
    Réponses: 4
    Dernier message: 26/02/2007, 14h51
  2. surcharge de méthode
    Par Zen_Fou dans le forum Langage
    Réponses: 2
    Dernier message: 22/03/2006, 10h23
  3. [POO] Surcharge de méthode
    Par ouioui2000 dans le forum Langage
    Réponses: 4
    Dernier message: 09/03/2006, 15h25
  4. [Custom Tags] Problème avec une surcharge de méthode
    Par Strab dans le forum Taglibs
    Réponses: 19
    Dernier message: 26/08/2005, 16h34
  5. Comment surcharger la méthode OnClose d'un TFrame ?
    Par sdebrois dans le forum Composants VCL
    Réponses: 2
    Dernier message: 17/01/2005, 20h57

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