2023. 4. 28. 08:45ใ์ธํ๋ฐ/์คํ๋ง ๋ถํธ - ํต์ฌ ์๋ฆฌ์ ํ์ฉ
์คํ๋ง @Conditional (tistory.com)
์ ๋ฒ ๊ธ์์ ๋ง๋ ์ค์๊ฐ memory ์กฐํ ํ๋ ํ๋ก์ ํธ๋ฅผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ง๋ค์ด์ ๋ค๋ฅธ ํ๋ก์ ํธ๋ค์์๋ ์ฌ์ฉํ๊ณ ์ถ์ ๋
๋จผ์ ์คํ๋ง ๋ถํธ๊ฐ ์ ๊ณตํ๋ ์๋ ๊ตฌ์ฑ AutoConfiguration์ ์ฌ์ฉํ์ง ์๊ณ ์์ํ๊ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ค์ด ๋ณผ ๊ฒ์ด๋ค.
๐ ์ฐธ๊ณ ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ค ๋๋ ์คํ๋ง ๋ถํธ ํ๋ฌ๊ทธ์ธ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ง ์๋๋ค. (๋ค๋ฅธ ํ๋ก์ ํธ์์ ํฌํจ๋์ด ์ฌ์ฉ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ง์ ์คํ๋ ์ผ์ด ์์)
0๏ธโฃ ๋น๋ํ๊ธฐ
์ ์ ํ๋ ๋ฉ๋ชจ๋ฆฌ ํ๋ก์ ํธ์ ๋ํด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ฌ์ฉํ๊ธฐ ์ํด์ build ํ๋ค.
gradlew clean build
ํ๊ณ ๋๋ฉด build/libs/memory-v1.jar ์ด๋ฐ์์ผ๋ก jar ํ์ผ์ด ์๊ธธ ๊ฒ์ด๋ค.
1๏ธโฃ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉํด๋ณด๊ธฐ
์ผ๋จ ๋ง๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด๋ณด๊ธฐ ์ํด์ ํ๋ก์ ํธ๋ฅผ ํ๋ ์์ฑํ ๊ฒ์ด๋ค.
(๊ทธ๋ฅ ๊ฐ๋จํ๊ฒ ์คํ๋ง ๋ถํธ ํ๋ก์ ํธ ํ๋ ์์ฑํด์ฃผ๋ฉด ๋๋ค.)
๋จผ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ด์ ํด๋๋ฅผ ์์ฑํด์ผ ํ๋๋ฐ
ํ๋ก์ ํธ ๋ฐ์ ํด๋ํ๋๋ฅผ ์์ฑํด์ค๋ค.
ex) project-v1/libs
๊ทธ๋ฆฌ๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ง๋ jar ํ์ผ์ libs ํด๋ ์์ ๋ณต์ฌํด์ค๋ค.
๊ทธ ๋ค์ build.gradle์ memory-v1.jar๋ฅผ ์ถ๊ฐํด์ค๋ค.
dependencies {
implementation files('/libs/memory-v1.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'
}
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ ๊ฐ์ด ํ์ผ๋ก ์ง์ ๊ฐ์ง๊ณ ์๋ ๊ฒฝ์ฐ์๋ implementation files๋ก ์ง์ ํด์ฃผ๋ฉด ๋๋ค.
2๏ธโฃ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์ ํ๊ธฐ
์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํ ๋ค์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ ์คํ๋ง ๋น์ผ๋ก ๋ฑ๋กํด์ค์ผ ํ๋ค.
MemoryConfig
@Configuration
public class MemoryConfig
{
@Bean
public MemoryFinder memoryFinder()
{
return new MemoryFinder();
}
@Bean
public MemoryController memoryController()
{
return new MemoryController(memoryFinder());
}
}
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ฉด ๋๋๋ ๊ฒ์ด ์๋๋ผ ํ์ํ ๋น๋ค์ ๋ฑ๋กํด์ค์ผ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ํ๋ํ๋ ๋ฑ๋กํด์ค์ผ ํ๋ค.
์ด๋ ๊ฒ ๋น์ผ๋ก ๋ฑ๋กํ ๋ค์์ ์ ์์ ์ผ๋ก ๋์ํ๋์ง localhost:8080/memory ์คํํด๋ณด๋ฉด ์ ์์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์กฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ๋์ํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๐ ์์์ ๋ง๋ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ด๋ถ์ ์๋ ๋น ์ค์ ์ด๋ค ๊ฒ์ ๋ฑ๋กํด์ ์ฌ์ฉํด์ผํ๋์ง ์์์ผ ํ๊ณ , ๋ ๊ทธ๊ฑธ ํ๋ํ๋ ๋น์ผ๋ก ๋ฑ๋กํด์ค์ผ ํ๋ ๋จ์ ์ด ์๋ค. ๋ฌผ๋ก ์ง๊ธ์ด์ผ 1~2๊ฐ ์ ๋์ด๊ธฐ ๋๋ฌธ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ด๋ ต์ง ์์๋๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ฌ๋ฌ๊ฐ ๋๊ณ , ๋ ๊ทธ๊ฑธ ๋น์ผ๋ก ํ๋ํ๋ ๋ฑ๋กํด์ฃผ๋ ค๋ฉด ์๋นํ ๊ท์ฐฎ์ ์์ ์ด ๋๋ค .
'์ธํ๋ฐ > ์คํ๋ง ๋ถํธ - ํต์ฌ ์๋ฆฌ์ ํ์ฉ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์คํ๋ง ๋ถํธ - ์๋ ๊ตฌ์ฑ ๋์ ์๋ฆฌ (0) | 2023.05.02 |
---|---|
์๋ ๊ตฌ์ฑ Auto Configuration ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ง๋ค๊ณ ์ฌ์ฉํด๋ณด๊ธฐ (0) | 2023.04.28 |
์คํ๋ง @Conditional (0) | 2023.04.27 |
์คํ๋ง ๋ถํธ Auto Configuration (0) | 2023.04.25 |
์คํ๋ง ๋ถํธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ์ ์คํ๋ง ๋ถํธ ์คํํฐ (0) | 2023.04.24 |