Est-il possible d'obtenir quelles classes un ClassLoader a chargé?
Je suis en train de mettre en œuvre certaines de tests unitaires pour un vieux cadre. Je suis tenter de se moquer de la couche de base de données. Malheureusement, notre cadre est un peu vieux et pas assez sur les meilleures pratiques, donc il n'y a pas de séparation claire des préoccupations. Je suis un peu inquiet que d'essayer de se moquer de la couche de base de données peut faire de la JVM charge un grand nombre de classes qui ne seront pas utilisés.
Je ne comprends pas vraiment la classe chargeurs de bien donc ce ne serait pas un problème. Est-il possible de prendre un pic à toutes les classes d'un particulier chargeur de classe est chargé de prouver ce qui se passe sous le capot?
source d'informationauteur uriDium
Vous devez vous connecter pour publier un commentaire.
Être averti que l'utilisation de
Va produire une énorme quantité de la production. Journal de la sortie vers un fichier, puis d'utiliser la commande grep. Si vous avez le 'tee' de filtre, vous pouvez essayer ce:
Vous pouvez créer votre propre chargeur de classe et l'utiliser pour charger des cours de l'unité de test. Avoir votre propre Classloader personnalisé imprimer ce qu'il fait.
Ou si vous voulez simplement savoir quelles classes sont chargés, n':
Je ne suis pas sûr. Mais il ya une façon dont je le vois, il pourrait en être fait. Il peut-être overrly ridicule. Vous pouvez essayer d'aspects et de mettre un coupe transverse (pointcut) pour loadclass.
Aussi peut-être l'argument jvm -verbose peut-être utile.
Comme une alternative, pour une Classe particulière-chargeur comme vous l'avez mentionné, vous pouvez utiliser ce bout de code. Il suffit de changer la valeur de la variable obj si vous le souhaitez.