Вы находитесь на странице: 1из 12

Введение

в Spring
План
• Цели Spring
• Что нужно знать перед началом
• Проекты Spring
• Понятия Inversion of Control (IoC) и Aspect-oriented programming (AOP)
• IoC контейнер
Spring
• Основная цель - упрощение разработки любых приложений на Java, разгрузка кода
• Программный код становится проще, связь между объектами слабее
• Каждый объект занимается свои делом (POJO)
• Использование принципов ООП на полную мощность
• Дополнительная логика подключается извне
• Готовые встроенные модули (работа с БД, безопасность, транзакции, авторизация, сервисы и пр.)
• Spring – огромный комплекс, который может объединить и упростить использование технологий
Что нужно знать

• ООП – все построено на интерфейсах


• JDBC API
• Maven
• XML как структура данных
Что нужно знать

• Чем больше явных связей между объектами - тем сложнее разработка (и возможно больше
ошибок)
• Использование POJO
• Слабая связь между объектами
• Внедрение зависимостей - способ связывания объектов
• Использование ООП (обязательно нужно знать!)
• Взаимодействие на уровне интерфейсов
Проекты Spring

Список проектов
http://spring.io/projects

• Spring Framework - основы • Spring Social


• Spring Boot • Spring AMQP
• Spring XD • Spring Mobile
• Spring Data • Spring for Android
• Spring Integration • Spring WebFlow
• Spring Batch • Spring WebServices
• Spring Security • Spring LDAP
• Spring Hateoas • …
Spring

IoC AOP
Aspect-oriented programming
Inversion of Control (IoC)
IoC

Автомобиль Lexus Автомобиль

Летние шины Bridgestone Летние шины

Бензин 92 Бензин

Медиасистема Sony Медиасистема

• «Жесткое» связывание • Слабые связи (на уровне абстракций)


• Трудно изменять код • Код изменять легче
• Трудно тестировать • Легко тестировать
• Трудно заменять объекты • Делегирование создания объектов
контейнеру
IoC контейнер
Основной момент IoC:
• Сначала создаете абстракцию
• Потом подставляете реализацию

Контейнер
• Управляет зависимостями
• Связывает объекты между собой
• Управляет их жизненным циклом
• Dependency Injection – в объект внедряется ссылка на другой объект
AOP

• Разделение основного функционала и Безопасность


дополнительного – без перемешивание их
между собой Транзакции
• Кеширование, логирование, транзакции,
безопасность и пр. Логирование

• Аспект - функциональность, не относящаяся


Кеширование
напрямую к бизнес логике
• Аспекты можно использовать в любых Объект 1 Объект 2 Объект 3
проектах
Spring
Основной момент:

• Создание объектов

• Настройка взаимодействия (вне объектов)

• Подключение дополнительных аспектов


Spring
• Чем больше явных связей между объектами - тем сложнее разработка (и возможно больше ошибок)

• Использование POJO

• Слабая связь между объектами

• Внедрение зависимостей - способ связывания объектов

• Использование ООП (обязательно нужно знать!)

• Взаимодействие на уровне интерфейсов

Вам также может понравиться