Я только что подал ошибку в системе ошибок Spring (https://jira.springsource.org/browse/SPR-8551), но я все еще не уверен, что что-то упустил
Я обнаружил проблему с <context:component-scan/>
в этом утверждении.Учитывая два следующих класса, которые находятся в одном и том же JAR в WEB-INF / lib веб-приложения (файл JAR имеет структуру каталогов):
test / TheBean.java:
package test;
@Component
public class TheBean{
}
test / BeanSearcher.java:
package test;
public class BeanSearcher{
public void init(){
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
ctx.scan("test");
ctx.refresh();
TheBean b= ctx.getBean(TheBean.class);
// What is the value of b?
}
}
Если я запускаю new BeanSearcher().init()
в тестовом примере jUnit или в другом типе отдельного приложения, b получает назначенный экземпляр TheBean, но если я его запускаю,скажем, в JSP ctx.getBean()
возвращает ноль.
Итак, я делаю что-то не так или не принимаю что-то во внимание, это просто ошибка ...?
РЕДАКТИРОВАТЬ 8/ 8/2011: Кажется, это работает хорошо, когда я пытался упростить проблему, но, тем не менее, когда я пытаюсь заставить ее работать, при инициализации OpenCms это не удается.Сейчас я пытаюсь найти различия между рабочими версиями и той, которая не работает.(Загрузчик классов, использование соответствующих классов в разных JAR-файлах или непосредственно в WEB-INF / классах, вызовы через рефлексию и т. Д.)