2017-09-17 4 views
2

와 의존성을 선택 나는이 : Gradle을 및 봄 부팅 : 구현

  • 라이브러리는 X1, X2X3이, ..., XNX
  • SpringBoot에서 인터페이스를 구현 순수 인터페이스

    • 라이브러리 X 프로젝트 YGradle 4으로 작성되었으며 사용은 X

    X의 구현은 빌드 준비 클라이언트에 따라 다릅니다.

    옵션은 내가 생각하고있는 : 하나의 특정 구현

  • 포함됩니다

    • 조건부 Gradle 빌드 gradle build -Pclient=client1 종속성 모든 구현을 포함하고 런타임을 발견하고 사용 구현을 정의됩니다 구성 변수를 가지고있다.

    이제는 따라야 할 모범 사례가 무엇인가?

  • 답변

    1

    제시된 문제를 처리하는 메커니즘은 어느 정도 동일합니다. 나는이 기술 스택을 사용하여 구현뿐만 아니라 쉽게뿐만 아니라 더 신뢰할 만 한 의존성 (즉 XN)를 포함 찾기 : 런타임에 발견 하나의 특정 의존성이있다

    • 신뢰할 수 있기 때문에 - 그것은 불가능을 그 봄의 의지 엉망 뭔가 DI
    • 이 포함되어 있습니다. 단 하나의 구현 만 포함되어 있다면 수동으로 DI를 처리 할 필요가 없기 때문입니다.
    • 런타임에 단일 구현 만 사용되는 경우 - 다른 요소를 포함하는 이유는 무엇입니까?

    두 가지 중요한 여기 일 :

    • 이 (빌드 시간 동안)에 포함되어 구현에 대한 자세한 로그 메시지뿐만 아니라 제공하지만, 하나는 (런타임)를 사용
    • 는 수행 할 수 있습니다 두 가지 다른 방법으로 war 레벨 또는 dependencies 블록에 gradle합니다. 개인적으로 나는 의존성 블록에 대해 갈 것입니다 - 그것은 war을 쉽게 만들 수 있습니다.
    +0

    답변 해 주셔서 감사합니다. 나는 아직도 그 점을 생각하고있다. 아마도 여러분의 제안 (조건부 종속성)은 보안 관점에서 볼 때 더 좋을 것입니다. 그러나 릴리스 관리 관점에서 보면 더 많은 작업이 필요합니다. 각 클라이언트마다 별도의 배포판을 제공 할 것입니다. –

    +0

    @SiarheiSkavarodkin, yes. 자동화해라! – Opal