mondegreen

스프링 부트 프로젝트 시 의존성 주입 스코프 본문

기타/공통프로젝트_에러로그

스프링 부트 프로젝트 시 의존성 주입 스코프

앙갱 2023. 7. 25. 01:21
반응형

application.properties 파일에 아래와 같이 작성하여 의존성을 주입할 수 있다.

 

1) implementation 'com.mysql:mysql-connector-j'
2) runtimeOnly 'com.mysql:mysql-connector-j' 

 

두 방식 모두 의존성 주입이 가능한데 다음과 같은 차이점이 있다.

 

Gradle에는 다양한 종류의 의존성 스코프가 있습니다. implementation과 runtimeOnly은 그 중 일부입니다.

  • implementation: 이 의존성 스코프는 프로젝트에 의존성을 추가하고자 할 때 가장 일반적으로 사용됩니다. 이는 주로 컴파일 시점과 런타임 시점 모두에 필요한 의존성을 추가할 때 사용됩니다. 이 스코프에 추가된 의존성은 프로젝트의 API와 구현 모두에 영향을 미칩니다.
  • runtimeOnly: 이 의존성 스코프는 해당 의존성이 런타임에만 필요하다는 것을 나타냅니다. 즉, 컴파일 시점에는 필요하지 않지만, 런타임 시점에 필요한 경우 사용됩니다. JDBC 드라이버 같은 경우는 코드 자체에는 직접적으로 참조되지 않지만 런타임에서 DB 연결을 위해 필요하기 때문에 이런 경우에 runtimeOnly를 사용하게 됩니다.

따라서 이 둘의 주된 차이는, 컴파일 시점에서 의존성이 필요한지 여부입니다. implementation은 컴파일 시점에 필요한 의존성을 제공하고, runtimeOnly는 런타임 시점에만 필요한 의존성을 제공합니다.

반응형