티스토리 뷰

Environment 인터페이스

  Interface representing the environment in which the current application is running. Models two key aspects of the
  application environment: profiles and properties.
  현재 어플리케이션이 운영중인 환경을 나타내주는 인터페이스다. 어플리케이션 환경의 두가지 중요 측면은 profiles
  properties 다.

Environment 의 getActiveProfiles()

  Return the set of profiles explicitly made active for this environment. Profiles are used for creating logical groupings
  of bean definitions to be registered conditionally, for example based on deployment environment. Profiles can be activated
  by setting "spring.profiles.active" as a system property or by calling ConfigurableEnvironment.setActiveProfiles(String...).

  현재 환경을 활동적이게 되도록 명시적으로 만들어준 profiles의 집합을 리턴한다. 예를들어 배포 환경을 기반으로 하는 Profiles는
  조건적으로 등록되어있는 논리적인 빈 정의 그룹들을 만들기 위해 사용된다. Profiles는 시스템 속성으로
  spring.profiles.active 를 설정, ConfigurableEnvironment.setActiveProfiles 호출에 의해 활성화된다.

Profile Conroller

List<String> profiles = Arrays.asList(environment.getActiveProfiles());

  현재 환경에서 실행되고 있는 설정 파일들을 profiles 변수에 저장한다.
  만약 application-real.propertiesapplication-real-db.properties 가 활성화가 되어있다면
  profiles 변수에 저장된다.

List<String> realProfiles = Arrays.asList("real", "real1", "real2");

  real, real1, real2 는 배포에 사용되는 profile이다.

String defaultProfile = profiles.isEmpty()? "default" : profiles.get(0);

  profiles 가 비어있다면 default를, profile을 비어있지 않다면 가장 첫번째 profile을 defaultProfile로 선택한다.

return profiles.stream().filter(realProfiles::contains).findAny().orElse(defaultProfile);

  profiles 배열을 stream으로 바꾼 후 filter을 이용하여 realProfiles 변수의 contains 메서드를 이용하여 stream 요소를
  랜덤으로 리턴하고 defaultProfile을 리턴한다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함