Ответ
Java-конфигурация в Spring — это типобезопасная альтернатива XML, использующая аннотации @Configuration и @Bean.
Базовый пример:
@Configuration // Указывает, что класс содержит конфигурацию бинов
public class AppConfig {
@Bean // Результат метода регистрируется как bean в Spring Context
public MyService myService() {
return new MyServiceImpl();
}
@Bean
public DataSource dataSource() {
return new DriverManagerDataSource("jdbc:h2:mem:testdb", "sa", "");
}
@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource) { // Внедрение зависимости
return new JdbcTemplate(dataSource);
}
}
Ключевые преимущества перед XML:
- Типобезопасность и рефакторинг: Ошибки конфигурации обнаруживаются на этапе компиляции.
- Гибкость: Можно использовать любую Java-логику при создании бина.
- Условная конфигурация: Аннотации
@Profile,@ConditionalOnPropertyи другие.
Импорт конфигураций:
@Configuration
@Import({DatabaseConfig.class, SecurityConfig.class}) // Импорт других @Configuration классов
@ComponentScan("com.example.services") // Сканирование пакетов на наличие @Component
public class MainConfig {
}