LINUX.ORG.RU

Вышел релиз фреймворка Spring 3.0

 ,


0

0

Основновые нововведения:

  • Spring expression language (SpEL): входящий в ядро парсер выражений, используемых в определениях бинов, позволяющий обращаться как к значениям вложенных бинов, так и к структурам окружения (таким, как значения системных свойств (property) через общепринятый синтаксис #{…} .
  • Расширена поддержка для компонентов, основанных на аннотациях: добавлены классы конфигурирования и аннотированые фабричные методы (по образу и подобию Spring JavaConfig). Теперь Spring позволяет осуществлять внедрение конфигурации через выражение @Value раскрывающееся через вычисляемое в рантайм #{…} или статическое ${…} выражение.
  • Выразительная модель включения типов позволяет создавать мета-аннотации для установки пользовательским типам области видимости и других характеристик. Скажем, пользовательская аннотация @MyService включает @Service, @Scope(«request») и @Transactional(readOnly=true) сразу.
  • Стандартизированное внедерение зависимостей. Spring 3.0 полностью поддерживает спецификацию JSR-330 на внедрение зависимостей - внедрение через аннотации @Inject с соответствующими моделями квалификаторов и поставщиков, - как альтернативу собственной модели внедрений через @Autowired и т.п.
  • Декларативная модель проверки на основе аннотаций-ограничений: настройка в стиле Spring поставщика JSR-303 Bean Validation (такого же как Hibernate Validator 4.0). Включает возможность проверки через аннотации в Spring MVC и предоставляет единый способ для определения ограничений на биндинг к Spring'у.
  • Улучшен биндинг и форматирование через аннотации: добавлены Converter и Formatter SPI как альтернатива стандартному PropertyEditor. Форматированием можно управлять аннотациями в стиле проверок JSR-303, к примеру используя @DateTimeFormat. Обратите внимание на новое пространство имен в Spring MVC для настройки форматирования и проверок.
  • Современная поддержка REST средствами самого Spring MVC - отображение адресов запросов в стиле REST, получение значений URI через параметр @PathVariable и подбор решения в зависимости от содержимого переговоров. Поддержка REST на стороне клиента возможна с помощью класса RestTemplate.
  • Встроенная богатая поддрежка Portlet 2.0: Spring MVC полностью поддерживает окружение, события и схему запроса ресурсов Portlet 2.0. Включая специальные возможности отображения для типовых характеристик запроса портлетов: @ActionMapping, @RenderMapping, @ResourceMapping, @EventMapping.
  • Отображение в Object/XML (OXM) ранее известное как часть Spring Web Services теперь стало частью ядра. Искаропки поддерживаются маршаллинг и анмаршаллинг JAXB 2, Castor и т.п. Возможна итеграция с XML в Spring MVC и Spring JMS.
  • Возможности шедулинга следующего поколения: механизмы TaskScheduler и Trigger с поддержкой cron'а. Spring 3.0 идет с пространстовм имен для управления задачами и поддерживает аннотации @Async и @Scheduled, которые могут быть выполенны через пул «родных» или управляемых сервером нитей .

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

По части системных требований Spring 3.0 укладывается в широкий диапазон окружений. Два ключевых требования - поддержка Java SE 5 и Servlet 2.4 (и выше). Подйдут Tomcat 5.x и 6.x, хотя сохранена совместимость с WebSphere 6.1 и WebLogic 9.2 (которые формально всё еще основаны на J2EE 1.4). В тоже время мы уже поддерживаем GlassFish v3, адаптируя Spring к API Java EE 6.

Короче, Spring 3 предоставляет новые возможности компонентной модели и такие стандарты, как внедрения SR-330 и проверки JSR-303 для стабильного производственного окружения без необходимости апгрейдить сервера. Всё что нужно - обновить библиотеки вашего приложения до Spring 3.0.

>>> Подробности

★★★★★

Проверено: maxcom ()
Последнее исправление: maxcom (всего исправлений: 1)

Ответ на: комментарий от CARS

я читал spring tutorial какой-то и спринговскую доку длинную выборочно когда ездил отдыхать на море.

AndreyKl ★★★★★
()
Ответ на: комментарий от Manhattan

ну... php - это язык, а ява+spring - язык и фрейворк.

Вообще, мне лично ява больше нравится как язык(ибо строгая типизация) и как платформа (ибо скала в зубы и счастье). Ну а spring - приятное дополнение.

AndreyKl ★★★★★
()
Ответ на: комментарий от AndreyKl

Andrey такой Andrey :-) Языков со строгой типизацией - пруд пруди. Платформа? Ну-ну. Так Objective-C - язык, а он же + Cocoa - платформа. Почему бы и нет? C++ - язык, а с Linux + Boost - платформа? Вот умиляет меня аргумент, что Java - платформа :-)

