Pull to refresh

Spring IoC Annotation-based configuration, часть 2

Reading time 4 min
Views 43K
Java *
В предыдущей статье я рассказал об основных аннотациях Spring IoC, однако есть еще несколько интересных вещей, о которых хотелось бы поведать.
Для, тех, кто не в курсе, что такое Spring Framework предлагаю почитать вот эту статью.

Читать дальше →
Total votes 6: ↑5 and ↓1 +4
Comments 3

Система безопасности Campus.ru

Reading time 7 min
Views 2.4K
Creative Media corporate blog
При разработке почти любого программного продукта рано или поздно перед разработчиками встает проблема ограничения доступа. Например, в веб-приложении некоторые страницы могут быть доступны только администраторам или только зарегистрированным пользователям. В проекте Campus.ru такое разграничение доступа обеспечивается библиотекой Spring Security.

Spring Security работает со статическими ролями, которые определяются через URI при каждом запросе со стороны HTTP-клиента. Но как быть с динамическими ролями, которые меняются в зависимости от отношений между текущим пользователем и запрашиваемым объектом (например, роль автора по отношении к статье)?
Читать дальше →
Total votes 30: ↑23 and ↓7 +16
Comments 20

Scala: Кэширование результатов исполнения методов

Reading time 4 min
Views 2.4K
Scala *
Иногда возникает необходимость кэширования результатов исполнения методов. Одно из возможных решений для java описано здесь. Всё, в принципе, тривиально: EHCache, Spring AOP для перехвата вызовов, немножко кода.

Рассмотрим, как мне кажется, более элегантное решение на scala.
Читать дальше →
Total votes 2: ↑2 and ↓0 +2
Comments 2

Конференция SpringOne 2GX — новинки от SpringSource

Reading time 2 min
Views 916
Java *
Проходящая сейчас (и почти уже закончившаяся) в Новом Орлеане конференция SpringOne 2GX — отличный повод поговорить о том, чем нас радовал SpringSource в последнее время и порадует в ближайшем будущем.

SpringOne 2GX — это ежегодная конференция, проводимой компанией SpringSource. Так как относительно недавно SpringSource стал счастливым обладателем технологий Groovy и Grails, в этом году конференции SpringOne и 2Gx решили объединить в одну.

Под хабракатом - детали
Total votes 27: ↑24 and ↓3 +21
Comments 14

Релиз открытого Java-фреймворка Spring 3.0

Reading time 1 min
Views 3.4K
Java *
Коллектив SpringSource, недавно вошедший в состав компании VMWare, выпустил первый релиз новой ветки популярного Java-фреймворка Spring 3.0, выступающего в роли свободной альтернативы Enterprise JavaBeans. Исходные тексты Spring доступны в рамках лицензии Apache 2.0. Одновременно доступно обновление инструментария SpringSource Tool Suite, который теперь поддерживает всю новую функциональность Spring 3.0.

Основные новшества Spring 3.0:
  • Полная оптимизация под Java 5: первое поколение Spring, требующее Java 5 или выше, синтаксис Java 5 применяется везде в Spring API и во всём коде реализации;
  • Новый язык выражений SpEL (Spring expression language): парсер выражений ядра для использования в бин-определениях (bean definitions);
  • Расширенная поддержка компонентов на базе аннотаций: ключевые возможности проекта Spring JavaConfig теперь доступны и в самом Spring;
  • Мощная модель стереотипов: создание «коротких» аннотаций через использование мета-аннотаций;
  • Стандартизованные аннотации с внедрением зависимостей (dependency injection): присутствие начальной поддержки пока не полностью готового стандарта JSR-330 для внедрения зависимостей в Java;
  • Декларативная модель валидации на основе ограничивающих аннотаций;
  • Расширенная поддержка связующих средств и средств форматирования;
  • Глобальная поддержка архитектурного стиля REST;
  • Прямое отображение объект/XML (OXM);
  • Полная поддержка Portlet 2.0;
  • Абсолютно новые возможности планирования: новые механизмы триггеров и TaskScheduler с первоклассной поддержкой cron;
  • Поддержка Java EE 6.
Читать дальше →
Total votes 36: ↑31 and ↓5 +26
Comments 19

Делаем простое веб приложение на Spring Framework MVC

Reading time 13 min
Views 251K
Java *
image
В данной статье я хочу рассказать начинающим Java разработчикам, как написать простое веб приложение, используя популярный фреймворк Spring Framework.

При разрабокте приложения мы будем использовать утилиту Ant для автоматизации действий и изучим, как писать простой тест с помощью библиотеки JUnit. Весь код будем писать в Eclipse IDE.

Статья написана на основе первой части руководства «Introduction to Spring MVC». Вам достаточно иметь лишь общее представление о Spring, чтобы прочитать статью с пользой.

