開発のためにコード ベースをパートナーと共有する必要がありますが、一部のサービスの実装を公開したくありません。
インターフェイス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
起動中に a がスローされます。@Autowired(required = false)
FooService が自動配線されているすべての場所で使用すると、呼び出されるたびに実行時に aがNullPointerException
スローされますdoSomething()
。
FooServiceImpl の各メソッド本体を手動で削除する以外に、これを回避する方法はありますか?
どんな助けでも大歓迎です。