Spring IoC контейнер: обзор Bean, создание экземпляра Bean с помощью статического фабричного метода
При определении bean-компонента, создаваемого с помощью статического метода фабрики, используйте атрибут class, чтобы указать класс, содержащий статический метод фабрики, и атрибут с именем factory-method, чтобы указать имя самого метода фабрики. Вы должны иметь возможность вызывать этот метод (с необязательными аргументами, как описано ниже) и возвращать живой объект, который впоследствии обрабатывается, как если бы он был создан с помощью конструктора. Одним из применений такого определения компонента является вызов статических фабрик в унаследованном коде.
Следующее определение bean-компонента указывает, что bean-компонент создается путем вызова метода фабрики. Определение не указывает тип (класс) возвращаемого объекта, только класс, содержащий фабричный метод. В этом примере метод createInstance() должен быть статическим методом. В следующем примере показано, как указать фабричный метод:
<bean id="clientService"
class="examples.ClientService"
factory-method="createInstance"/>
В следующем примере показан класс, который будет работать с предыдущим определением компонента:
Java
public class ClientService {
private static ClientService clientService = new ClientService();
private ClientService() {}
public static ClientService createInstance() {
return clientService;
}
}
Kotlin
class ClientService private constructor() {
companion object {
private val clientService = ClientService()
fun createInstance() = clientService
}
}
Читайте также:
- Spring IoC контейнер: обзор Bean, создание экземпляра Bean с помощью конструктора
- Spring IoC контейнер: обзор Bean, именование Beans
- Spring IoC контейнер: обзор Bean, создание экземпляра Bean
Комментарии
Отправить комментарий