Какова область применения Spring Class, аннотируемая с помощью аннотации @component в Spring MVC? - PullRequest
0 голосов
/ 02 января 2019

Я просматривал весенние учебные пособия и смотрел на область действия bean-компонентов по умолчанию, поэтому по умолчанию область видимости только синглетная.Но когда мы используем аннотации в классах, какой объем они имеют?они создают один объект только для тех классов в JVM?если да, то как работает веб-приложение, будет ли оно безопасным для потоков?

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Каждый бин, управляемый контейнером Spring, по умолчанию имеет область действия Singleton, независимо от того, используете ли вы аннотацию или xml, если вы не переопределяете ее по умолчанию.

0 голосов
/ 02 января 2019

Но когда мы используем аннотацию в классах, какую область видимости они имеют?

Они являются одиночными, если вы не используете @Scope и не указываете другую область.

Они создают один объект только для тех классов в JVM?

Spring создает один объект на контейнер.Это важно, поскольку ваша JVM может запускать несколько контейнеров Spring одновременно.

Будет ли веб-приложение безопасным для потоков?

Это зависит от вас.Spring может гарантировать, что операции жизненного цикла над компонентом выполняются поточно-ориентированным способом (например, экземпляр компонента публикуется поточно-безопасно).Однако Spring не может предсказать логику вашего приложения и то, как вы определяете его правильность.По этой причине он не обеспечивает какой-либо уровень синхронизации, который может быть недостаточным или чрезмерным.

Хорошая дискуссия по этой части: здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...