Manhattan
()
Ответ на: комментарий от Manhattan

> Linux + Boost - платформа

Убогий, какая нах платформа??? Так, платформишко. Вот java - вот это я понимаю платформище.

anonymous
()
Ответ на: комментарий от Manhattan

>Когда же вы научитесь referrer правильный подсововать? ;)

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

KRoN73 ★★★★★
()
Ответ на: комментарий от Bohtvaroh

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


Примеры?


да хотя бы тот же FormController которым сразу весь post в beans раскидывать любят. если знать куда и что писать, можно одним POST"ом весьма здорово нагадить. тем более в дружке спринга хибернейте можно развернуться по связям весьма далеко.

Пруфлинки?


http://tinyurl.com/amy5ft

gigabito
()
Ответ на: комментарий от anonymous

Звон, значит, слышали, со слухом все впорядке. Выходит, с ориентацией проблемы.


родной, я на спринге кодил когда ты еще думал что компьютер это монитор а не тот ящик рядом.

gigabito
()
Ответ на: комментарий от KRoN73

блин... не поверишь, сразу же открывается картинка, во всех браузерах...

anonymous
()
Ответ на: комментарий от gigabito

> родной, я на спринге кодил когда ты еще думал что компьютер это монитор а не тот ящик рядом.

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

anonymous
()
Ответ на: комментарий от anonymous

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


а идика ты на хуй!

gigabito
()
Ответ на: комментарий от gigabito

Оппонент разъярен, конструктивных аргументов непредвидется, сыпется ругань. Одним словом, слив защитан.

anonymous
()
Ответ на: комментарий от Bohtvaroh

".htm" в урле по сути является указанием контент тайпа, так?

Нет не так, это просто исторически сложилось, когда веб состоял просто из html файлов еще до cgi

pi11 ★★★★★
()
Ответ на: комментарий от Bohtvaroh

> ".htm" в урле по сути является указанием контент тайпа, так?

И что это за content-type - «htm»? Почитайте rfc.

pi11 ★★★★★
()
Ответ на: комментарий от Bohtvaroh

REST

Bohtvaroh если не затруднит, поясни, как в принципе можно получить эту страницу, если выкинуть view-message.jsp из урла? И как именно должен выглядеть контент тайп и кто должен его сформировать - сервер или клиент?

anonymous
()
Ответ на: REST от anonymous

В диссере написано:

1) «view-message.jsp» - content-type (jsp, htm) должен быть в HTTP заголовке, он не должен использоваться в урле 2) GET-параметры адресующие ресурс должны быть частью урла

Напомнило из Собачьего сердца... - Читаю, читаю... Слова легкие: Мечислав, Богуслав и, хоть убей, не помню - какой кто. Закрою книгу - все вылетело! Помню одно: Мандриан. Какой, думаю, Мандриан? Нет там никакого Мандриана. На левой стороне есть два Бранецких. Один господин Андриан, другой Мариан. А у меня - Мандриан...

)))

anonymous
()

Спринг осилить не пытался. Прочитал список фич. Где мой профит если список фич явлется сабсетом Java EE 6/Facelets/EJB3 ???

vertexua ★★★★★
()

>Помимо этих основных изменений есть сотни улучшений в мелочах, которые вы, вероятно, оцените, когад будете апгрейдиться с Spring 2.5. Смотрите ченджлог и явадоки.

когад >апгрейдиться >ченджлог >явадоки

Это какой язык?

anonymous
()

Spring rules

Spring - тру вещь. Отличный фреймворк. Позволяет очень быстро много чего делать и легко всё конфигурировать. Миллионы готовых биндеров для «привинтить технологию someTechnology». ТЕСТИРОВАТЬ просто! Поддержка в ИДЕшках имеется. А функционал - буквально часть ЕЕ без всякой ЕЕ, как таковой. Spring+Tomcat - всё что надо для взлёта. И модульность у него есть. Что не надо - выкинь. Что надо - оставляй. Оно всё равно проще и легче чем EJB. А главное, спринг3 уже сейчас можно засунуть в некоторые проекты под видом «это просто новая версия lib-ы». А вот уговорить некоторых кастомеров перейти на JavaEE6, EJB хотя бы 3.0 - это, практически, невозможно. Традиция такая - переходить годика через полтора-два. Кто бы что ни говорил, а спринг сделал для Java разработчиков многое. Да и никто не знает каким бы путём пошли бы те же EJB, если бы не спринг в своё время.

