프로퍼티 파일 운용은 설정이나 환경등을 모듈화 하여 다양하게 접근하고 저장할 수 있게해주는데,
내가 기억하고 있는 PropertySourcesPlaceHolderConfigurer 빈 처럼 다양하게 프로퍼티 파일을 가져올 수 있는 방법을
ApplicationContext 의 Environment 객체가 제공하고 있다.
우선 순위는 다음과 같다.
1.서블릿 설정 매개변수
2,서블릿 컨텍스트 WAS 매개변수 ,
3.JNDI,
4.JVM 시스템 프로퍼티 -D~~
5.JVM환경변수 : 운영체제 환경 변수
@Configuration 에노테이션 이 붙은 설정파일에 @PropertySource 에노테이션을 붙여 속성값에 property 파일의 경로를 지정해주면 프로퍼티 소스에 해당 프로퍼티 파일을 등록하는 것이다. 이는 운영체게 환경변수에 등록함을 의미하며, 프로퍼티 순위가 가장 낮다.
@SpringBootApplication
@PropertySource("classpath:/app.properties")
public class Demospring51Application {
public static void main(String[] args)
{
SpringApplication.run(Demospring51Application.class, args);
}
}
그 후에 ApplicationContext의 environment 의 getProperty() 메서드로 값을 가져올 수 있게된다.
@Autowired
ApplicationContext ctx;
@Value("${app.name}")
String appName;
@Override
public void run(ApplicationArguments args) throws Exception {
Environment environment = ctx.getEnvironment();
// System.out.println(environment.getProperty("app.about"));
System.out.println(environment.getProperty("app.name"));
System.out.println(appName);
}
}
다른 방법으로는 기억하고 있는, @Value(플레이스홀더) 에노테이션으로 값을 자유로히 가져다쓸 수 있다는 것이다.
'springframework' 카테고리의 다른 글
springframeworko.s.w IoC 핵심기술. ApplicationEventPublisher (0) | 2020.08.21 |
---|---|
springframeworko.s.w IoC 핵심기술. MessageSource (0) | 2020.08.21 |
springframeworko.s.w IoC 핵심기술. @Profile (0) | 2020.08.20 |
o.s.w IoC 핵심기술. @Bean 의 @Scope (0) | 2020.08.20 |
Junit (0) | 2020.08.17 |