Configuration XML de Spring vs basée sur annotations
Remplace les vastes définitions de beans XML de Spring par une configuration concise basée sur annotations avec Spring Boot.
<!-- 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>
@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;
}
}
Sans XML
@SpringBootApplication active le scan de composants et l'auto-configuration, éliminant tous les fichiers de câblage XML.
Injection par constructeur
Spring injecte les dépendances via les constructeurs automatiquement, rendant les beans plus faciles à tester.
Auto-configuration
Spring Boot configure DataSource, JPA et autre infrastructure depuis le classpath sans code répétitif.
Disponible depuis Spring Boot 1.0 (avril 2014) ; Spring Boot 3 nécessite Java 17+
Les applications Spring traditionnelles câblaient les beans via des fichiers de configuration XML, déclarant chaque classe et ses dépendances comme des éléments <bean> verbeux. Bien que le support des annotations existait depuis Spring 2.5, le XML est resté l'approche dominante jusqu'à ce que Spring Boot introduise l'auto-configuration. Spring Boot détecte les beans annotés avec @Component, @Service, @Repository et @Controller via le scan du classpath, satisfait les dépendances via l'injection par constructeur automatiquement et configure l'infrastructure comme DataSource depuis le classpath — éliminant tous les fichiers de câblage XML.