티스토리 뷰
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.properties
와 application-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을 리턴한다.
'Spring' 카테고리의 다른 글
Spring Boot 에서 GraphQL 사용하기 (1) (0) | 2022.11.13 |
---|---|
[Spring] MultipartFile를 이용한 스프링 파일 업로드(feat. AWS S3) (0) | 2022.01.27 |
[Spring] Spring Security 프레임워크 (2) : Spring Security 인증인가 동작과정 (0) | 2022.01.20 |
[Spring] Spring Security 프레임워크 (1) (0) | 2022.01.19 |
[Spring] 스프링 MVC와 스프링 MVC 구조 (0) | 2022.01.18 |
- Total
- Today
- Yesterday
- 프로그래머스
- level0
- ORA-27125
- graphql
- nginx
- 인덱스
- 람다식
- AWS
- Oracle
- 파일업로드설정
- 운영체제
- 기술면접
- db
- Travis CI
- N+1
- JPA
- CodeDeploy
- Java
- 네이버클라우드
- ci/cd
- EC2
- TCP
- SpringSecurity
- SpringGraphQL
- Til
- OS
- 트랜잭션
- spring
- ddl-auto
- 트랜잭션격리성
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |