Giriş
Şu satırı dahil ederiz.
- @EnableAutoConfiguration ve @SpringBootApplication birlikte kullanılmamalıdır! Ya birisi ya da öbürü kullanılır.
Şu satırı dahil ederiz.
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
- Bu anotasyon @SpringBootApplication tarafından otomatik olarak getirilir.- @EnableAutoConfiguration ve @SpringBootApplication birlikte kullanılmamalıdır! Ya birisi ya da öbürü kullanılır.
Bu Anotasyon Neleri AutoConfigure Edeceğini Nereden Biliyor?
Açıklaması şöyle.
Açıklaması şöyle.
On starting our application, Spring Boot checks for a specific file spring.factories in the META-INF directory of spring’s spring-boot-autoconfigure project.
Dosya spring-boot-autoconfigure-2.1.3.RELEASE.jar içinde. Bu dosyadaki org.springframework.boot.autoconfigure.EnableAutoConfiguration alanında tüm sınıflar listelenmiş durumda ve liste çok uzun
Bu listedeki her sınıfta @ConditionalOnClass anotasyonu var. Böylece bu sınıf belli koşullar yerine gelmişse AutoConfig işlemini yapıyor.
Kendi AutoConfiguration Sınıfımız
Kendi sınıfımız yazmak ta mümkün. Tek yapmamız gerek bir proje oluşturmak ve src/main/resources/META-INF/spring.factories dosyasına kendi sınıfımızın full path'ini belirterek eklemek.
Örnek
Şöyle yaparız
# Auto configure classes.org.springframework.boot.autoconfigure.EnableAutoConfiguration=\com.vishnu.boot.logging.autoconfigure.MethodExecutionTimeAutoConfiguration
exclude Alanı
Belli bir auto configuration özelliğini devre dışı bırakmak içindir. Aslında exclude işlemi için bu anotasyonu kullanmaya gerek yok. Bunun için iki yöntem var
1. application.properties kullanılabilir
Örnek
Şöyle yaparız
spring.autoconfigure.exclude=
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,
org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
2. @SpringBootApplication(exclude={...}) kullanılabilir
Örnek
Şöyle yaparız
@SpringBootApplication(exclude={GsonAutoConfiguration.class,JmxAutoConfiguratio.class}scanBasePackages = {...})
Kullanım
Ancak illaki bu anotasyonu kendimiz kullanmak istersek şöyle yaparız
Şöyle yaparız.
@EnableAutoConfiguration(exclude = { JndiConnectionFactoryAutoConfiguration.class,
DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class,
JpaRepositoriesAutoConfiguration.class,
DataSourceTransactionManagerAutoConfiguration.class })
ÖrnekŞöyle yaparız.
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class,
DataSourceTransactionManagerAutoConfiguration.class,
HibernateJpaAutoConfiguration.class})