Chargeur de classe 1 Tomcat

Codercolinhan 2021-09-15 07:09:10
chargeur classe tomcat


                                            Fig.1 tomcatChargeur de classe

Le processus de débogage utilise tous les paramètres par défaut,D'autres circonstances ne sont pas prises en considération pour le moment.

 javaLe chargeur de classe suit le mécanisme de délégation parentale,Raisons:Cela permet de maintenir une priorité,GarantiejavaLes classes de base de ne pas être écrasées.
MaistomcatSur cette base,J'ai encore personnalisé mon chargeur de classe.Raisons:

1. DémarragetomcatElle a besoin de--Application ClassLoader;
2. tomcatDépendance supplémentaire nécessitant une personnalisation--Catalina ClassLoader(Ce que je comprends, c'est quetomcatLes fonctions sont personnalisées);
3. PourwebL'application charge quelques ressources publiques--Shared ClassLoader;
4. Pour CatalinaClassLoader Et Shared ClassLoader Charger les ressources publiques-- Common ClassLoader;
5. webApplication( C'est - à - dire qu'il est déployé wabapps Applications dans le Répertoire ) Un environnement dépendant est également nécessaire --WebAppClassLoader;
Copier le Code

Il y a quelques points à noter ici.

1. Sous paramètres par défaut ,Bien quetomcat Appelé dans le code source Thread.currentThread().setContextClassLoader(catalinaLoader);  Maistomcat Le chargeur de classe réel lui - même est Application ClassLoader( Parce que par défaut ,CatalinaClassLoader Aucune ressource supplémentaire chargée , Donc, pour l'instant, );

Peut être vérifié par le code suivant :

Fig.2 Inweb Appel en application Thread.currentThread().getContextClassLoader().getParent().getParent().loadClass("org.apache.catalina.startup.Catalina")Partomcat Le mécanisme de chargement de classe de : Thread.currentThread().getContextClassLoader().getParent().getParent() Le chargeur de classe qui en résulte est  Application ClassLoader

2. SpringbootIntégrétomcat Mécanisme de chargement de classe utilisé , Avec le déploiement webapps Différents mécanismes de chargement de classe sont utilisés dans le Répertoire ( Plus tard. )
3.ParallelWebappClassLoader Bien qu'il s'agisse d'un chargeur de classe personnalisé , Mais ça correspond. Java De la délégation parentale , Ou un mécanisme sélectif de délégation parentale
Copier le Code

              Fig.3 ParallelWebappClassLoaderHéritéWebappClassLoaderBase

               Fig.4 ParallelWebappClassLoaderHéritéWebappClassLoaderBase

Afin de vérifier que 3Point:

*IntomcatDans le code sourceCatalina.javaNouveauhi()Méthodes;

* En préparation web Ajouter le même chemin dans l'application Catalina.java

* En préparation web Appel de réflexion dans l'application Catalina.hi()Méthodes, Les résultats sont imprimés tomcat Résultat de l'appel de méthode dans le code source

Fig.5 Validation

版权声明
本文为[Codercolinhan]所创,转载请带上原文链接,感谢
https://javamana.com/2021/09/20210914164725476v.html

  1. Opérateurs arithmétiques et opérateurs de comparaison pour JavaScript, Introduction classique au développement web
  2. MySQL + +: slow query log analysis (I)
  3. Explorer le cadre open source Android - 1. Okhttp Source Analysis
  4. 分布式宝典:限流 缓存 通讯,Java开发中常见的一些问题面试专题,
  5. 分享面试经历的网站,腾讯大牛教你自己写Java框架!
  6. Expliquer les six principes de base du modèle de conception par des exemples réels
  7. Site Web pour partager vos expériences d'entrevue, Tencent Bull vous apprend à écrire votre propre cadre Java!
  8. Dictionnaire distribué: communication de cache limitée par le courant, sujets d'entrevue pour certaines questions courantes dans le développement Java,
  9. Another uncle circle man is angry! The high-quality acting skills make people admire and achieve the highlight of the ending of spring in Jade House
  10. 10. MySQL database import, export and authorization
  11. 9. MySQL data query
  12. 8. MySQL data operation DML
  13. 7. MySQL database table engine and character set
  14. 分享面試經曆的網站,騰訊大牛教你自己寫Java框架!
  15. Les points de connaissance de Java Real - time Video Download, Byte Jumping Java R & D post ont été divulgués à l'intérieur.
  16. Introduction au JavaScript chapitre 15 (objets, clairvoyance)
  17. 前方高能,Java程序员最大的悲哀是什么?
  18. 别再说你不会JVM性能监控和调优了,2021华为Java高级面试题及答案,
  19. Tencent private cloud MySQL solution tdsql
  20. 前方高能,Java程序員最大的悲哀是什麼?
  21. Quelle est la plus grande tristesse des programmeurs Java à l'avenir?
  22. 15 useful cron work examples commonly used by Senior Linux system administrators
  23. Ne dites pas que vous ne pouvez pas surveiller et ajuster les performances JVM, 2021 Huawei Java Advanced interview Questions and Answers,
  24. 別再說你不會JVM性能監控和調優了,2021華為Java高級面試題及答案,
  25. 十多家大厂Java面试真题锦集干货整理,Java开发者该学习哪些东西提高竞争力?
  26. 十分钟带你回顾Spring常问的知识点,35岁老年程序员的绝地翻身之路,
  27. 区区一个SpringBoot问题就被干趴下了,看完这一篇就够了!
  28. K8s gestion des ressources (opérations de base)
  29. Java and cloud native dating
  30. 區區一個SpringBoot問題就被幹趴下了,看完這一篇就够了!
  31. Un problème de démarrage de printemps dans le district a été séché, et c'est assez!
  32. Dix minutes pour vous faire passer en revue les points de connaissance que Spring demande souvent, le chemin du retour Jedi d'un programmeur âgé de 35 ans,
  33. Plus d'une douzaine de grandes usines Java interview vrai sujet brocade collection de marchandises sèches, les développeurs Java devraient apprendre ce qui améliore la compétitivité?
  34. 十分鐘帶你回顧Spring常問的知識點,35歲老年程序員的絕地翻身之路,
  35. Guide de route d'apprentissage Java, redis a plusieurs types de données?
  36. 华为Java高级工程师面试题,字节跳动上千道精选面试题还不刷起来!
  37. 华为Java面试题目,腾讯Java开发面试记录,
  38. Propriétés et méthodes des objets Array en javascript!,Pseudo - classes et pseudo - éléments pour CSS
  39. Design pattern -- agent pattern
  40. 華為Java面試題目,騰訊Java開發面試記錄,
  41. Huawei Java interview title, Tencent Java Development interview record,
  42. Huawei Java Senior Engineer interview question, Byte Jumping thousand Selected Interview Question is still not Brushed!
  43. 双非本科字节跳动Java面试题分享,一篇文章教你搞定计算机网络面试,
  44. 又到一年金三银四,2021最新Java笔试题及答案,
  45. Huawei Finance and Economics 2021 Spring Recruitment interview, what is distributed Lock?Pourquoi utiliser des serrures distribuées?
  46. Un an plus tard, Golden, Silver, Silver, and Silver, 2021, the latest Java written Examination Questions and Answers,
  47. Partage de questions d'entrevue Java à double saut d'octets non - premier cycle, un article vous apprend à gérer l'entrevue réseau informatique,
  48. Computer graduation project java online voting system based on SSM
  49. K8s gestion des ressources (opérations de base)
  50. 又到一年金三銀四,2021最新Java筆試題及答案,
  51. Collection de code de base JavaScript (1)
  52. Vérification des permissions d'interface pour le démarrage du printemps à l'aide d'annotations personnalisées AOP +.
  53. Vérification des permissions d'interface pour le démarrage du printemps à l'aide d'annotations personnalisées AOP +.
  54. Cloud Security Daily 210914: Red Hat Jboss Middleware Platform found important Security Vulnerability and needs to be upgraded as soon as possible
  55. 吐血整理,腾讯团队实力打造spring入门教程,
  56. 史上最全的微服务专业术语面试50问,字节跳动Java岗经典面试真题,
  57. Absolument!C'est l'analyse la plus détaillée du code source de hashtap que j'ai jamais vu!
  58. Computer graduation project Java logistics order management system of logistics company based on SSM
  59. Talk about Kafka: source code analysis of producer
  60. [springboot2 starts from 0] development tips - Lombok, devtools, spring initailizr