anonymous
()
Ответ на: комментарий от maxcom

в турции я в сентябре был, это я сейчас только фотографии разобрал :-)

Эх, а тут смотрю твиттер, завидую. А оказывается вот оно как :)

xpahos ★★★★★
()

а сколько было вони со стороны жаба-пипла, когда рест только появился в рельсе. а теперь поди ж ты, нужная фича оказывается. и трех лет не прошло Х)

StDog
()
Ответ на: комментарий от StDog

рест - легко делается и без сторонних хреновин (спринг тут уж точно нахрен ненужен) на банальных сервлетах, но больно разбивается об реальность, потому его везде пиарят но мало кто применяет.

wfrr ★★☆
()
Ответ на: комментарий от wfrr

> мало кто применяет.

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

из-за того что оно не развито на родине, это еще не значит что оно никому не надо

StDog
()
Ответ на: Spring rules от anonymous

Spring rules? Ага, конечно

> Spring - тру вещь. Отличный фреймворк. Позволяет очень быстро много чего делать и легко всё конфигурировать. Миллионы готовых биндеров для «привинтить технологию someTechnology». ТЕСТИРОВАТЬ просто! Поддержка в ИДЕшках имеется. А функционал - буквально часть ЕЕ без всякой ЕЕ, как таковой. Spring+Tomcat - всё что надо для взлёта. И модульность у него есть. Что не надо - выкинь. Что надо - оставляй. Оно всё равно проще и легче чем EJB. А главное, спринг3 уже сейчас можно засунуть в некоторые проекты под видом «это просто новая версия lib-ы». А вот уговорить некоторых кастомеров перейти на JavaEE6, EJB хотя бы 3.0 - это, практически, невозможно. Традиция такая - переходить годика через полтора-два. Кто бы что ни говорил, а спринг сделал для Java разработчиков многое. Да и никто не знает каким бы путём пошли бы те же EJB, если бы не спринг в своё время.

Итак, вышла уже третья инкарнация этого поделия. Народ в восторге! Ну и здорово.

А оно хотя бы IoC уже научилось делать не через Ж? Нет, я не про то, чтобы запустить пример с их сайта. Я про вот это:

1. «Хорошей практикой» считается использовать конструкторы без параметров. Почему хорошей? Объект, созданный через пустой конструктор и далее собираемый через сеттеры изначально не готов к работе. Забыл сеттер - сборка накрылась медным тазом, программа сдохла на пол-пути во время исполнения. Так почему же все-таки рекомендуют именно этот вариант? Ответ прост: даже при ленивой инициализации, спринг не в состоянии собрать элементарые связки бинов. Если идут бин А а потом бин Б, и А требует в конструкторе Б а Б хочет засеттить А, то мегамощный спринг не понимает, что сначала надо собрать Б, потом А, а потом засеттить А в Б. Тупо говорит что нельзя разрулить зависимости. Но меняешь порядок бинов в конфиге - работает. Вот красота! Крутым декларативность не нужна. :-)

2. Собираем кучу бинов.. Для этого можно их разложить (компонентность!) по разным файлам и дальше включать один в другой. Не знаю как в 3м, но в 2.х все это сваливалось в одно пространство имен. Из-за чего вылезала куча проблем. Пространства имен, что был придуманны лет 20-30 назад быть может появятся в «самом передовом фреймфорке для Жабы» где-то через.. хе-хе.. 20-30 лет.

3. Тьма народу, пишушего на EJB даже не задумывалась над вопросом «а оптимален ли этот путь в данном конкретном случае?». Уверен, есть даже дауны, что для запуска программ по простенькому графику пишут мощную J2EE приблуду на коммерческом сервере приложений. Вменяемые же просто добавляют строчку в crontab.

4. «Кастомеры» очень даже правы. Им постоянно впаривают г-но, они не хотят в него вступать каждый божий день и предпочитают дождаться момента, когда оно в достаточной мере подсохнет дабы не прилипать к ногам. Единственное отличие - те, кто сами сильны в технологиях и готовы тратить на это уйму времени (потому что в их бизнесе без этого никак). Но это уже не будут ваши «кастомеры». :-)

