Java/SPRING

스프링 [Spirng] Environment를 이용한 프로퍼티 란

백엔드 신입사원( soft 5.10 입사) 2022. 1. 11. 16:16
반응형

Environment를 이용한 프로퍼티

어플리케이션을 개발하다보면 동일한 코드를 사용하면서 일부 정보만 변경하고 싶은경우가 흔히 발생하는데, 이러한 경우 프로그램 코드를 바꾸기보단 별도 파일을 이용해 설정 정보를 변경하도록 만든다.

ex) 톰캣 서버는 server.xml이라는 파일에 사용할 포트 번호를 설정하며, 아파치 웹 서버는 httpd.conf파일에 포트 번호화 디렉토리 경로를 설정한다.

 

스프링도 비슷하게 스프링에 설정 변경 없이 외부에서 입력한 정보를 이용해 설정 값을 변경하는 방법들을 제공하고 있고, 그중 한 가지 방법이 Environment이다.

 

  • 프로퍼티 통합 관리
  • 프로필을 이용해서 선택적으로 설정 정보를 사용할 수 있는 방법을 제공

Environment는 시스템 환경 변수, JVM(자바 가상머신)시스템 프로퍼티, 프로퍼티 파일 등의 프로퍼티를 PropertySource라는 것으로 통합 관리한다.

설정 파일이나 클래스 수정없이 시스템 프로퍼티나 프로퍼티 파일 등을 이용해서 설정 정보의 일부를 변경할 수 있다.

Environment는 여러 프로필(profile)중 특정 프로필을 활성화하는 기능을 제공하고 있다.

해당 기능을 사용하면 개발 환경, 통합 시스템 환경, 실 서비스 환경에 따라서 서로 다른 스프링 빈 설정을 선택할 수 있다.(편하게 관리 쌉가능)

----------

ConfigurableApplicationContext context = new AnnotationConfigApplicationContext();

ConfigurableEnvironment environment = context.getEnvironment();

environment.setActiveProfiles("dev");

----------

getEnvironment()메서드가 리턴하는 타입은 Environment의 하위 타입인

o.s.core.env.ConfigurableEnvironment 타입이다.

ConfigurableEnvironment 타입은 사용할 프로필을 선택하는 기능과 PropertySource를 추가하는데 필요한 기능을 제공한다.

반응형