Git์๋ ์ค์ ํ์ผ์ธ ymlํ์ผ์ ์ฌ๋ ค์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ ๋ฐ, ๋ฏผ๊ฐํ ์ ๋ณด๊ฐ ํฌํจ๋ ์ ์๋ค.
๋ฏผ๊ฐํ ์ ๋ณด๋ง ๋นผ๊ณ ์ฌ๋ฆฌ๊ธฐ ์ํด์ ํ๊ฒฝ ๋ณ์๋ก ์ค์ ํด์ ์ฒ๋ฆฌํ๋ฉด ๊ฐ๋ ค์ง ์ฑ๋ก ์ ๋ก๋๊ฐ ๊ฐ๋ฅํ๋ค.
๋, ์ฌ๋ฌ ๊ฐ์ Appllication์ผ๋ก ์ด์ ์ํฉ์ ๋ง๋ yml์ ์ถ๊ฐ๋ก ์์ฑํ๊ณ ํ ์คํธ ํ ์ ์๋ค.
์๋์ deafult์ธ application.yml์ ํฌํจํ์ฌ local ํ๊ฒฝ, dev ํ๊ฒฝ, prod ํ๊ฒฝ์ ๋ง๋ yml ํ์ผ์ ์์ฑํด์ฃผ์๋ค.
์ด์ ์ํฉ์ ๋ฐ๋ผ ๋ง๊ฒ ํ ์คํธ๋ฅผ ํ๊ธฐ ์ํด์๋ Run/Debug ์ Edit Configuration์ ๋ค์ด๊ฐ์ ์๋ง๊ฒ Application์ ์ค์ ํด์ฃผ๋ฉด ๋๋ค.
--spring.profiles.active=local ์ application-local.yml์ ์ค์ ํ์ผ๋ก ์คํ์ํด์ ์๋ฏธํ๋ค.
๋, Environment variables๋ก ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ ์ ์๋ค. (์์ผ๋ฉด Modify options ๋ค์ด๊ฐ๋ฉด ์์. ๋ฐ์ ์ฌ์ง๊ณผ ํจ๊ป ๋ ์ค๋ช ๋์ด ์์)
application-local.yml์ my.var์ ํ๊ฒฝ ๋ณ์๊ฐ ์ ์ฅ๋๋ ๋ฐ, ์ฝ๋๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ฌ๋ฆฌ๋ฉด ๋ฏผ๊ฐํ ์ ๋ณด์ฌ๋ ๊ฐ๋ ค์ ์ฌ๋ฆด ์ ์๊ฒ ๋๋ค.
์ค์ ์ฝ๋๋ ์๋์์ ํ๊ฒฝ ๋ณ์๋ก ๋ฑ๋กํ local์ด my.var์ ์ ์ฅ๋์ด ๋์ํ๊ฒ ๋๋ค.
ApiController.java
package com.example.demo.controller;
import lombok.RequiredArgsConstructor;
import org.slf4j.LoggerFactory;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequiredArgsConstructor
@RequestMapping("/api")
public class ApiController {
private final Logger log = LoggerFactory.getLogger(ApiController.class);
//Value ์ด๋
ธํ
์ด์
์ ํตํด ์ค์ ํ์ผ(application.yml)์์ ๊ฐ ๋ถ๋ฌ์ฌ ์ ์์
@Value("${my.var}")
private String var;
@RequestMapping(method = RequestMethod.GET,value = "/app")
public ResponseEntity req(){
log.info("my var is {}", var);
return ResponseEntity.ok().body("ok");
}
}
application-local.yml ๊ณผ application-dev.yml์ ์ ์ฉ์์ผ ์คํํ ๊ฒฐ๊ณผ์ด๋ค.
ํ๊ฒฝ ๋ณ์์ ๊ฐ์ ์ค์ ๋ local๊ณผ dev๊ฐ ์ ์ฅ๋์ด ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ด์ ์ค์ ํ๋ก์ ํธ์๋ค ์ ์ฉํด๋ณด์
application.yml
spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher
datasource:
url: jdbc:mysql://${DB_IP}/${DB_NAME}
username: ${DB_USERNAME}
password: ${DB_PW}
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: update
properties:
hibernate:
format_sql: true
show-sql: true
logging:
level:
org.springframework.security: DEBUG
database์ IP, DB์ด๋ฆ๊ณผ DB username, password๋ฅผ ๋ชจ๋ ํ๊ฒฝ ๋ณ์๋ก ์ฒ๋ฆฌํด์ฃผ์๋ค.
ํ๊ฒฝ ๋ณ์ ์ค์ ์ ๋ค์์ฒ๋ผ ํ ์ ์๋ค.
ํ๊ฒฝ ๋ณ์๋ฅผ ์ ๋ ฅํ๋ ์นธ์ด ๋จ์ง ์๋๋ค๋ฉด Modify options > Environment variables ๋ฅผ ์ฒดํฌํด์ค๋ค.
ํ๊ฒฝ ๋ณ์๋ ; (์ธ๋ฏธ์ฝ๋ก )์ผ๋ก ๊ตฌ๋ถํ์ฌ ์์ฑํ๋ฉด ๋๋ค.
๊ฐ์ฅ ์ค๋ฅธ์ชฝ ๋ฒํผ์ ๋๋ฅด๋ฉด ์ข ๋ ์ฝ๊ฒ ์์ฑํ ์ ์๋ค.
'โก๐ฉโ๐ป โก > ยบSpring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฐ๊ด๊ด๊ณ ์ธ๋ํค ์ ์ฅํ ๋ Entity๋ก ํด์ฃผ๋ ์ด์ (1) | 2024.01.03 |
---|---|
[Spring] ๊ฒฐ์ ์๋น์ค | ํฌํธ์ ์ฐ๊ฒฐํ๊ธฐ (1) | 2024.01.02 |
[Spring] Logging ๋ก๊น (0) | 2023.12.27 |
[Spring] AOP(Aspect Oriented Programming) ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ (0) | 2023.12.27 |
[Spring] JPA(Hibernate)์ ์ด์ฉํ ์ ๋ ฅ๊ฐ ๊ฒ์ฆ (0) | 2023.12.26 |