#spring #spring-mvc #classloader #spring-ioc #spring-context
#spring #spring-mvc #classloader #spring-ioc #spring-context
Вопрос:
Spring container создает, Beans
сначала создавая DAG, а затем создает экземпляр независимого, beans
прежде чем создавать любые beans
, которые зависят от других beans
. Это прекрасно и понятно. Любые, beans
которые зависят от обычной java objects
/ pojo, могут быть предоставлены механизмом JVM classloader, и это тоже нормально.
Но любой объект Java, который зависит от компонента, — это то, что заставляет меня глубже понять этот механизм чередования.
- в простом случае — JVM может дождаться, пока spring container завершит процесс создания своего компонента, а затем JVM может создавать любые объекты Java, которые ей нужны.
и
- для чередующихся компонентов и объектов Java: они оба (jvm и spring container) будут создавать компоненты и java obj чередующимся образом по мере необходимости. Я думаю об этом, потому что, когда компонент может иметь ссылку на обычный java obj и, в свою очередь, java obj может иметь компонент в качестве зависимости.
Итак, просто чтобы уточнить — создают ли Spring Container и JVM bean и obj чередующимся образом.
(Это вопрос, позволяющий понять работу Spring Container на стороне JVM, это не может быть специфичным для класса или seceniro или варианта использования, поэтому, пожалуйста, не отмечайте этот вопрос как отсутствие чего-то вроде специфики или варианта использования или чего-то еще — спасибо за понимание.)
Отредактируйте следующий комментарий @BoristheSpider:
Возьмите немного spring bean
. Spring container попытается создать это bean
. Теперь, скажем, это bean
зависит от pojo
. Итак, как это pojo
создается. Создается ли он Spring Container напрямую или путем делегирования его соответствующему загрузчику классов JVM (bootstrap или ext или application). Я думаю, что он делегирует его соответствующему загрузчику классов JVM. кто-нибудь может прояснить это.
ДАЛЕЕ — когда JVM должна создать, pojo
который зависит от bean
того, как он узнает о компоненте. Таким образом, JVM и Spring Container должны заботиться об одном и другом. Я пытаюсь понять, как они работают рука об руку.
Комментарии:
1. Я не понимаю вопроса. JVM не заботится о Spring и не нуждается в этом. Заботится ли ваш браузер о том, что вы планируете посетить Stackoverflow при первом его открытии? Конечно, нет — это разные слои .
2. Вы получите гораздо более продуктивные ответы, если приведете конкретный пример, который вас смущает!
3. JVM не имеет ничего общего с Spring, вообще. Единственная связь, о которой вы можете подумать, заключается в том, что Spring написан поверх спецификаций JavaSE и JavaEE, а приложения Java выполняются внутри JVM, вот и все; однако это никоим образом не определяет какую-либо связь JVM и Spring при создании beans. Bean — это просто объект, управляемый Spring container. Когда вы покупаете автомобиль, производителю автомобиля все равно, куда вы на нем ездите.
4. Это очень хороший вопрос, который я действительно понимаю. через 2 года ответа нет? хм :/