본문 바로가기
Lecture/김영한 - 스프링 부트 - 핵심 원리와 활용

스프링 부트 - 핵심 원리와 활용 - 자동 구성(Auto Configuration)

by Soono991 2023. 3. 12.

💡이 포스팅은 김영한 님의 인프런 강의인 스프링 부트 - 핵심 원리와 활용 수강하고 학습한 내용을 정리한 포스팅입니다.

 

김영한 님의 강의를 수강하며 정리한 GitHub Repository입니다.

 

GitHub - kiekk/inflearn-kyh-spring-boot

Contribute to kiekk/inflearn-kyh-spring-boot development by creating an account on GitHub.

github.com

 

이번 챕터에 대해 정리할 내용은 다음과 같습니다.

  • libs? lib는 안되나?
  • implementation files
  • @EnableAutoConfiguration & AutoConfigurationImportSelector

 

libs? lib는 안되나?

우리가 직접 만든 라이브러리를 추가할 때 영한님이 jar 파일의 경로를 반드시 lib가 아닌 libs 폴더에 넣어야 한다고 했었는데, 왜 꼭 libs인가에 대해 궁금했었습니다.

 

gradle 공식 문서를 참고해 보았는데, 가이드 문서에서도 libs 폴더로 만들어 추가하라고만 하고 딱히 이유에 대해서는 설명하지 않았습니다.

그냥.. 그렇게 만들었나 봅니다. 마치 gradle이 왜 gradle인지 궁금해하는 것처럼....????

https://docs.gradle.org/5.2.1/userguide/dependency_types.html#sub:file_dependencies
https://appmediation.com/how-to-add-local-libraries-to-gradle/

 

Dependency Types

File dependencies allow you to directly add a set of files to a configuration, without first adding them to a repository. This can be useful if you cannot, or do not want to, place certain files in a repository. Or if you do not want to use any repositorie

docs.gradle.org

 

How to add local libraries to Gradle - Appmediation

There is more than one way you can add AAR files to your project. For example, you can add libraries to all modules of your project or only for a single one. Or you can store all your libraries in single place and even create local maven repository and o

appmediation.com

 

implementation files

implementation에서 files() 메서드를 사용하면 프로젝트 내의 특정 경로에 있는 jar 파일을 추가할 수 있다고 합니다.

이에 관해서는 잘 정리해주신 블로그가 있어서 해당 블로그를 참고하시면 좋을 것 같습니다.

https://kwonnam.pe.kr/wiki/gradle/files

 

gradle:files [권남]

 

kwonnam.pe.kr

 

@EnableAutoConfiguration & AutoConfigurationImportSelector

Spring Boot에서는 자동 구성을 위해 @EanbleAutoConfiguration annotation을 지원합니다.

@EanbleAutoConfiguration annotation은 위와 같이 @SpringBootApplication annotaiton에 포함되어 있으며 AutoConfigurationImportSelector 클래스를 Import 하고 있습니다.

AutoConfigurationImportSelector의 selectImports 메서드를 통해 자동 구성 할 클래스 정보를 가져오게 되는데, 기본적으로는 ImportCandidates.load() 메서드를 통해 자동 구성 클래스 정보가 작성된 외부 파일을 가져오게 됩니다.

해당 내용에 대해서는 토비님의 인프런 강의 포스팅에서도 정리해 두었으니 참고하시면 좋을 것 같습니다.

 

 

토비의 스프링 부트 - 자동 구성 기반 애플리케이션

💡이 포스팅은 토비님의 인프런 강의인 토비의 스프링 부트 - 이해와 원리를 수강하고 학습한 내용을 정리한 포스팅입니다. 토비님의 강의를 수강하며 정리한 GitHub Repository입니다. GitHub - kiekk/i

soono-991.tistory.com

 

댓글