Modifier les fèves de post-traitement de la commande, sans que la configuration explicite

StackOverflow https://stackoverflow.com//questions/12651713

  •  11-12-2019
  •  | 
  •  

Question

Je suis conscient du fait que l'ordre de la fève de chargement est implicitement déterminé par les dépendances et les dépendances transitives.

Imaginez que vous avez un ensemble de annoté des fèves de vous fournir une sorte de métadonnées que vous souhaitez appliquer à un autre ensemble de AwareBeans.De sorte que c'est seulement après que vous recueillez toutes les métadonnées à partir de la N des haricots, seulement après que vous pouvez poster des processus de la AwareBeans.Vous utilisez généralement org.springframework.beans.factory.config.BeanPostProcessor pour ce genre de trucs.La façon de traiter avec la commande si?Je pense que même configuration depends-on explicitement n'a pas préséance sur les dépendances à l'ordre de chargement, droit?

Il y a une interface org.springframework.core.Ordered qui détermine simplement sur l'ordre de beanPostProcessors être appliqués, mais pas l'ordre de haricots.

Je pourrais utiliser org.springframework.beans.factory.config.BeanFactoryPostProcessor mais bean définition n'a pas suffisamment d'informations avant de haricot de l'instanciation.Par exemple beanDef.getBeanClass() les rendements de haricots nom de la classe etc.

C'est que de toute autre façon, vous pourriez penser à la façon de faire ce que je veux ?

Était-ce utile?

La solution 2

Je l'ai résolu en utilisant org.springframework.beans.factory.config.BeanFactoryPostProcessor et le chargement des classes par le chargeur de classe afin que je puisse utiliser la Réflexion pour saisir les annotations.Je pense que ça ne devrait pas casser quelque chose parce qu'après quand le printemps va classload les classes de haricots chargeur de classe vérifie si la classe est chargée déjà et si donc il n'a pas le charger.Sinon, il le charge.

Autres conseils

Vous pouvez:

a) Injecter tous vos métadonnées haricots dans votre BeanPostProcessor.

b) de Rendre votre post-processeur activement chercher tous les métadonnées haricots du contexte de l'application au démarrage.

Chaque méthode présente des avantages et des inconvénients, mais l'effet est le même:après BeanPostProcessor postconstruction, tous les métadonnées bean sera déjà postconstructed trop.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top