반응형
// application.yml
spring:
application:
name: yml
server:
port: 8088
fruit:
list:
- name: banana
color: yellow
- name: apple
color: red
developer:
name: yunjae
application.yml
// application-dev.yml
server:
port: 8055
application-dev.yml
// DeveloperName.class
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
@Component
@ConfigurationProperties("developer")
public class DeveloperName {
private String name;
}
yml 파일에서 developer 키 속, name 키의 값을 가져와서 넣어준다.
// Test.class
@Slf4j
@Component
@RequiredArgsConstructor
public class Test {
private final DeveloperName developerName;
@Value("${server.port}")
private String port;
@Value("${spring.profiles.active}")
private String activeProfile;
@PostConstruct
void setup() {
log.info("dev name : {}", developerName);
log.info("server port : {}", port);
log.info("active profile {}", activeProfile);
}
}
ex.yml.YmlApplication : No active profile set, falling back to 1 default profile: "default"
스프링은 특별히 profile을 지정해주지 않으면 default 로 프로필을 지정하며, application.yml 파일을 가져온다.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'test': Injection of autowired dependencies failed
// ...
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.profiles.active' in value "${spring.profiles.active}"
// ...
yml 파일대로 실행하면, 위와 같은 에러를 내며 종료한다.
application.yml 파일에는 spring.profiles.active를 지정해주지 않았기 때문에 당연쓰
해결 방법은 인텔리제이 기준으로 실행/디버그 구성 창을 켜서
- 빌드 및 실행 탭의 오른쪽에 옵션 수정 → VM 옵션 추가 → -Dspring.profiles.active={prifile이름} 을 입력해주거나,
- 그 밑의 Active profiles 부분에 그냥 {profile이름} 만 넣어줘도 된다.
- 아니면 application.yml 파일에 spring.profiles.default=dev 로 하기
사진은 두 가지 방법 모두를 보여주려고 적은거라 둘 중 하나만 해도 된다.
변경 후 실행해보면
ex.yml.YmlApplication : The following 1 profile is active: "dev"
o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8055 (http)
ex.yml.Test : dev name : DeveloperName(name=yunjae)
ex.yml.Test : server port : 8055
ex.yml.Test : active profile dev
dev profile 로 지정된 것을 볼 수 있다.
반응형
'TIL ✍️' 카테고리의 다른 글
24/08/22(목) 104번째 TIL : Redis maxmemory 소숫점 설정 (0) | 2024.08.30 |
---|---|
24/08/21(수) 103번째 TIL : EC2 EBS 재부팅 없이 용량 확장 도전기 (0) | 2024.08.30 |
24/08/19(월) 101번째 TIL : 어노테이션에는 상수만 가능 (0) | 2024.08.30 |
24/08/16(금) 100번째 TIL : CORS 커스텀 응답 헤더 가져오기 (0) | 2024.08.19 |
24/08/14(수) 99번째 TIL : Spring Security 없이 CORS 설정하기 (0) | 2024.08.19 |