На фоне J2EE выглядел просто отпадно! Много идей было перенесено в JEE (ver. >= 5) Мощный, много возможностей (фактически, альтернатива JEE) Основан на правильных идеях (IoC) Хорошая инструментальная поддержка (в IDE) Широкое сообщество, много литературы и материалов Изящный 17/67
Control (IoC) Альтернативное название – Dependency Injection Компоненты приложения: Java Bean Доступны только через интерфейсы Spring выступает как контейнер для компонентов Предоставляет возможности для гибкой настройки компонентов и их взаимосвязей 18/67
…но и богатый набор инструментов для работы практически со всеми аспектами жизни Enterprise-приложения: работа с данными (JDBC, JPA) поддержка создания веб-приложений работа с транзакциями асинхронное взаимодействие авторизация и аутентификация batch и scheduling aspect-oriented programming 23/67
Веб-сервер (возьмем Jetty) Веб-клиент Выбор книг из списка и оформление заказа Административная часть: Просмотр статистики Загрузка списка книг 25/67
не хочет вести справочники вручную Справочники грузят: из СУБД других систем файлов разнообразных форматов очередей сообщений… Возникают типовые задачи: загрузка обновлений журналирование работы распараллеливание… 35/67
Инфраструктура для запуска и мониторинга пакетных задач Сведение к минимуму boilerplate-кода От разработчика нужна только логика чтения, трансформации и записи данных 36/67
Timers и Quartz Scheduler Гибкая настройка политики выполнения задач: асинхронное синхронное с пулом thread’ов… Запуск задач: по расписанию (cron и периодически) по триггерам 52/67
как обычные Spring beans По умолчанию используются JDK Proxies (только интерфейсы) Можно подключить CGLIB proxies для классов Поддержка транзакций в Spring реализована с помощью AOP 57/67
от boilerplate-кода Он содержит в себе решения для повседневных задач разработчика Enterprise-приложений Решения очень гибко настраиваются Прежде чем писать свой инструментарий – внимательно смотрим в Spring!!! 65/67