Мы должны поделиться нашей кодовой базой с партнером для разработки, но мы не хотим раскрывать реализацию некоторых сервисов.
Скажем, у нас есть интерфейс FooService
и его реализация FooServiceImpl
.
public interface FooService
{
void doSomething();
}
@Service
public class FooServiceImpl implements FooService
{
@Override
public String doSomething();
{
...
}
}
Многие другие классы автоматически подключают эту службу и вызывают doSomething(). Например:
@Service
public class BarServiceImpl implements BarService
{
@Autowired
private FooService fooService;
@Override
public String validate();
{
fooService.doSomething();
...
}
}
Если я просто удалю FooServiceImpl
, конечно, при запуске будет выброшено NoSuchBeanException
. Если я использую @Autowired(required = false)
везде, где FooService подключается автоматически, NullPointerException
будет вызываться во время выполнения всякий раз, когда вызывается doSomething()
.
Помимо удаления тела каждого метода в FooServiceImpl вручную, есть ли другой способ обойти это?
Любая помощь приветствуется.
FooService
для работыBarServiceImpl
, не так ли? - person Adrian Shum   schedule 06.01.2017