12 Aralık 2018 Çarşamba

SpringContext @Configuration Anotasyonu

Giriş
Şu satırı dahil ederiz.
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
Giriş
Açıklaması şöyle. Bu anotasyon ile işaretli sınıf aynı zamanda Bean kabul edilir.
@Configuration is a class level annotation. The class annotated with this annotation may consist of methods annotated with @Bean. Spring container invokes such methods to get the object instances, so that the container can register them as beans.
XML Dosyalarının Yerine Geçer
Açıklaması şöyle.
This annotation is used on classes that define beans. @Configuration is an analog for an XML configuration file...
AnnotationConfigApplicationContext İle İlişkisi
Bu anotasyonu kullanmak için AnnotationConfigApplicationContext nesnesi gerekir. Açıklaması şöyle.
You use @Configuration as a replacement to the XML based configuration for configuring spring beans. So instead of an xml file we write a class and annotate that with @Configuration and define the beans in it using @Bean annotation on the methods.

And finally you use AnnotationConfigApplicationContext to register this @Configuration class and thus spring manages the beans defined. 
Diğer Anotasyonlar İle İlişkisi
- Bu anotasyon sıkça @Import ve @ImportResource ile birlikte kullanılır.
- Bu sınıf sıkça @PropertySource + @Value anotasyonu ile birlikte kullanılır. Açıklaması şöyle.
We can also optionally define a custom source where we’re storing these properties, else the default location (classpath:application.properties) is looked up.
Örnek - Bean
Şöyle yaparız. Foo sınıfının anotasyon ile Spring'e tanıtılması gerekmez.
@Configuration
public class MyConfig {
  ...

  @Bean
  public Foo  foo() {
    return new Foo();
  }
  ...
}
Örnek - Property dosyası
Şöyle yaparız.
@Configuration
@PropertySource("classpath:application.properties")
@ComponentScan
public class StarterAppConfig {
}

Hiç yorum yok:

Yorum Gönder