Так что милости просим :)
Читать дальше →
Total votes 56: ↑43 and ↓13 +30
Comments 81

Spring в действии — пробуем opensource CMS на Java

Reading time 5 min
Views 32K
Java *
В данной статье речь пойдёт о системе управления содержимым Riot, написанной на Java. Система основана на Spring Framework, использует Ajax.

web developer at work

Я приведу основные возможности системы и пошагово расскажу, как её установить. Статья адресована всем тем, кто интересуется системами управления содержимым на Java.
Читать дальше →
Total votes 43: ↑39 and ↓4 +35
Comments 20

Свое представление (view) в Spring MVC

Reading time 5 min
Views 15K
Java *
Если вы работали с Spring MVC то наверняка обращали внимание, что он поддерживает множество различных представлений (view), которые позволяют генерировать pdf, excel, csv использовать jstl, freemarker, velocity и jasperReports. Но что делать если вам потребовалось заполнить какой либо документ в формате docx по шаблону и передать его пользователю? С одной стороны можно в методе воспользоваться доступом к стандартному response и если планируется использовать такую генерацию множество раз, то вынести ее в отдельный класс. Но такое решение не слишком изящно и нарушает MVC-паттерн.
Что можно сделать чтобы этого не происходило?
Total votes 20: ↑19 and ↓1 +18
Comments 20

Hivext Cloud Platform — Архитектура низкого уровня

Reading time 4 min
Views 1.9K
Cloud computing *

В этой статье будет описано архитектурное решение низкого уровня облачной платформы Hivext, а именно уровня дата центров и взаимодействия между собой серверов разного типа.
Напомним, что проект Hivext — предназначен для более эффективного использования ресурсов (временных и финансовых) при разработке “богатых” интернет приложений (Rich Internet Application) и предоставляет широкий набор готовых взаимосвязанных сервисов.
Благодаря компании IT-GRAD мы получили возможность бесплатного разворачивания дополнительной копии платформы в Питерском дата центре (ДЦ). Нам выделили виртуальный хостинг на базе VMware vSphere 4. Работать с таким хостингом можно и через веб интерфейс и через десктоп клиент, все довольно удобно.

На данный момент Hivext развернута в 3-х территориально разнесенных ДЦ: Киев (Украина), Житомир (Украина) и Санкт-Петербург (Россия). Конфигурация платформы внутри каждого ДЦ построена по определенной структуре.

Предлагаю, так сказать, заглянуть под капот нашей платформы.
Читать дальше →
Total votes 24: ↑20 and ↓4 +16
Comments 16

Интеграция с «Социальными» сервисами при помощи Spring-Social

Reading time 2 min
Views 6.6K
Java *
image
Не так давно копилка проектов SpringSource пополнилась еще одним проектом — Spring-Social, который призван упростить создание приложений интегрированных с различными социальными сетями. Данный проект никак не засветился на Habr-е, попробую восполнить этот пробел.
Читать дальше →
Total votes 33: ↑29 and ↓4 +25
Comments 6

Как обновить статус в Facebook, LinkedIn & Twitter при помощи spring-social

Reading time 9 min
Views 6.6K
Java *
Не так давно я уже писал о новом проекте SpringSource: spring-social. Сегодня я хочу рассказать (вернее показать на примере) как можно данную библиотеку использовать. В качестве примера используется простейшее приложение, которое позволяет залогиниться во все три сервиса и обновлять статус одновременно во всех трех (осторожно — под катом много букв и кода и совсем нет картинок).
imageimageimageimage
Читать дальше →
Total votes 11: ↑6 and ↓5 +1
Comments 7

Учимся готовить: Spring 3 MVC + Spring Security + Hibernate

Reading time 12 min
Views 352K
Java *
Добрый день! Меня зовут Антон Щастный.

Это моя очередная статья, посвящённая разработке веб приложений на Java. Хочу предложить вам сделать небольшую систему учёта клиентов, написанную с использованием фреймворка Spring и библиотеки Hibernate.

Что будет в приложении:


Будет простой менеджер контактов, позволяющий добавлять в базу новые записи, просматривать имеющиеся, удалять ненужные. Сведения будут храниться в базе данных. Доступ к приложению – через веб, с аутентификацией и авторизацией пользователей.

Что будем использовать:


  • веб фреймворк Spring MVC,
  • фреймворк Spring Security,
  • ORM библиотеку Hibernate,
  • MySQL в качестве СУБД.

Инфраструктура:
  • редактор SpringSource Tool Suite,
  • сборщик проектов Maven,
  • система логгирования Log4j,
  • постоянное подключение к интернету.


В моей предыдущей статье о Spring MVC был упущен ряд моментов по использованию аннотаций в Java-коде и применению Maven для сборки проекта. В данной статье я попытался исправить упущение.

Цель статьи – показать начинающим веб разработчикам совместное использование различных технологий платформы Java.

