Spring 5 для профессионалов [5 ed.] 9785907114074

877 147 92MB

Russian Pages 1119 с. [1122] Year 2019

Report DMCA / Copyright

DOWNLOAD FILE

Spring 5 для профессионалов [5 ed.]
 9785907114074

Table of contents :
Посвящение
Об авторах
О техническом рецензенте
Благодарности
Введение. Ждем ваших отзывов!
Глава 1. Введение в Spring
Что такое Spring
Эволюция Spring Framework
Инверсия управления или внедрение зависимостей?
Эволюция внедрения зависимостей
Другие возможности, помимо внедрения зависимостей
Проект Spring
Происхождение Spring
Сообщество разработчиков Spring
Комплект Spring Tool Suite
Проект Spring Security
Проект Spring Boot
Проекты Spring Batch и Spring Integration
Другие проекты
Альтернативы Spring
JBoss Seam Framework
Google Guice
PicoContainer
Контейнер JEE 7
Резюме
Глава 2. Начало работы
Получение Spring Framework
Быстрое начало
Извлечение Spring из хранилища GitHub
Выбор подходящего комплекта JDK
Упаковка Spring
Выбор модулей для приложения
Доступ к модулям Spring в хранилище Maven
Доступ к модулям Spring из Gradle
Пользование документацией на Spring
Внедрение Spring в приложение “Hello World!”
Построение примера приложения “Hello World!”
Реорганизация кода средствами Spring
Резюме
Глава 3. Инверсия управления и внедрение зависимостей в Spring
Инверсия управления и внедрение зависимостей
Типы инверсии управления
Извлечение зависимостей
Контекстный поиск зависимостей
Внедрение зависимостей через конструктор
Внедрение зависимостей через метод установки
Выбор между внедрением и поиском зависимостей
Выбор между внедрением зависимостей через конструктор и метод установки
Инверсия управления в Spring
Внедрение зависимостей в Spring
Компоненты Spring Beans и их фабрики
Реализации интерфейса BeanFactory
Интерфейс ApplicationContext
Конфигурирование интерфейса ApplicationContext
Способы конфигурирования приложений Spring
Краткое описание простой конфигурации
Объявление компонентов Spring
Внедрение зависимостей через метод класса
Именование компонентов Spring Beans
Разрешение зависимостей
Автосвязывание компонентов Spring Beans
Когда следует применять автосвязывание
Настройка наследования компонентов Spring Beans
Резюме
Глава 4. Конфигурирование и начальная загрузка в Spring
Влияние Spring на переносимость приложений
Управление жизненным циклом компонентов Spring Beans
Создание компонентов Spring Beans
Выполнение метода при создании компонента Spring Bean
Реализация интерфейса InitializingBean
Применение аннотации @PostConstruct по спецификации JSR-250
Объявление метода инициализации с помощью аннотации @Bean
Описание порядка разрешения зависимостей
Уничтожение компонентов Spring Beans
Выполнение метода при уничтожении компонента Spring Bean
Реализация интерфейса DisposableBean
Применение аннотации @PreDestroy по спецификации JSR-250
Объявление метода уничтожения с помощью аннотации @Bean
Описание порядка разрешения зависимостей
Применение перехватчика завершения
Информирование компонентов Spring Beans об их контексте
Применение интерфейса BeanNameAware
Применение интерфейса ApplicationContextAware
Применение фабрик компонентов Spring Beans
Класс MessageDigestFactoryBean как пример фабрики компонентов Spring Beans
Непосредственный доступ к фабрике компонентов Spring Beans
Применение атрибутов factory-bean и factory-method
Редакторы свойств компонентов Spring Beans
Применение встроенных редакторов строк
Создание специального редактора свойств
Еще о конфигурировании в контексте типа ApplicationContext
Интернационализация средствами интерфейса MessageSource
Применение интерфейса MessageSource в автономных приложениях
События в приложениях
Доступ к ресурсам
Конфигурирование с помощью классов Java
Конфигурирование контекста типа ApplicationContext на Java
Смешанное конфигурирование в Spring
Выбор между конфигурированием на Java и в формате XML
Профили
Пример применения профилей в Spring
Конфигурирование профилей Spring на языке Java
О применении профилей
Абстракция через интерфейсы Environment и PropertySource
Конфигурирование с помощью аннотаций JSR-330
Конфигурирование средствами Groovy
Модуль Spring Boot
Резюме
Глава 5. Введение в АОП средствами Spring
Основные понятия АОП
Типы АОП
Реализация статического АОП
Реализация динамического АОП
Выбор типа АОП
АОП в Spring
Альянс АОП
Пример вывода обращения в АОП
Архитектура АОП в Spring
Точки соединения в Spring
Аспекты в Spring
Описание класса ProxyFactory
Создание совета в Spring
Интерфейсы для советов
Создание предшествующего совета
Защита доступа к методам с помощью предшествующего совета
Создание послевозвратного совета
Создание окружающего совета
Создание перехватывающего совета
Выбор типа совета
Советники и срезы в Spring
Интерфейс Pointcut
Доступные реализации интерфейса Pointcut
Применение класса DefaultPointcutAdvisor
Создание статического среза с помощью класса StaticMethodMatcherPointcut
Создание динамического среза с помощью класса DynamicMethodMatcherPointcut
Простое сопоставление имен методов
Создание срезов с помощью регулярных выражений
Создание срезов с помощью выражений AspectJ
Создание срезов, совпадающих с аннотациями
Удобные реализации интерфейса Advisor
Общее представление о заместителях
Применение динамических заместителей из комплекта JDK
Применение заместителей из библиотеки CGLIB
Сравнение производительности заместителей
Выбор заместителя для практического применения
Расширенное использование срезов
Применение срезов потока управления
Применение составного среза
Составление срезов и интерфейс Pointcut
Краткие итоги по срезам
Основы применения введений
Основные положения о введениях
Выявление изменений в объекте с помощью введений
Краткие итоги по введениям
Каркасные службы для АОП
Декларативное конфигурирование АОП
Применение класса ProxyFactoryBean
Применение пространства имен aop
Применение аннотаций в стиле @AspectJ
Соображения по поводу декларативного конфигурирования АОП в Spring
Интеграция AspectJ
Общее представление о AspectJ
Применение одиночных экземпляров аспектов
Резюме
Глава 6. Поддержка JDBC в Spring
Введение в лямбда-выражения
Модель выборочных данных для исходного кода примеров
Исследование инфраструктуры JDBC
Инфраструктура JDBC в Spring
Краткий обзор применяемых пакетов
Соединения с базой данных и источники данных
Поддержка встроенной базы данных
Применение источников данных в классах DAO
Обработка исключений
Описание класса JdbcTemplate
Инициализация объекта типа JdbcTemplate в классе DAO
Извлечение одиночного значения средствами класса JdbcTemplate
Применение именованных параметров запроса с помощью класса NamedParameterJdbcTemplate
Извлечение объектов предметной области с помощью интерфейса RowMapper

Polecaj historie