5. Про другие прелести, такие как JMS связки, что дико, безбожно конфликтуют с некоторыми либами для Weblogic или мусорный API для работы с базой данных, что еще грязнее чем JDBC я пожалуй продолжать не будут. Пусть люди юзают это, радуются, хвалят Spring Foundation (или как ее там) и возвещают о своих великих победах.

rtvd ★★★★★
()

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

Вот когады

cerberus
()
Ответ на: комментарий от anonymous

>Я так понимаю, лоровские джависты про спринг и не слышали, они только хелоуворды на свинге пишут и флеймят на тему «Java vs C#».

ждём релиза grails 1.2 :)

thevery ★★★★
()
Ответ на: комментарий от anonymous

>F12 -> [ ] Отправлять referrer

Есть разница между НЕ отправление реферера (для этого достаточно просто открыть ссылку в новом окне, введя нужный адрес в адресную строку), другое - отправить верный реферер (самого же сайта). А данном случае первый метод не работает.

KRoN73 ★★★★★
()
Ответ на: Spring rules? Ага, конечно от rtvd

почему столько злобы?

Почему вы так нервно реагируете на эту новость?
откуда столько агрессии?
сейчас вот Spring очень меня выручает, да может J2EE 6 это и круто,
но в реальном энтерпрайзе это появится года через два-три,
но тогда это уже будет J2EE 8 :-)

сейчас на работе Oracle Application Server 10.1.2 J2EE 1.3 Compatible
и без Spring 2.5.x очень было бы мне тоскливо,
без тех самых template для всего и вся.

короче новость хорошая, очень рад, хотя пользоваться может и не придется,
так как слезть с Oracle 10.1.2 получится не скоро :-(

arum ★★
()

Чего вы в этот REST вцепились, в спринге, даже в третьем, Spring MVC это тот еще бронтозавр. Есть же Jersey!

По теме. Спрингом пользуюсь, но он мне уже надоел. Оно тормозное и местами глючное. А еще навязывает порой бред, типа DAO для Hibernate, они хоть бы почитали что такон DAO вообще. Или АОП. Больше всего бесит что при каждом запуске юнит-тестов нужно ждать, пока контекст поднимется. Да и нестандарнтые вещи на нем делать не очень просто.

Сейчас смортю в сторону связки Google Guice + Apache Wicket + Hibernate.

dizza ★★★★★
()
Ответ на: почему столько злобы? от arum

> Почему вы так нервно реагируете на эту новость? откуда столько агрессии?

:-)

Я люблю Spring особенной любовью, потому что он, лично у меня украл часов 40 времени из-за своей уникальной кривоты. А мое время мне очень дорого.

сейчас вот Spring очень меня выручает, да может J2EE 6 это и круто,

но в реальном энтерпрайзе это появится года через два-три, но тогда это уже будет J2EE 8 :-)

А я говорил, что J2EE 6 это круто?

сейчас на работе Oracle Application Server 10.1.2 J2EE 1.3 Compatible и без Spring 2.5.x очень было бы мне тоскливо, без тех самых template для всего и вся.

С Oracle Application Server дела не имел, видимо это еще хуже чем WL. :-(

Что до темплейтов, то IMHO это костыль, к тому же крайне кривой. Есть ли в Java костыль лучше - не знаю, не обнаружил. А вне Java те же вещи делаются естественней. Даже Python Django смотриться как сказка, несмотря на его недостатки.

короче новость хорошая, очень рад, хотя пользоваться может и не придется, так как слезть с Oracle 10.1.2 получится не скоро :-(

А что, Spring 3.0 нельзя засадить вместо Spring 2.5, если софт крутится на OAS? Гибло..

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

rtvd ★★★★★
()
Ответ на: комментарий от StDog

И как они там разруливают отображение данных зависящих от пользователя и транзакции, просто интересно поржать.

wfrr ★★☆
()
Ответ на: комментарий от rtvd

>>>>> Я люблю Spring особенной любовью, потому что он, лично у меня украл часов 40 времени из-за своей уникальной кривоты.

может у вас просто руки кривые или вы - просто плохой программист?

zapruder
()
Ответ на: комментарий от zapruder

>>>>> Я люблю Spring особенной любовью, потому что он, лично у меня украл часов 40 времени из-за своей уникальной кривоты.

может у вас просто руки кривые или вы - просто плохой программист?

Мощно сказал. :-) В прямоте моих рук нет сомнений ни у меня, ни у тех, кто со мной работал. А что до любителей спринга, не знающих даже сколько бит в байте... Дипломатично промолчу.

rtvd ★★★★★
()
Ответ на: комментарий от rtvd

>Что до темплейтов, то IMHO это костыль, к тому же крайне кривой. Есть ли в Java костыль лучше - не знаю, не обнаружил. А вне Java те же вещи делаются естественней. Даже Python Django смотриться как сказка, несмотря на его недостатки.

grails же ;)

