반응형
키 벨류 상으로 되어 있는 프로퍼티에 접근 하여 사용
계층 형 으로 제공됨.
OS의 환경 변수, 자바 실행시 옵션 값 등에 전달된 키 벨류 값을 이용.
1. VM 옵션
package com.bpkim.demospring51;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.ApplicationContext;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
import java.util.Arrays;
@Component
public class AppRunner implements ApplicationRunner {
@Autowired
ApplicationContext ctx;
@Autowired
BookRepository bookRepository;
@Override
public void run(ApplicationArguments args) throws Exception{
Environment environment = ctx.getEnvironment();
// enviroment의 첫번째 프로파일
// 등록된 프로파일 확인
System.out.println(Arrays.toString(environment.getActiveProfiles()));
// default 파일 확인
// 어떤 프로파일이든 기본으로 설정되는 파일
System.out.println(Arrays.toString(environment.getDefaultProfiles()));
// enviroment의 두번째 프로파일
// 프로퍼티
System.out.println(environment.getProperty("app.name"));
}
}
- 실행확인
2. properties 파일
- 파일 생성
- 내용
- 소스 파일 설정
package com.bpkim.demospring51;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.support.GenericApplicationContext;
@SpringBootApplication
@PropertySource("classpath:/app.properties") //프로퍼티 파일 설정
public class Demospring51Application {
public static void main(String[] args) {
SpringApplication.run(Demospring51Application.class, args);
}
}
- 확인
*** VM 옵션의 프로퍼티 vs properties 파일의 프로퍼티 둘중 누가더 우선순위를 가질까 ?_?
둘다 app.name 으로 설정하여 확인 해보자
package com.bpkim.demospring51;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.ApplicationContext;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
import java.util.Arrays;
@Component
public class AppRunner implements ApplicationRunner {
@Autowired
ApplicationContext ctx;
@Autowired
BookRepository bookRepository;
@Override
public void run(ApplicationArguments args) throws Exception{
Environment environment = ctx.getEnvironment();
// enviroment의 첫번째 프로파일
// 등록된 프로파일 확인
System.out.println(Arrays.toString(environment.getActiveProfiles()));
// default 파일 확인
// 어떤 프로파일이든 기본으로 설정되는 파일
System.out.println(Arrays.toString(environment.getDefaultProfiles()));
// enviroment의 두번째 프로파일
// vm 설정
System.out.println(environment.getProperty("app.name"));
// properties 파일
// System.out.println(environment.getProperty("app.about"));
}
}
- 확인
VM옵션에 설정한 프로퍼티가 나온다! vm 옵션이 우선!
반응형
'개발 > Spring' 카테고리의 다른 글
IoC - ApplicationEventPublisher (0) | 2021.04.11 |
---|---|
IoC - MessageSource (0) | 2021.04.11 |
IoC - Environment - 프로파일 (0) | 2021.04.10 |
IoC - 빈의 스코프 (0) | 2021.04.06 |
IoC - Component, 컴포넌트 스캔 (0) | 2021.04.06 |