Давайте возьмем, например, приложение Spring, которое встроено в какой-то контейнер Tomcat. Я знаю, что Spring использует сервлеты под маской, но я хочу понять, как это работает внутренне, с точки зрения JVM. Что напрямую связывается с JVM?
Автономный случай приложения "stati c" прост, поскольку код компилируется один раз, байт-код интерпретируется JVM / компилируется JIT, класс загружается и взаимодействие с внешним интерфейсом отсутствует. мир - мы можем сказать, что приложение «вызывается один раз» при запуске.
Но когда дело доходит до приложения, которое может иметь некоторое взаимодействие с пользователем и т. д., работает в l oop, используя, например, пружину, как JVM знает, что некоторые методы были вызваны с помощью запроса "localhost: 8080 / users"? JVM прослушивает какой-то порт? Чтение из сокета? Какой компонент отвечает за это?
Буду очень признателен за написание всего пути от запуска приложения, пользовательского запроса до взаимодействия с JVM и того, что с ним происходит.