La traque de la cause du Printemps “pas admissibles pour l'auto-proxy”

Lorsque vous commencer à déconner avec le Printemps de l'auto-proxy choses, vous souvent ce comportement comme l'a documenté:

Des Classes qui implémentent l'
BeanPostProcessor interface sont
particulière, et si elles sont traitées
différemment par le conteneur. Tous
BeanPostProcessors et leur directement
référencé haricots seront instanciés
au démarrage, en tant que partie de la spéciale
phase de démarrage de l'
ApplicationContext, puis tous ceux
BeanPostProcessors sera enregistré
dans un triées de la mode et appliquée à
tous les autres haricots. Depuis AOP
auto-proxy est mis en œuvre comme un
BeanPostProcessor lui-même, pas de
BeanPostProcessors ou directement
référencé haricots sont admissibles pour
auto-proxy (et donc n'aura pas de
aspects de la 'tissé' en eux.

Pour toute bean, vous devriez voir un
info message de journal: “Haricot "toto" n'est pas
admissibles pour l'obtention de traités par tous
BeanPostProcessors (par exemple: non
admissible pour l'auto-proxy)”.

En d'autres termes, si j'écris mes propres BeanPostProcessor, et que la classe fait directement référence à d'autres haricots dans le contexte, puis ceux qui sont référencés les haricots ne seront pas admissibles pour l'auto-proxy, et un message est enregistré à cet effet.

Mon problème est que la traque où la référence directe est peut être très difficile, depuis la "référence directe" peut en fait être une chaîne de dépendances transitives qui finit par se prendre dans la moitié des haricots dans le contexte de l'application. Tout le Printemps vous donne, c'est que seul message info, et ce n'est pas vraiment beaucoup d'aide, au-delà de vous dire quand un haricot a été pris dans ce réseau de références.

La BeanPostProcessor je suis en développement n'ont direct des références à d'autres haricots, mais c'est un ensemble très limité de références. Malgré cela, presque tous les haricots dans mon contexte est alors d'être exclus de l'auto-déterminées, selon le journal, les messages, mais je ne vois pas où cette dépendance qui se passe.

Quelqu'un a trouvé une meilleure façon d'assurer le suivi de ce bas?

  • Vous pouvez également obtenir ce message d'information pour PersistenceExceptionTranslator classes.
InformationsquelleAutor skaffman | 2009-07-29