我们必须与合作伙伴共享我们的代码库以进行开发,但我们不想透露某些服务的实现。
假设我们有一个接口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();
...
}
}
如果我只是 delete FooServiceImpl
,当然NoSuchBeanException
会在启动时抛出 a 。如果我在任何地方都使用@Autowired(required = false)
FooService 自动装配,那么每当调用NullPointerException
时都会在运行时抛出a 。doSomething()
除了手动删除 FooServiceImpl 中的每个方法体之外,还有其他方法可以解决这个问题吗?
任何帮助表示赞赏。