2014-12-04 3 views
0

У меня есть проект java eclipse и под/src/main/java (пакет com.xxx.yyy). У меня также есть несколько тестовых классов в/src/test/java (в пакете com.xxx.yyy). Класс test (который аннотируется как public-класс @Service (value = "sampleclient") publicClickClient {...} , вызывается кодом фреймворка, расположенным в одном из пакетов в/src/main/java.Сканирование весеннего компонента через

Сканирование компонентов отлично работает, если все файлы/пакеты находятся под/src/main/java. Но он игнорирует пакеты, которые у меня есть под/src/test/java.

Как заставить пружину сканировать компоненты (пакеты) по нескольким каталогам?

+0

Почему вы вызываете тестовый код из вашего производственного кода? – Foxsly

+0

Чтобы перефразировать вопрос - как можно настраивать параметры конфигурации сканирования весны в разных каталогах/classpath? – vv2014

ответ

1

Я бы порекомендовал вам использовать систему сборки maven или gradle, которая имеет четкую демаркацию между исходным кодом и тестовым кодом и как она должна использоваться в сборке life cycle. Это означает, что вы сможете использовать любые тестовые классы во время фазы тестирования и проигнорировать после этого. Вы также можете управлять зависимостями теста.

0
<context:component-scan base-package="x.y.z.prod.service, x.y.z.test.service" /> 
+0

Он работает, когда xyzprod.service и xyztest.service находятся под одним и тем же каталогом/src/main/java, но если вы поместите xyztest.service в/src/test/java, то проверка компонента не подбирает его, что мой оригинальный вопрос ... Что я делаю неправильно? – vv2014

+0

Попробуйте это .... есть 2 отдельных файла конфигурации пружины. В одном выполните проверку компонентов тестовых классов, а в другом (я называю это основным) импортируйте другой. И в основной конфигурации выполните проверку компонентов классов prod. – Arun

Смежные вопросы