Почему платформа Spring? [закрытый]

Подумайте об использовании ReaderWriterLock, если у вас есть много потоков , которые только должны читать данные , и эти потоки блокируются в ожидании блокировки, и вам не нужно часто изменить данные.

Однако ReaderWriterLock может заблокировать поток, который ожидает записи в течение длительного времени.

Поэтому используйте ReaderWriterLock только после того, как подтвердите , вы получите высокий уровень конкуренции для блокировки в « реальной жизни » и подтвердили, что не можете изменить дизайн Ваша конструкция блокировки до сокращает время удержания блокировки в течение .

Также подумайте, если вы не можете лучше хранить общие данные в базе данных, и пусть она позаботится обо всей блокировке, так как с гораздо меньшей вероятностью вам будет трудно отследить ошибки, если база данных работает быстро. достаточно для вашей заявки.

В в некоторых случаях вы также можете использовать кэш Aps.net для обработки общих данных и просто удалять элемент из кеша при изменении данных. Следующее чтение может поместить новую копию в кеш.

Помните

«Лучший вид блокировки - это блокировка, которая вам не нужна (то есть не делите данные между потоками)».

79
задан Jeshurun 7 November 2011 в 01:49
поделиться

5 ответов

Я уже дал частичный ответ в https://stackoverflow.com/questions/1549472/what-are-upcoming-trends-in-software-industry-and-its- impact-for-java-developer / 1549740 # 1549740 , но я добавлю несколько ссылок в этот ответ. На самом деле, я не буду освещать и обсуждать технические качества Spring, поскольку они не новы и, на мой взгляд, не объясняют шумиху. Вместо этого рассмотрите следующие события и приобретения:

Как видите, за последний год в сфере SpringSource произошло множество изменений, причем этим летом произошли довольно большие изменения. Разве вы не видите сейчас общую картину? Что ж, посмотрите на получившийся стек: с Java, Groovy, Grails в качестве языков, Spring в качестве контейнера, tc Server в качестве базового сервера приложений, Hyperic для работоспособности и мониторинга, VMware для виртуализации, CloudFoundry в качестве системы управления и обеспечения, VMware / SpringSource имеет полный набор для упругого облака . И под полным я подразумеваю действительно полный, поскольку этот стек охватывает все, кроме JVM, для размещения Java в облаке: программное обеспечение, платформу и инфраструктуру, то есть все различные разновидности облачных вычислений.

Другими словами, пока другие все еще готовятся к этому, VMware и SpringSource уже готовы к волне SaaS 1 / PaaS 2 / IaaS 3 .

Это захватывающе, здесь идут инновации, это создает (или, по крайней мере, подпитывает) тенденцию, это оказывает большое давление на Java, рынок серверов приложений, Java EE, ... и это объясняет, IMO шум вокруг VMware / SpringSource. Больше, чем предстоящее появление Spring 3.0 :).


1 Программное обеспечение как услуга
2 Платформа как услуга
3 Инфраструктура как услуга

и это объясняет, IMO, шум вокруг VMware / SpringSource. Больше, чем предстоящее появление Spring 3.0 :).


1 Программное обеспечение как услуга
2 Платформа как услуга
3 Инфраструктура как услуга

и это объясняет, IMO, шум вокруг VMware / SpringSource. Больше, чем предстоящее появление Spring 3.0 :).


1 Программное обеспечение как услуга
2 Платформа как услуга
3 Инфраструктура как услуга

68
ответ дан 24 November 2019 в 10:18
поделиться

Я думаю, вы Возможно, вы захотите прочитать о внедрении зависимостей и инверсии управления .

Spring - это (среди прочего) инверсия контейнера управления.

Пружина (помимо прочего) является инверсией контейнера управления.

Пружина (помимо прочего) является инверсией контейнера управления.

4
ответ дан 24 November 2019 в 10:18
поделиться

Может быть, что-то связано с 420 миллионами долларов?


Spring существует уже некоторое время, он представил важные новые шаблоны проектирования и косвенно отвечает за реформирование EJB ].

Но я думаю, вы слышите об этом сейчас, потому что в августе VMware купила SpringSource за 420 миллионов долларов. Это довольно много для разработчика и консалтинговой компании с открытым исходным кодом ...

18
ответ дан 24 November 2019 в 10:18
поделиться

Что ж, он предоставляет отличную дополнительную структуру, которая позволяет вам сосредоточиться на написании меньшего количества кода инфраструктуры и большего количества кода приложения.

Он предоставляет такие вещи, как:

  • Достаточно всеобъемлющий контейнер IoC
  • AOP Framework
  • Messaging Framework

и многое другое.

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

1
ответ дан 24 November 2019 в 10:18
поделиться

В начальные дни твердого старого J2EE появился Spring Framework, который позволил внедрить зарегистрированные сервисы JNDI в EJB.вы могли бы начать проектировать EJB, где он мог бы быть модульно протестирован, без необходимости запускать сервер приложений J2EE - просто смоделируйте сервисы JNDI, с которыми он сотрудничал, с помощью внедрения зависимостей Spring.

Что ж, на тот момент это было не такое уж и незначительное чудо.

В наши дни, если вы хотите знать, почему Spring продолжает бурно развиваться, прочтите эту книгу и узнайте об этом стеке разработки и о том, как Spring играет важную роль в качестве основного механизма фабрики компонентов для всего, что его окружает - от служб BlazeDS к iBATIS или от Hibernate к компонентам обмена сообщениями ActiveMQ:

Pro Flex на Spring

И посмотрите эту статью:

Интеграция приложений JMS на основе Flex и Spring

2
ответ дан 24 November 2019 в 10:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: