ServiceLoader provider 발견 경로

consumer가 구현 class를 직접 import하지 않고 service를 찾는다.

  1. API module

    service interface를 exports한다

    contract
  2. Consumer

    uses를 선언한다

    lookup
  3. Provider

    provides with를 선언한다

    implementation
  4. Loader

    resolved provider instance를 돌려준다

    runtime

핵심: provider 0개·여러 개일 때 application policy를 startup에서 검증한다.