Согласно официальному документу: < /p>
Конфигурация типа аннотации < /p>
указывает на то, что класс объявляет один или несколько методов @bean и может быть обработан
contacure, чтобы создать определения боба ... < /p>
@configuration clessure. В отличие от того, как работает весной XML. Потому что
@configuration объекты управляются как пружинные бобы в
container..
< /blockquote>
Но я также могу использовать аннотацию @configuration без @import. Я протестировал код, перечисленный ниже, и он работает, как и ожидалось. Итак, какова цель использовать @Import?public class ApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class[] getRootConfigClasses() {
return new Class[] { WebConfig.class };
}
@Override
protected Class[] getServletConfigClasses() {
return null;
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
}
webmvcconfigureradapter
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { "package.name" })
// @Import(OptionalConfig.class)
public class WebConfig extends WebMvcConfigurerAdapter {
// ...
}
optainalConfig
@Configuration
public class OptionalConfig {
@Bean(name = "myClass")
public MyClass myClass() {
return new MyClass();
}
}
service
@Service
public class MyServiceImpl implements MyService {
@Autowired
private MyClass myClass; // yes, it works
// ...
}
Подробнее здесь: https://stackoverflow.com/questions/355 ... annotation