В этой статье хочу поделиться размышлениями об архитектуре серверных платформ для корпоративных приложений на Java с использованием Java EE, Spring, Akka.
Почему возникло желание написать? На JavaOne 2012 много было рассказано о трендах и изменениях в мире Java и JVM — Polyglot JVM, лямбды, модульность. На конференции возникло ощущение, что все наработки Java EE не должны зависеть от языка программирования. Сейчас часто задают вопрос – какой язык заменит Java? Но тогда куда девать все существующие технологии разработки корпоративных приложений? Эти технологии однозначно имеют ценность. Можно ли одновременно заменить язык программирования и при этом сохранить существующие наработки и сделанные инвестиции? Видимо да.
Теперь постараюсь подробнее – о влиянии тренда Polyglot JVM.
Введение Polyglot JVM достигает двух целей: открывает путь инновациям и позволяет сохранить все технологии Java в секторе корпоративных приложений. Но путь к этим выводам будет долгим;-)
Эта статья – для разработчиков корпоративных приложений. Надеюсь, она поможет систематизировать знания по архитектурам серверных платформ на базе Java и, возможно, вдохновит расширить диапазон используемых языков.
Читать полностью »
Рубрика «spring» - 15
Новые перспективы Java Enterprise с Polyglot JVM
2013-02-15 в 11:17, admin, рубрики: java, java ee, jvm, spring, Блог компании EPAM Systems, метки: java, java ee, jvm, springЗнакомство с Green-forest Framework
2013-02-09 в 16:10, admin, рубрики: ioc контейнеры, java, jee, open source, spring, метки: ioc контейнеры, java, jee, open source, spring 
Хочу рассказать Java-сообществу Хабра о небольшом, но очень полезном (на личном опыте) фреймворке под названием Green-forest. Данный фреймворк можно использовать как самостоятельно, так и в контексте JEE или Spring.
Как с помощью него можно упростить код приложения узнаем под катом.
IntelliJ IDEA 12 раскрывает темную сторону продуктивного программирования
2012-12-05 в 17:30, admin, рубрики: android, intellij idea, java, java 8, JDK, jetbrains, scala, spring, Программирование, разработка, метки: android, intellij idea, java, java 8, JDK, jetbrains, scala, spring, Программирование, разработкаПривет!
Несколько недель назад мы закончили Early Access Program, позволявшую опробовать предварительные билды IntelliJ IDEA 12. Спасибо всем, кто принял участие в программе и присылал нам свои отзывы и комментарии. Ваше пристальное внимание ко всем новым фичам, ваши идеи, предложения, баг-репорты — без всего этого продукт был бы совсем другим.
И вот, после целого года трудов, IntelliJ IDEA 12 официально выпущена и доступна для загрузки.

Конечно, все новые фичи и улучшения релиза здесь не перечислить. Каждый день мы не только добавляем что-то новое, но и пересматриваем существующую функциональность, чтобы сделать ее еще полезнее и «юзабельнее». Вот краткий список главных возможностей, ожидающих вас в IntelliJ IDEA 12.
Читать полностью »
Простая поддержка окружений в Spring 3.1+
2012-10-30 в 13:25, admin, рубрики: java, spring, Программирование, Проектирование и рефакторинг, метки: springМногие знают что для подстановки значений в конфигурационные файлы Spring можно использовать context:property-placeholder.
<context:property-placeholder location="classpath*:/prop/*.properties"/> <!-- здесь будут искаться property файлы -->
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg ref="mongo"/>
<constructor-arg name="databaseName" value="${mongo.db}"/> <!-- здесь будет подставлено значение из найденных property -->
</bean>
Но, при данном подходе, можно лишь подставить различные значения параметров, но не изменить логику развертывания контекста. А ведь, в некоторых случаях, нам необходимо развернуть огромную систему, интегрированную с внешними системами, а в некоторых — просто одну маленькую заглушку.
Когда передо мной встала задача, в зависимости от окружения (dev, prod, load-test), изменить логику развертывания — я искренне попытался использовать старый проверенный способ через property.
Читать полностью »
«Разбор полетов» — Episode 24 — А ты заполнил классный журнал?
2012-09-11 в 16:21, admin, рубрики: idea, java, java ee, jboss, log4j, logback, maven, scala, spring, WebSphere, подкасты, разбор-полетов, метки: idea, java, java ee, jboss, log4j, logback, maven, scala, spring, WebSphere, разбор-полетов 
Новый сезон в старом и надеемся полюбившимся составе. В сегодняшнем выпуске мы обсудим
Тема сочинения — Как провели лето:Читать полностью »
How it’s made для программистов. Серия №2
2012-08-05 в 12:59, admin, рубрики: code review, java, mockito, netty, open source, spring, блог, Программирование, Совершенный код, метки: code review, java, mockito, netty, open source, spring, блогСлышали ли вы о Queuepy? А слышали ли вы об Open Source проектах, написанных на Java? А интересно ли вам узнать как они работают?

