Я знаю, что реализация Blueprint, Aries Blueprint, использует свойство id
для сохранения уникальности bean-компонентов в его реестре (пространстве имен) bean-компонентов. Но какова связь этого идентификатора с фактическими объектами, которые создаются? Можно ли получить или сохранить этот идентификатор в самом объекте?
Например, предположим, что я хотел бы быть эффективным и использовать идентификаторы бина в качестве частного поля в каждом из классов.
Мой класс Java Bean
public class Bean() {
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
Вот единственный способ, которым я знаю, как это сделать (кроме использования конструктора arg)
<bean id="bean01" class="Bean">
<property name="name" value="bean01"/> <!-- Here I use a setter method -->
</bean>
Возможно ли удалить эту избыточность? Я там переменная представляющая "bean01"?
Свойства бобов
Документация по реализации Apache Aries Blueprint содержит следующее:
Бобам могут быть введены значения свойств. Инъекция выполняется сразу после того, как бин построен. В следующем примере создается компонент Account, а затем задается свойство description с использованием соглашения об именах Java Beans.
public class Account {
public Account(long number) { ... } public String getDescription() { ... } }
<bean id="accountOne" class="org.apache.aries.simple.Account">
<argument value="1"/>
<property name="description" value="#1 account"/>
</bean>
Что это делает value=#1
? Это не объясняется.