Вызов ApplicationContext.getBean() это не Инверсия Контроля! Несмотря на то, что по-прежнему легко изменить реализацию, настроенную для заданного имени компонента, класс теперь напрямую полагается на Spring для предоставления этой зависимости и не может получить ее каким-либо другим способом. Вы не можете просто сделать свою собственную имитацию реализации в тестовом классе и передать ее ему самостоятельно. Это, по сути, противоречит цели Spring как контейнера для внедрения зависимостей.
Добрый день, компилятор в реализации виртуальной машины Java может изменить порядок кода или процессора. Кроме того, иерархия памяти архитектуры, на которой выполняется реализация виртуальной машины Java, может создавать впечатление, что код переупорядочивается.
В вашем случае скорее всего проблема в том, что JMV делает reordering и thread3.start() выполняется первым.
Вызов ApplicationContext.getBean() это не Инверсия Контроля! Несмотря на то, что по-прежнему легко изменить реализацию, настроенную для заданного имени компонента, класс теперь напрямую полагается на Spring для предоставления этой зависимости и не может получить ее каким-либо другим способом. Вы не можете просто сделать свою собственную имитацию реализации в тестовом классе и передать ее ему самостоятельно. Это, по сути, противоречит цели Spring как контейнера для внедрения зависимостей.
Если кратко то ваш вариант это костыль.
Добрый день, компилятор в реализации виртуальной машины Java может изменить порядок кода или процессора. Кроме того, иерархия памяти архитектуры, на которой выполняется реализация виртуальной машины Java, может создавать впечатление, что код переупорядочивается.
В вашем случае скорее всего проблема в том, что JMV делает reordering и thread3.start() выполняется первым.
Пишите коментарии или дополнения!