В коде, в котором я играю, я видел, что несколько мест были классом @Configuration, но не определяют статический класс. Формат варьируется, но в целом что-то вроде этого:Каково использование класса @Configuration для определения другого класса @Configuration?
@Configuration
public class someAutoConfiguration {
@EnableConfigurationProperty(...)
@utoConfigureAfter(...)
@Configureation
public static class someConfiguration
{
@Autowired
//whatever needs autowired
@Bean
public myBean createBean(){
//construct bean
}
}
Это ясно, как эти бобы работает и что делает класс, но я путать две вещи, почему это необходимо, и скорее это даже после договора @configuration.
Все определение, которое я могу найти для @Configuration, говорит о том, что оно используется для определения bean-компонентов с помощью @Bean, я еще не смог найти никаких других обещаний для аннотации. Таким образом, кажется, что не было бы обещаний, что статический класс будет даже построен или признан как файл @Configuration в его собственном праве? Это ясно, и я не удивлен, что это будет, но работает ли контракт @Configuration такое поведение?
второй, в чем преимущество? Предположительно, есть некоторые причины, по которым нам нужны два класса, вместо того, чтобы удалить статический класс и поместить все его аннотации в родительский класс?
Вы можете достичь того же с '@ ComponentScan'? –
, оглядываясь назад на древний вопрос, ни один ответ не смог решить, почему этот код существует, что может быть просто потому, что код действительно был бессмысленным, как предполагал мой первый инстинкт. Вы, по крайней мере, ответили на половину моего вопроса, поэтому, взяв это, кто-то заслуживает кредита;) – dsollen