JC13 - Lecture 05. DI & Annotations
Mirantis Java Сourse 2013 (back)
Lecture 05. DI & Annotations
Java Class Loaders
Практическое задание (на занятии) #1 / Домашнее задание
Необходимо реализовать простейший DI (Dependency Injection) фреймворк.
Аннотация @Inject
:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
- Поля помеченные
@Inject
должны быть автоматически инициализированны с использованием инжектора; - если указано имя объекта -
@Inject("test-str")
, то должен грузиться объект, зарегистрированный под именем"test-str"
.
Методы класса Injector
:
public static <T> T getInstance(Class<T> clazz)
- получить представителя указанного объекта, в котором все поля помеченные аннотацие тоже проинициализированны с использованием этого метода или перегруженного варианта с дополнительным аргументом - именем объекта;public static <T> T getInstance(Class<T> clazz, String name)
;public static void bind(Class<T> clazz, T value)
- регистрация конкретного значения для указанного класса (вместо инстанциирования каждый раз);public static void bind(Class<T> clazz, T value, String name)
.
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|