Конечно, фактически Spring (IoC в целом) создан для таких решений.Сначала технический шаг: извлеките сервисы, которые предполагается разделить в библиотеку, которую вы можете перенести в разные проекты.
Теперь самое интересное: если некоторые части логики отличаются, а другие остаются прежними, используйтевнедрение зависимостей и стратегия шаблон!
@Service
public class CheckInService {
@Resource
private CheckInCleanup checkInCleanup;
public void checkIn(Doc doc) {
//...
checkInCleanup.checkIn(doc)
}
}
А теперь создайте две независимые реализации интерфейса CheckInCleanup
, индивидуальные для каждого приложения.Один удаляет файл, а второй ничего не делает.В одной заявке будет введено первое, а во втором - второе.CheckInCleanup
является частью библиотеки, включающей CheckInService
, но реализация local .Spring запустит его при запуске и введет автоматически.
Кроме того, вы только что ввели хорошее разделение проблем и повышенную тестируемость.