study/springboot
016. 스프링부트 Profile 설정
까오기
2022. 5. 19. 17:38
Application 실행 환경에 따른 설정을 위해 profile 설정을 추가합니다.
스프링부트에서는 기본 설정을 application.properties에 하는데 개발 환경에 따라 달라지는 값들은 profile을 추가함으로써 동적으로 이용가능합니다.
추가하는 방법은 간단합니다.
application-[profile].properties
이 규칙으로 파일을 생성하면 됩니다.
일단 세개의 파일을 생성합니다.
- application-local.properties
- application-dev.properties
- application-product.properties
내용
application-local.properties
-----------------------------
spring.thymeleaf.cache=false
app.title=springboot-study-local
-----------------------------
application-dev.properties
-----------------------------
spring.thymeleaf.cache=false
app.title=springboot-study-dev
-----------------------------
application-product.properties
-----------------------------
spring.thymeleaf.cache=true
app.title=springboot-study-product
-----------------------------
기존에 application.properties에 "spring.thymeleaf.cache" 이 부분은 주석 처리합니다.
스프링부트에서 profile 설정은 이걸로 끝입니다.
테스트 controller
@RestController
public class ProfileTestAPIController {
@Value("${app.title}")
private String appTitle;
@GetMapping("/profile")
public String test() {
return appTitle;
}
}
@Value 어노테이션을 이용해서 설정 값을 가져올 수 있습니다.
Testcase
@SpringBootTest
@AutoConfigureMockMvc
@ActiveProfiles("local")
class ProfileTestAPIControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
void doubleMapping() throws Exception {
MvcResult result = mockMvc.perform(MockMvcRequestBuilders.get("/profile")
.accept(MediaType.TEXT_PLAIN)
)
.andExpect(status().isOk())
.andReturn();
assertThat(result.getResponse().getContentAsString()).isEqualTo("springboot-study-local");
}
}
서버 실행 하기
eclipse
java -jar -Dspring.profiles.active=local ./study-springboot-0.0.1-SNAPSHOT.jar
브라우저 확인
스프링부트 profile과 maven/gradle profile의 차이 설명
Spring boot - 빌드 profile 설정
스프링부트 profile과 Maven/Gradle의 profile의 차이 스프링부트의 profile은 runtime시 작동하는 것이고 Maven/Gradle의 profile은 build 시점 동작하는 것입니다. maven/gradle에서는 profile에 따라 해당 설정..
eblo.tistory.com
github : https://github.com/kkaok/study-springboot/tree/main/src/main/resources