Giriş 
Şu satırı dahil ederiz.
FactoryBean Nedir?
Açıklaması şöyle. Yani belirtilen tipten bir nesne yaratır ve bu nesne bean kabul edilir. Dolayısıyla @Autowired olarak inject edilebilir.
Şu satırı dahil ederiz.
import org.springframework.beans.factory.FactoryBean;The object created by the FactoryBean are managed by Spring, but not instantiated or configured by Spring.Döndürdüğümüz nesne tipini @Autowire olarak kullanabiliriz.
FactoryBean Nedir?
Açıklaması şöyle. Yani belirtilen tipten bir nesne yaratır ve bu nesne bean kabul edilir. Dolayısıyla @Autowired olarak inject edilebilir.
A FactoryBean is an interface that you, as a developer, implements when writing factory classes and you want the object created by the factory class to be managed as a bean by Spring...
getObject() metodu
Örnek
Şöyle yaparız. MessageDigest nesnesi artık @Autowired olarak kullanılabilir. Burada isSingleton() true dönüyor
Şöyle yaparız.
Örnek
Şöyle yaparız. MessageDigest nesnesi artık @Autowired olarak kullanılabilir. Burada isSingleton() true dönüyor
public class MessageDigestFactoryBean implements FactoryBean<MessageDigest>{
    private String algorithmName = "MD5";
    private MessageDigest messageDigest = null;
  @Override
  public MessageDigest getObject() throws Exception {
    return messageDigest;
  }
  @Override
  public Class<?> getObjectType() {
    return MessageDigest.class;
  }
  @Override
  public boolean isSingleton() {
    return true;
  }
  @PostConstruct
  public void postConstructHandler() throws NoSuchAlgorithmException {
    messageDigest = MessageDigest.getInstance(algorithmName);
  }
  public void setAlgorithmName(String algorithmName) {
    this.algorithmName = algorithmName;
  }
}Şöyle yaparız.
ublic class SearcherFactory implements FactoryBean<Searcher> {
  @Override
  public Class<Searcher> getObjectType() {
    return Searcher.class;
  }
    .... 
}
Bu metod true döndürürse getObjet() metodu bir kere çağrılır. Bu metod false döndürürse bean prototype kabul edilir ve getObject() metodu her seferinde çağrılır.
Örnek
Şöyle yaparız.
Örnek
Şöyle yaparız.
public boolean isSingleton() {
  return true;
} 
Hiç yorum yok:
Yorum Gönder