Читать дальше →
Total votes 43: ↑41 and ↓2 +39
Comments 52

Spring Framework без XML… совсем!

Reading time 15 min
Views 53K
Java *
Translation
В свете нынешней эпохи определения всего и вся аннотациями предлагаю вам статью о Spring Framework и возможностях аннотирования проектов. Прим. перев.
В начале был EJB 2.1, с его огромным количеством XML-файлов везде где только можно. Не будет особым преувеличением, если сказать, что на одну строку кода для бизнес-логики нужно было написать по крайней мере 10 строк кода от фреймворка и две страницы XML. Локальные и удалённые интерфейсы, ручной JNDI-lookup, многоуровневые try-catch, проверки на RemoteException… enterprise, в-общем. Даже инструменты соответствующие были для автоматической генерации всей этой «кухни».
Читать дальше →
Total votes 43: ↑36 and ↓7 +29
Comments 92

Кеширование в Spring Framework 3.1

Reading time 3 min
Views 28K
Java *
Я могу ошибаться, но мне кажется что всем хорошо известный Spring Framework достиг своей вершины к версии 2.5 (когда внедрили активное использование аннотаций) и дальше идет по сути дела «полировка» — даже major-релиз 3.0 не сильно отличается от 2.5. Тоже самое можно сказать и про грядущий 3.1 — небольшие улучшения, фишечки — но не более того. Однако одна «фишечка» в 3.1 показалась мне особенно интересной — это кеширование.
image
Читать дальше →
Total votes 43: ↑39 and ↓4 +35
Comments 12

Знакомство с АОП

Reading time 10 min
Views 123K
Programming *

Парадигмы программирования


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

У каждой парадигмы есть свои особенности, однако, главным фактором, различающим их, является понятие основной единицы программы. Вот самые популярные из них:
  • инструкция (императивное программирование, FORTRAN/C/PHP),
  • функция (функциональное программирование, Haskell/Lisp/F#/Scala),
  • прототип (прототипное программирование, JavaScript),
  • объект (объектно-ориентированное программирование, С++/Java),
  • факт (логическое программирование, PROLOG).

Стоит заметить, что в общем случае язык программирования однозначно не определяет используемую парадигму: на том же PHP можно писать как императивные, так и объектно-ориентированные программы.

В этой статье я хочу рассказать о сравнительно молодой, но крайне, на мой взгляд, полезной парадигме программирования – аспектно-ориентированном программировании.

Читать дальше →
Total votes 105: ↑101 and ↓4 +97
Comments 70

И еще раз о тестах. Подход к тестированию кода в реальной жизни

Reading time 9 min
Views 10K
Java *
Думаю, почти каждый сталкивался с таким мнением: писать тесты сложно, все примеры написания тестов даны для простейших случаев, а в реальной жизни они не работают. У меня же за последние годы сложилось впечатление, что писать тесты — это очень просто, даже тривиально*. Автор упомянутого выше комментария далее говорит, что неплохо было бы сделать пример сложного приложения и показать, как его тестировать. Попробую именно этим и заняться.

*)Писать сами тесты — действительно элементарно. Создать инфраструктуру, позволяющую легко писать тесты — чуть сложнее.

Впериот!
Total votes 31: ↑31 and ↓0 +31
Comments 31

Подход к тестированию кода в реальной жизни. Часть вторая

Reading time 9 min
Views 5K
Java *
Думаю, почти каждый сталкивался с таким мнением: писать тесты сложно, все примеры написания тестов даны для простейших случаев, а в реальной жизни они не работают. У меня же за последние годы сложилось впечатление, что писать тесты — это очень просто, даже тривиально. Продолжаю начатое в первой части.
Рад, что вы снова со мной!
Total votes 22: ↑21 and ↓1 +20
Comments 14

Использование Spring в OSGi-контейнере

Reading time 14 min
Views 46K
Java *

Вряд ли найдётся Java разработчик, который не знает что такое Spring Framework. Одними из базовых технологий данного фреймворка являются IoC контейнер и поддержка AOP. Эти технологии позволяют успешно разбивать архитектуру приложения на обособленные слои, как на уровне классов, так и на уровне компоновки объектов во время выполнения. Казалось бы, что приложение отлично структурировано на элементы/слои, но по своей сути оно остаётся монолитным. Монолитным во время выполнения (runtime)! Только в рамках данного фреймворка не существует универсальных решений этой проблемы. Чуть меньшее количество Java разработчиков слышало об OSGi. Это спецификация модульных систем для Java платформы. Использование конкретной реализации данной спецификации в качестве основы приложения позволяет сделать его модульным, как во время выполнения, так и на физическом уровне (уровне файлов). О синергии этих технологий и пойдёт речь в этой статье.
Читать дальше →
Total votes 49: ↑49 and ↓0 +49
Comments 16