Giriş
Şu satırı dahil ederiz
import org.springframework.beans.factory.BeanFactoryAware
;
Aware kelimesi ile biten bazı Spring arayüzleri var. Bunlar şöyle.
ApplicationContextAwareAware kelimesi ile biten bu arayüzleri gerçekleştiren sınıflar setter() metodları ile Spring'in iç mekanizmasına erişebiliyorlar. Yani kendi sınıfım FooAware arayüzünü gerçekleştiriyorsa - Foo Spring içindeki bir mekanizma olsun - setFoo() şeklindeki bir metod ile Foo'ya erişebiliyorum.
BeanFactoryAware
BeanNameAware
Bu sınıf ile BeanFactory nesnesi atanıyor.
setBeanFactory metodu
Açıklaması şöyle.
Şöyle yaparız.
Şöyle yaparız.
Lifecycle
Bean Lifecycle yazısına bakabilirsiniz.
Açıklaması şöyle.
Beans might need access to the bean factory that created it, say to call any service from the bean factory.Örnek
Should you need to obtain a reference to the bean factory, implement the BeanFactoryAware interface. This interface provides the setBeanFactory() method.
Şöyle yaparız.
@Component
public class BeanPropertiesUtil implements InitializingBean, BeanFactoryAware {
private BeanFactory beanFactory;
@Override
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
this.beanFactory = beanFactory;
}
...
}
ÖrnekŞöyle yaparız.
public class TestBeanFactoryAware implements BeanFactoryAware {
@Override
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
System.out.println("[TestBeanFactoryAware] " +
beanFactory.getBean(TestBeanFactoryAware.class).getClass().getSimpleName());
}
}