Enterprise Orta

Spring XML Bean Yapılandırması ile Açıklama Tabanlı Karşılaştırması

Ayrıntılı Spring XML bean tanımlarını Spring Boot'ta özlü açıklama tabanlı yapılandırmayla değiştirin.

✕ Spring (XML)
<!-- applicationContext.xml -->
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="userRepository"
          class="com.example.UserRepository">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <bean id="userService"
          class="com.example.UserService">
        <property name="repository" ref="userRepository"/>
    </bean>

</beans>
✓ Spring Boot 3+
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

@Repository
public class UserRepository {
    private final JdbcTemplate jdbc;

    public UserRepository(JdbcTemplate jdbc) {
        this.jdbc = jdbc;
    }
}

@Service
public class UserService {
    private final UserRepository repository;

    public UserService(UserRepository repository) {
        this.repository = repository;
    }
}
Bu kodda bir sorun mu gördünüz? Bize bildirin.
🚫

XML yok

@SpringBootApplication, bileşen taramayı ve otomatik yapılandırmayı tetikler; tüm XML bağlama dosyalarını ortadan kaldırır.

💉

Kurucu enjeksiyon

Spring, bağımlılıkları otomatik olarak kurucular aracılığıyla enjekte eder; bean'leri test etmeyi ve anlamayı kolaylaştırır.

Otomatik yapılandırma

Spring Boot, DataSource, JPA ve diğer altyapıyı classpath'ten sıfır şablon kodla yapılandırır.

Eski Yaklaşım
XML Bean Tanımları
Modern Yaklaşım
Açıklama Tabanlı Bean'ler
JDK'dan itibaren
17
Zorluk
Orta
Spring XML Bean Yapılandırması ile Açıklama Tabanlı Karşılaştırması
Mevcut

Spring Boot 1.0'dan (Nisan 2014) itibaren geniş çapta kullanılabilir; Spring Boot 3 Java 17+ gerektirir

Geleneksel Spring uygulamaları, her sınıfı ve bağımlılıklarını ayrıntılı <bean> öğeleri olarak bildiren XML yapılandırma dosyaları aracılığıyla bean'leri bağlardı. Spring 2.5'ten itibaren açıklama desteği mevcut olsa da Spring Boot otomatik yapılandırmayı tanıtana kadar XML baskın yaklaşım olmaya devam etti. Spring Boot, classpath taraması yoluyla @Component, @Service, @Repository ve @Controller ile açıklanmış bean'leri algılar, kurucu enjeksiyon yoluyla bağımlılıkları otomatik karşılar ve classpath'ten DataSource gibi altyapıyı yapılandırır — tüm XML bağlama dosyalarını ortadan kaldırır.

Paylaş 𝕏 🦋 in