Методики «Inversion of Control» и «Dependency Injection». Применение в Spring. Малышкин Фёдор ([email protected]) 27 июня 2008
Содержание
- 2. Основы. IoC. Концепция, лежащая в основе инверсии управления, часто выражается "голливудским принципом": "Не звоните мне, я
- 3. Основы. DI В самом названии закладывается смысл – зависимости не создаются вашим кодом: они внедряются контейнером.
- 4. Зависимости. Класс А Класс Б Класс А Класс Б Поля, параметры Наследование, реализация Класс А Класс
- 5. Пример 1. Login Manager. public class LoginManager { private UserList myUserList = new UserList(); ..... public
- 6. Пример 1. Недостатки. Если захочется каким-то образом изменить способ хранения пользователей, например, использовать базу данных или
- 7. Пример 1. Улучшения. public interface UserStorage { User getUserByName(String theUserName); } public class UserList implements UserStorage
- 8. Пример 1. UML. Начальная диаграмма классов.
- 9. Пример 1. UML. Диаграмма классов с вынесением зависимости.
- 10. Пример 1. Итоги. Итак, мы имеем прекрасные переносимые компоненты LoginManager, UserList, JdbcUserStorage, LdapUserStorage. Не стоит думать,
- 11. Сборка. Для использования созданных нами компонентов необходим некий класс RuntimeAssembler, который будет делать грязную работу по
- 12. Пример 2. Сборщик (Composer, Assembler). public final class SimpleSystemAssembler { public void main(String[] args) { LoginManager
- 13. Пример 2. UML.
- 14. Сборка. Итоги. RuntimeAssembler-классы не предназначены для повторного использования или наследования от них. В больших системах эти
- 15. Service Locator Альтернативой паттерну вынесения зависимости (Dependency Injection) является паттерн Service Locator. Он широко используется в
- 16. Пример 3. Service Locator // Service Locator public LoginManager() { myUserList = ServiceLocator.getUserStorage(); }
- 17. Пример 3. UML.
- 18. Пример 3. Итоги Очевидно, что в паттерне ServiceLocator есть зависимость между LoginManager и ServiceLocator, в то
- 19. Spring SpringFramework Spring Framework представляет собой набор готовых решений для использования всех основных Enterpise Java технологий
- 20. Spring. Элементы.
- 21. Пример 4. Spring Container. XML файл контейнера может быть таким: Sergei
- 22. Пример 4. Spring Container. public class HelloWorldImpl { private String myMessage; public void setMessage(String theMessage) {
- 23. Создание объектов В приведенном примере за конструирование объекта helloWorld отвечает контейнер – атрибут class элемента bean
- 24. Конструктор без параметра ....
- 25. Конструктор с параметрами 1
- 26. Фабричный метод 1
- 27. Фабрика классов 1
- 28. Установка зависимостей и свойств Возникает вопрос: "Какие типы данных могут быть установлены при помощи элемента property?",
- 29. Установка зависимостей и свойств java.util.Properties – задается элементом props, отдельные свойства добавляются при помощи вложенного элемента
- 31. Скачать презентацию