Giriş
Şu satırı dahil ederiz.
Açıklaması şöyle
Açıklaması şöyle. Yani @Bean bir producer, @Autowired ise consumer olarak düşünülebilir.
Açıklaması şöyle. Çağrılmasını istediğimiz metodu belirtmek için @PreDestroy da kullanılabilir
Şu satırı dahil ederiz.
import org.springframework.context.annotation.Bean;
Metod Seviyesinde KullanılırAçıklaması şöyle
This annotation is used at the method level. The @Bean annotation works with @Configuration to create Spring beans.@Autowired İle Farkı
Açıklaması şöyle. Yani @Bean bir producer, @Autowired ise consumer olarak düşünülebilir.
@Bean tells Spring 'here is an instance of this class, please keep hold of it and give it back to me when I ask'.Bu anotasyon sayesinde kendi sınıfımza anotasyon eklemek zorunda kalmıyoruz. Eskiden şöyle yapardık.
@Autowired says 'please give me an instance of this class, for example, one that I created with an @Bean annotation earlier'.
@Component
public class MyClass{
public MyClass (){
...
}
}
destroyMethod AlanıAçıklaması şöyle. Çağrılmasını istediğimiz metodu belirtmek için @PreDestroy da kullanılabilir
In other words, if you don't specify destroyMethod, but the bean has a public close() or shutdown() method, it will be automatically used as the destroy-method
Örnek
Şöyle yaparız.
Şöyle yaparız.
Belirtilen isme sahip bean yaratır. Bu bean'e kodun diğer yerlerinde @Autowired + @Qualifier ile erişilir.
Örnek
Şöyle yaparız.
Aynı tipten farklı isime sahip 3 tane bean yaratmak için şöyle yaparız.
@Bean(initMethod="start",destroyMethod="stop")
public org.h2.tools.Server h2WebConsonleServer () throws SQLException {
return org.h2.tools.Server.createWebServer("-web","-webAllowOthers","-
webDaemon","-webPort", "8082");
}
initMethod AlanıŞöyle yaparız.
@Bean(initMethod = "doProvision")
public Provisioner provisioner() {
return new Provisioner();
}
name AlanıBelirtilen isme sahip bean yaratır. Bu bean'e kodun diğer yerlerinde @Autowired + @Qualifier ile erişilir.
Örnek
Şöyle yaparız.
@Configuration
@ComponentScan({"my.packages"})
public class AppManager {
@Bean(name = "jmxExporter")
public Exporter jmxExporter() {
return new Exporter();
}
}
ÖrnekAynı tipten farklı isime sahip 3 tane bean yaratmak için şöyle yaparız.
@Service("Service-A")
public class SampleService {
public String doSomething() { return "Foo"; }
}
@Configuration
public class SampleConfig {
@Bean(name = {"Service-B", "Service-C"})
public SampleService createMirroredService(@Autowired SampleService service) {
return service;
}
}
Hiç yorum yok:
Yorum Gönder