본문 바로가기
Programming/Java

[Javascript Framework] Property

by minux_s 2020. 12. 28.
728x90

Property

  • 다양한 방법으로 정의할 수 있는 설정값
  • Environment의 역할은 프로퍼티 소스 설정 밒 프로퍼티 값 가져오기

Property는 Application에 등록는 여러가지 key, value 쌍으로 제공되는 property에 접근할 수 있는 기능으로 계층형으로 접근한다.

* 여기서 계층형이란 우선순위가 있다는 뜻

 

StandardServletEnvironment의 우선순위

  • ServletConfig 매개변수
  • ServletContext 매개변수
  • JNDI (java.comp/env/)
  • JVM 시스템 프로퍼티 (-Dkey = "value")
  • JVM 시스템 환경 변수 (운영 체제 환경 변수)

Property는 여러가지 key,value 쌍의 형태로 제공될 수 있는데 key,value는 OS에 있는 환경변수, java application을 실행할 때 -D 옵션으로 넘겨주는 property들, subletcontext, subletconfig에 들어갈 수도 있다.

 

VM option으로는 -Dapp.name = spring5 이렇게 줄 수 있고, 이렇게 준 property를 사용하는 방법은

@Override
public void run(ApplicationArguments args) throws Exception{
	Environment environment = ctx.getEnvironment();
    	System.out.println(environment.getProperty("app.name"));
}

environment에 있는 getProperty()라는 걸 써서 출력해보면 위에서 설정한 spring5가 출력되는 것을 확인할 수 있다.

 

다른 방법으로 체계적으로 값을 전달하고 싶을 때는 properties 파일을 만들어서 사용할 수 있다.

 

app.properties라는 파일을 생성하고 안에 app.about = spring이라고 써놓겠다.

그 후

@SpringBootApplication
@PropertySource("classpath:/app.properties")
public class Demospring51Application{
	public static void main(String[] args){
    	SpringApplication.run(Demospring51Application.class, args);
    }
}

@propertySource에 넣어서 environment에 넣고 꺼내 쓸 수 있다.

 

VM option에 app.name = spring5

생성한 파일에 app.name = spring

작성해주고 실행하면 계층구조에 따라 우선순위가 높은 값이 나오게 된다.

 

위의 경우에는 VM option으로 준 spring5가 결과로 출력된다.

 

후에 Springboot를 배우면 그 쪽으로도 실행이 가능하다.

 

스프링부트의 외부 설정 참고

  • 기본 프로퍼티 소스 지원 (application.properties)
  • 프로파일까지 고려한 계층형 프로퍼티 우선 순위 제공

 

728x90

'Programming > Java' 카테고리의 다른 글

[MQTT] window & linux mosquitto 설치 방법  (0) 2021.01.29
[MQTT] MQTT broker 종류  (0) 2021.01.29
[Spring Framework] Bean의 Scope  (0) 2020.12.22
[Spring Framework] IOC Container  (0) 2020.12.06
[Spring Framework] AutoWired  (0) 2020.12.06

댓글