Если ваш ответ на последние два вопроса положителен, то неважно, слышали или нет вы о Queuepy до сих пор. Далее нам по пути.
Читать полностью »
SOAP Web-сервис средствами Spring-WS
2012-07-24 в 19:42, admin, рубрики: java, soap, spring, webservice, wsdl, метки: java, soap, spring, webservice, wsdl 
Когда-то поставили передо мной задачу начать разработку Web-сервисов и дали мне сорцы простейшего проекта без каких-либо объяснений. Проект, конечно же, не запускался. Что такое Spring и как он работает, я тоже представления не имел. Адекватных статей по разработке Web-сервисов средствами Spring ни русскоязычных, ни англоязычных я тоже не смог найти. Пришлось разбираться во всем самому, оказалось все не так страшно.
И вот недавно я решил посмотреть, какие новые возможности добавились в Spring с тех пор, и обновить старые сервисы, что в результате и сподвигло меня на написание данной статьи.
Данная статья является руководством по разработке простейшего Web-сервиса, использующего SOAP-протокол, средствами Spring-WS.
Читать полностью »
Интеграционные тесты с Maven, JUnit и Spring
2012-07-02 в 20:12, admin, рубрики: integration testing, java, junit, maven, spring, spring framework, метки: integration testing, java, junit, maven, spring, spring frameworkЮнит тесты это штука хорошая, но, на мой взгляд, полагаться лишь на них нельзя. Иногда очень важно проверить как работают несколько классов, а иногда и слоёв приложения вместе.
У нас приложение активно использует Спринг, а значит и такие интеграционные тесты должны работать с контекстом спринга.
Часто подобные тесты могут занимать много времени, даже если использовать in-memory базу данных (я, кстати проверял почему — у нас много JPA entities с множеством свойств в каждом и инициализация Hibernate, имено она, занимает десятки секунд!)
Значит нам надо сделать так, чтобы по умолчанию эти тесты, в отличие от обычных юнит тестов, не исполнялись во время билда.
Так что план такой:
1. Пишем сервисы, разбитые на два слоя приложения
2. Соединим их Спрингом
3. Напишем тест пользуясь JUnit для взаимодействия этих сервисов (настоящих, без всяких mock)
4. Делаем так, чтобы этот тест не бежал по умолчанию во время билда
5. Profit!
Читать полностью »
«Разбор полетов» — episode 21 — Едим свой собачий корм и меняем шило на два шила
2012-06-17 в 4:18, admin, рубрики: Google, grails, java, javaee, mosh, oracle, play, rails, spring, twitter, подкасты, разбор-полетов, метки: Google, grails, java, javaee, mosh, oracle, play, rails, spring, twitter, разбор-полетов 
Встречайте 21 выпуск подкаста «Разбор Полетов». В предыдущем выпуске мы зажали 40 минут подкаста, поэтому восполняем это упущение. В этом выпуске:
- По следам наших рекомендаций — монолог
- Как я в Твиттер сходилЧитать полностью »
«Разбор полетов» — episode 20 — Программисты-оптимисты
2012-06-09 в 21:48, admin, рубрики: DRY, java, KISS, silicon valley, spring, YAGNI, подкасты, разбор-полетов, метки: dry, java, kiss, silicon valley, spring, yagni, разбор-полетов
Представляем Вашему вниманию юбилейный двадцатый выпуск подкаста «Разбор Полетов», в котором мы говорим о событиях и технологиях, которые взволновали нас на этой неделе, и будут волновать Вас!
В сегодняшнем выпуске мы поговорим:Читать полностью »
