по этой ссылке:
я есть сценарийнастройка Spring Security на встроенной Jetty что кажется несколько решенным, если я использую JavaConfig для настройки сервера Jetty.
В результате, похоже, что JavaConfig, а не XML, может быть лучшим вариантом для больших кусков проекта. Тем не менее, есть некоторые тонкости в пространствах имен XML, такие как<context:component-scan />
которые не всегда доступны в@Configuration
установка.
Я обнаружил, чтоApplicationContextAware
удостоен чести за@Configuration
классы, поэтому возможно следующее
@Configuration
public class FooConfig implements ApplicationContextAware {
@Override
public void setApplicationContext(ApplicationContext applicationContext) {
((AnnotationConfigApplicationContext) applicationContext).scan("org.example");
}
}
Альтернатива, котораядокументированныйэто иметь@Configuration
класс использовать@ImportResource
аннотировать и извлекать существующий файл XML:
@Configuration
@ImportResource("applicationContext-withComponentScan.xml")
public class BarConfig {}
Я предполагаю, что вопрос "Это плохая форма, чтобы злоупотреблятьApplicationContextAware
таким образом, или это действительно не злоупотребление "? Что-то просто кажется странно грязным в подходе, так что я не удивлюсь, если ребята из Spring так или иначе расскажут об этом, чего я не заметил.
Для интересующихся проблема связана со сканированием установки Джерси с@Resource
а также@Provider
классы, которые я бы предпочел не управлять записями в конфигурации класса / XML вручную.