thevery ★★★★
()

s/когад/когда/
s/Подйдут/Подойдут/

php-coder ★★★★★
()
Ответ на: комментарий от anonymous

>Спринг ненужен. Все можно написать и без него. Вот все орут про то что Спринг легкая альтернатива ЕЖБ. А эти люди ЕЖБ то вообще видели?

Нужен. Но несомненно не всем, а именно тем, кто его умеет готовить. Можно написать и без него. Но писать свой IOC как минимум убыточно. Спринг не альтернатива EJB, и не легкая. Зато как минимум легко масштабируем и легко переносим. Я видел EJB. Полезная вещь, особенно когда нужна поддержка кластерной сессии. Но когда его суют везде и всюду - попахивает фанатизмом.

Я даже скажу больше - спринг испортил жава программистов. Они суют его куда надо и куда ненадо.

Чушь полная. Суют куда попало EJB и JSF. А еще заметил закономерность - везде где проектом руководит кул j2ee гуру - NetBeans Only, EJB only, JSF Only. Причем без учета применимости.

Изза этого куска дерьма городятся тонны ненужных наслоений. Если кому и нужен ИОЦ контейнер - так пускай возьмут чтото легковесное. пико/микро контейнер тот же не вчера придуман.

Ну да, только это пико/микро большой риск для интырпрайза.

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

Быдлокодеры выбирают как раз таки делфи и JSF. Потому что там не нужно думать об MVC и принципах того что программируешь впринципе. А хреновый перфоманс лечат парочкой-другой дополнительных серверов. В стиле J2EE.

keeper-andrew
()
Ответ на: Маразм - это юзать спринг от wfrr

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

О блин узнаю высеры EJB-шников. Кроме гласфиша для вас контейнера не существует, кроме NetBeans все не кошерно, а для сайта кошки Васи Пупкина непременно нужен EJB, JSF и richfaces c seam. Понимаю - зато хорошо продается :)

keeper-andrew
()
Ответ на: Spring rules? Ага, конечно от rtvd

Опыт спринга 3 года.

1. «Хорошей практикой» считается использовать конструкторы без параметров. Почему хорошей? Объект, созданный через пустой конструктор и далее собираемый через сеттеры изначально не готов к работе. Забыл сеттер - сборка накрылась медным тазом, программа сдохла на пол-пути во время исполнения. Так почему же все-таки рекомендуют именно этот вариант? Ответ прост: даже при ленивой инициализации, спринг не в состоянии собрать элементарые связки бинов. Если идут бин А а потом бин Б, и А требует в конструкторе Б а Б хочет засеттить А, то мегамощный спринг не понимает, что сначала надо собрать Б, потом А, а потом засеттить А в Б. Тупо говорит что нельзя разрулить зависимости. Но меняешь порядок бинов в конфиге - работает. Вот красота! Крутым декларативность не нужна. :-)

Чушь полная. Спринг знает и умеет определять что создать первым а что потом... А уже если ты попутал с циклическими ссылками то ты ССЗБ. Более того аналогов aop:proxy ни в одном контейнере не существует! Благодаря чему в том же самом JSF многие вещи делаются через Ж. и все бины или искуственно держатся в сессии или постоянно висят в сессии. Спринг умеет проверять что required а что нет. так что сеттер не пропустишь. Подробности - кури мануалы.

3. Тьма народу, пишушего на EJB даже не задумывалась над вопросом «а оптимален ли этот путь в данном конкретном случае?». Уверен, есть даже дауны, что для запуска программ по простенькому графику пишут мощную J2EE приблуду на коммерческом сервере приложений. Вменяемые же просто добавляют строчку в crontab.

Народу на EJB впринципе думать противопаказано. Санки за них уже все решили. Вместо кронтаба можно использовать спринговый крон. Хотя каждой задаче своя пилюля.

keeper-andrew
()
Ответ на: комментарий от rtvd

>>>> В прямоте моих рук нет сомнений ни у меня, ни у тех, кто со мной работал.

у меня есть сомнения

zapruder
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.