Ответ
В современных Spring-приложениях рекомендуется отказаться от XML-конфигурации в пользу конфигурации на основе Java-кода (JavaConfig) или аннотаций.
Почему?
- Читаемость и поддержка: Java-код типобезопасен, его проще рефакторить и понимать.
- Меньше шаблонного кода: Аннотации (
@Component,@Service,@Autowired) делают конфигурацию декларативной. - Лучшая интеграция с IDE: Поддержка навигации, автодополнения и проверки типов.
Пример JavaConfig (@Configuration):
@Configuration
@ComponentScan("com.example")
public class AppConfig {
@Bean
public MyService myService(MyRepository repository) {
return new MyServiceImpl(repository);
}
}
Пример конфигурации через аннотации:
@Service
public class MyServiceImpl implements MyService {
private final MyRepository repository;
@Autowired // Опционально в Spring 4.3+
public MyServiceImpl(MyRepository repository) {
this.repository = repository;
}
}
XML-конфигурация (applicationContext.xml) считается устаревшим подходом для новых проектов, но может сохраняться в legacy-системах.