์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ํ๋ก์ ํธ
- ํฌ๋กค๋ง
- ๋๋ฆผ์ฝ๋ฉ
- ํ๋ก๊ทธ๋๋จธ์ค
- react
- ์ฝ๋ฉ์ ํ
- ๊ทธ๋ฆฌ๋
- ์ฝ๋ฉํ ์คํธ
- JS
- javascript
- Python
- ํ ์ดํ๋ก์ ํธ
- ํ๋ก ํธ์๋
- ํ์ด์ฌ
- ์๊ณ ๋ฆฌ์ฆ
- KDT
- CSS
- fe
- ๊ตญ๋น์ง์
- ๊ฐ๋ฐ
- Til
- ๋ฐฑ์ค
- mongodb
- heapq
- error
- HTML
- ๋ ธ๋ง๋์ฝ๋
- ์ฝ๋ฉ
- ๋ชจ๊ฐ์ฝ
- node.js
- Today
- Total
๐ฑ → ๐ณ
[Spring boot] properties ์ฌ์ฉ์ "Could not resolve placeholder" ์ค๋ฅ ๋ฐ์ ๋ณธ๋ฌธ
[Spring boot] properties ์ฌ์ฉ์ "Could not resolve placeholder" ์ค๋ฅ ๋ฐ์
BAY 2023. 5. 28. 10:46ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ฌ์ง, ๋์์๊ณผ ๊ฐ์ ๋ฏธ๋์ด ํ์ผ๋ค์ AWS์ S3์ ์ ์ฅํ๊ธฐ ์ํ์ฌ application.yml ํ์ผ์ S3์ ๊ด๋ จ๋ ์ธ์ฆ ์ ๋ณด๋ค์ ์ถ๊ฐํ๋ค.
๋ก์ปฌ์์๋ ์ ๋์๊ฐ๋๋ฐ github actions๋ฅผ ํตํด ci/cd ๊ตฌ์ถํ์ ๋ฌธ์ ๋ฐ์
๊ทธ๋ฌ๋๊น ๋ฐฐํฌํ๋ ๊ณผ์ ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ ๊ฐ๋ค
๊ทผ๋ฐ ์ผ๋จ ๋ฐฐํฌ๋ ์ ๋จ
codedeploy์์๋ ์ฑ๊ณต
ps -ef | grep jar ๋ช ๋ น์ด๋ก ์คํ์ค์ธ jar ํ์ผ ํ์ธ
์ฒ์์๋ ์ ๋๋ก ๋์๊ฐ๋ ๋ฏ ํ์ผ๋ 10์ด ์ ๋ ๋ค์ ๋ค์ ํ์ธํด๋ณด๋ฉด ๊บผ์ง๋ ๊ฒ์ ํ์ธํ ์ ์๋ค
์ .. ์ด๊ฑฐ ์ง๊ธ application์ด ๋์๊ฐ๋๋ฐ ์คํจํ๊ฑฐ๊ตฌ๋
๊ฐ์ ๋ก ๋ค์ java ์คํ์์ผ๋ณด์
์ญ์๋ .. application run failed ์๊ตฌ๋ ^^ . . .
๋ชจ๊ฐ ๋ฌธ์ ์ธ์ง ์์ธํ ๋ณด๋๊น ..
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 's3Config': Injection of autowired dependencies failed;
nested exception is java.lang.IllegalArgumentException:
Could not resolve placeholder 'cloud.aws.credentials.access-key' in value "${cloud.aws.credentials.access-key}"
์ ์ฝ๋์์ "cloud.aws.credentials.access-key"๋ฅผ ๋ชป ์ฐพ๋ ๋ฏ ๋ณด์์
๊ทธ๋ฌ๋๊น S3 ์ ์ฅ์์ ํ์ผ์ ์ ์ฅํ๋ ์ฝ๋๋ฅผ ์์ฑํ ๋ค ํ ์คํธ๋ฅผ ์๋ํ๋๋ฐ, ๋น๋๋ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋์์ง๋ง ์คํ๋ง์ด ๊ฐ๋๋ ๋ Could not resolve placeholder 'cloud.aws.credentials.access-key' in value "${cloud.aws.credentials.access-key}" ๋ผ๋ ์๋ฌ์ ํจ๊ป ๊ฐ์ ์ข ๋ฃ๋จ
์ฆ, application.yml ํ์ผ์ ์ถ๊ฐํด๋์ S3์ ์ ๋ณด๋ ๋ฌผ๋ก ์ด๊ณ IAM์ ํค ๊ฐ์ ์ฝ์ด๋ค์ด์ง ๋ชปํ๋ ๊ฒ
ํ์ง๋ง ํด๋น ํ์ผ์๋ RDS์ ๊ดํ ์ ๋ณด๋ ์์๋๋ฐ DB์ ๊ดํ ์ด์๋ ๋ฐ๊ฒฌ๋์ง ์์๋ค. !!!! ์
๋ํ, application.yml์ด ์์นํ ๊ฐ์ ๋๋ ํ ๋ฆฌ ๋ด์ ๋ณ๋์ yml ํ์ผ์ ์์ฑํ ๋ค S3 ๊ด๋ จ ์ธ์ฆ ์ ๋ณด๋ค์ ์ฎ๊ฒจ๋ณด์์ง๋ง ๋ฌธ์ ๋ ๊ฐ์๋ค.
๊ตฌ๊ธ๋ง์ ํตํด ๋ด๊ฐ ์๋ํด ๋ณธ ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ค์๊ณผ ๊ฐ์๋๋ฐ, ๋ฌธ์ ํด๊ฒฐ์ ๋์์ด ๋์ง๋ ๋ชปํ์๋ค.
- Run > Edit Configurations > VM Option์์ Dspring.profiles.active=local ์ถ๊ฐ (yml์ด๋ properties ํ์ผ์ ์ถ๊ฐํด๋ ๋จ)
- ‘resources/META-INF/additional-spring-configuration-metadata.json’ ํ์ผ ์์ฑํ์ฌ s3 ์ธ์ฆ value Metadata ์ง์ ์ถ๊ฐ
- S3Config ํ์ผ์ @PropertySource("classpath:์ค์ ํ์ผ")์ ์ถ๊ฐํจ์ผ๋ก์จ ์ธ๋ถ ํ์ผ ์ธ์ํ ์ ์๋๋ก ํจ
(์ค์ ํ์ผ์ ์ ๋ ฅํ ๋ ์ ๋๊ฒฝ๋ก๋ก ์ ๋ ฅํด์ผํ๋์ง ์๋๊ฒฝ๋ก๋ก ์ ๋ ฅํด์ผํ๋์ง ๊ณ ๋ฏผํ์๋๋ฐ, ๊ทธ๋ฅ ํ์ผ ์ด๋ฆ๋ง ์ ๋ ฅํ๋ฉด ์์์ ์ธ์ํด์ค๋ค.) - aws iam ์ฌ์ฉ์ ๋ค์ ์ค์ ํ๊ธฐ
- yml ํ์ผ์์ properties ํ์ผ ์ฌ์ฉํด๋ณด๊ธฐ
๊ฒฐ๋ก ์ ์ผ๋ก ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ
์ผ๋จ ์์์ ๋ฌธ์ ๋ ์์๋ ๊ฒ ๊ฐ์๋ฐ
spring.profiles.active=db-dev ์ด๊ฒ๋ณด๋ค cloud.aws.credentials.access-key๊ฐ ์์ ์ฌ๋ผ์์์ด์ ์๋์๋ ๊ฒ ๊ฐ๊ณ
์ด ์ ๋ง ์ง์ง ์ด๊ฒ ๋ค ์ธ ๊ฒ ๊ฐ๋ค ... ์์ ....๊ฐ .. ๋ฌธ์ ....
์์.. ๋ฅผ ์ ์งํค์ ......
์ ์๋๋ค ๋ฐฉ๊ธ ์คํ์ผ์ ๋ชจ๋ ๊ฒ์ ๋๊ฐ์ด ํ๊ณ
spring.profiles.active=db-dev๋ง
spring.config.activate.on-profile=db-dev ๋ก ๋ฐ๊ฟจ๋๋ฐ fail์ด ๋ด๋ค
์ด๋ผ ๋ด๊ฐ ์๊ธฐ๋ก๋ spring boot 2.4 ๋ฒ์ ์ดํ ์ค์ ํ์ผ์๋ spring.profiles ๊ฐ deprecated ๋๊ณ spring.config.activate.on-profile ๋ก ๋ณ๊ฒฝ๋ ๊ฑธ๋ก ์๋๋ฐ
๋ถ๋ช ๋ ์ด๋ฒ ํ๋ก์ ํธ์์ 2.4 ์ดํ ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์์์๋ ๋ถ๊ตฌํ๊ณ github secrets๋ก application.properties๋ฅผ ๋ฃ์๋๋ spring.config.activate.on-profile=db-dev๋ฅผ ์ธ์ํ์ง ๋ชปํ๋ ๊ฒ ๊ฐ๋ค .. !?
์ด๊ฑด ์ข ๋ ์์๋ด์ผ ํ ๊ฒ ๊ฐ๋ค
๊ทธ๋ฆฌ๊ณ ์ด๊ฑด ๋ ์๊ฒ๋ ๊ฒ
์คํ๋ง 2.4๋ถํฐ spring.profiles.active์ spring.profiles.include๋ฅผ ๊ฐ์ด ์ฌ์ฉํ ์ ์๋๋ก ๋ฐ๊ผ์ด
https://spring.io/blog/2020/08/14/config-file-processing-in-spring-boot-2-4
'Server > Java & Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JPA ์์์ฑ ์ปจํ ์คํธ๋? (0) | 2023.06.01 |
---|---|
[Java] ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP) (0) | 2023.05.31 |
Spring์์ Redis๋ก ์บ์ฑ์ฒ๋ฆฌ (0) | 2023.05.16 |
[Spring] save() vs saveAndFlush() (0) | 2023.03.22 |
[Spring] IoC, DI๋? (0) | 2023.03.22 |