728x90
project-v2 구성하기
build.gradle
plugins {
id 'org.springframework.boot' version '3.0.2'
id 'io.spring.dependency-management' version '1.1.0'
id 'java'
}
group = 'hello'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
- 스프링 부트에서 다음 라이브러리를 선택했다.
- Lombok
- Spring Web
HelloController
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "hello";
}
}
자동 구성 라이브러리 사용하기
- libs 폴더를 생성
- memory-v2 프로젝트에서 빌드한 memory-v2.jar 를 이곳에 복사
- project-v2/build.gradle 에 memory-v2.jar 를 추가
build.gradle
dependencies {
implementation files('libs/memory-v2.jar')
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
- 라이브러리를 파일로 직접 가지고 있으면 files 로 지정하면 된다.
- gradle을 리로드하자.
라이브러리 설정

- 앞서 project-v1 에서는 memory-v1 을 사용하기 위해 스프링 빈을 직접 등록했다.
- project-v2 에서 사용하는 memory-v2 라이브러리에는 스프링 부트 자동 구성이 적용되어 있다. 따라서 빈을 등록하는 별도의 설정을 하지 않아도 된다.
- -Dmemory=on 옵션만 주게 되면 자동 설정이 적용되는것을 확인할 수 있다.
- -Dmemory=on 조건을 끄면 라이브러리를 사용하지 않는 것도 확인할 수 있다.
정리
- 스프링 부트가 제공하는 자동 구성 덕분에 복잡한 빈 등록이나 추가 설정 없이 단순하게 라이브러리의 추가만으로 프로젝트를 편리하게 구성할 수 있다.
- @ConditionalOnXxx 덕분에 라이브러리 설정을 유연하게 제공할 수 있다.
- 스프링 부트는 수 많은 자동 구성을 제공한다. 그 덕분에 스프링 라이브러리를 포함해서 수 많은 라이브러리를 편리하게 사용할 수 있다
728x90
'스프링 부트(핵심 원리와 활용)' 카테고리의 다른 글
| Ch04. 자동 구성(Auto Configuration) - 정리 (0) | 2023.03.10 |
|---|---|
| Ch04. 자동 구성(Auto Configuration) - 자동 구성 이해 (0) | 2023.03.10 |
| Ch04. 자동 구성(Auto Configuration) - 자동 구성 라이브러리 만들기 (0) | 2023.03.10 |
| Ch04. 자동 구성(Auto Configuration) - 순수 라이브러리 사용하기 (0) | 2023.03.10 |
| Ch04. 자동 구성(Auto Configuration) - 순수 라이브러리 만들기 (0) | 2023.03.10 |