Поскольку вы не можете удалить принятый пост, я предлагаю вам прочитать / проголосовать за пост Ханса, что намного лучше, чем мой первоначальный: Зависимость от аннотаций Spring
При использовании аннотаций стереотипа (@Service и т. Д.) Компромисс для получения проверки bean-компонента времени компиляции заключается в том, что вы стали связанными с библиотекой Spring-context в вашем коде. Я вижу 3 немедленных варианта:
1) Удалите аннотации и настройте компоненты в формате XML.
2) Скопируйте spring-context.jar (или эквивалентную библиотеку, содержащую ваши аннотации стереотипов) в ваш проект, не относящийся к Spring, чтобы разрешить зависимости, но оставьте Spring ненастроенным, чтобы он не использовался в вашем коде.
3) Удалите аннотации из ваших конкретных классов и дополните их версиями «Spring». Этот подход может или не может быть немного агрессивным для вашего дизайна, но стоит рассмотреть:
public class MyDAO {
protected SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
// .. Your DAO code resides here ..
}
И подкласс Spring:
@Repository
public class MySpringDAO extends MyDAO {
@AutoWired
protected SessionFactory sessionFactory;
}
Таким образом, ваш проект, отличный от Spring, может использовать «MyDAO» и исключить класс «MySpringDAO» из сборки.