spring boot 는 profflee 를 사용 하여 파 티 션 설정 을 합 니 다.

spring boot 는 profile 을 사용 하여 파 티 션 설정 을 합 니 다.
많은 경우 에 저희 프로젝트 는 개발 환경 과 생 성 환경의 환경 설정 이 다 릅 니 다.예 를 들 어 데이터 베이스 설정,개발 할 때 저 희 는 보통 테스트 데이터 베 이 스 를 사용 합 니 다.생산 환경 에서 저 희 는 정식 데 이 터 를 사용 합 니 다.이때 저 희 는 profflee 를 이용 하여 서로 다른 환경 에서 서로 다른 프로필 이나 서로 다른 설정 을 사용 할 수 있 습 니 다.
spring boot 는 이름 약속 을 통 해 일정한 형식(application-{profile}.properties)에 따라 여러 프로필 을 정의 한 다음 application.properties 에서 spring.profiles.active 를 통 해 하나 이상 의 프로필 을 구체 적 으로 활성화 할 수 있 습 니 다.profile 설정 파일 이 지정 되 지 않 았 다 면,spring boot 는 기본적으로 application-default.properties 를 시작 합 니 다.
profile 의 프로필 은 application.properyies 의 배치 위치 에 따라 다음 네 개의 위치 에 놓 을 수 있 습 니 다.
현재 디 렉 터 리 의"/config"하위 디 렉 터 리 아래현재 디 렉 터 리 아래
  • classpath 루트 디 렉 터 리 의"/config"패키지 아래
  • classpath 의 루트 디 렉 터 리 아래여기 서 우 리 는 두 개의 profflee 파일,application-cus1.properties 와 application-cus2.properties 를 정의 하고 두 파일 에 각각 변수 cusvar=cus 1 과 cusvar=cus 2 를 기록 합 니 다.
    这里写图片描述
    우 리 는 application.properties 에 도 쓰 고 profflee 를 application-cus1.properties 의 프로필 로 전환 합 니 다.
    
    cusvar=cus3
    spring.profiles.active=cus1
    이렇게 해서 테스트 할 수 있어 요.
    
    @RestController
    @RequestMapping("/task")
    public class TaskController {
        @RequestMapping(value = {"/",""})
        public String hellTask(@Value("${cusvar}")String cusvar ){
            return "hello task !! myage is " + cusvar;
        }
    }
    여기 서 spring.profiles.active 가 활성화 하 는 profile 에 따라 인쇄 된 결과 도 다 릅 니 다.
    프로필 의 프로필 로 우리 의 환경 변 수 를 구분 할 수 있 는 것 을 제외 하고 코드 에서 우 리 는@Profile 주석 으로 직접 설정 할 수 있 습 니 다.예 를 들 어 데이터베이스 설정,여기 서 우 리 는 먼저 인 터 페 이 스 를 정의 합 니 다.
    
    public interface DBConnector {
        public void configure();    
    }
    각각 두 개의 실현 유형 을 정의 하여 그것 을 실현 하 다.
    
    /**
      *      
      */
    @Component
    @Profile("testdb")
    public class TestDBConnector implements DBConnector {
        @Override
        public void configure() {
            System.out.println("testdb");
        }
    }
    /**
     *      
     */
    @Component
    @Profile("devdb")
    public class DevDBConnector implements DBConnector {
        @Override
        public void configure() {
            System.out.println("devdb");
        }
    }
    
    설정 파일 에서 어떤 구현 클래스 를 사용 하 는 지 활성화 합 니 다.
    
    spring.profiles.active=testdb
    그리고 이렇게 쓸 수 있어 요.
    
    @RestController
    @RequestMapping("/task")
    public class TaskController {
        @Autowired DBConnector connector ;
        @RequestMapping(value = {"/",""})
        public String hellTask(){
            connector.configure(); //    testdb     
            return "hello task !! myage is " + myage;
        }
    }
    spring.profiles.active 를 제외 하고 하나 이상 의 profile 을 활성화 하 는 동시에 spring.profiles.include 로 profile 을 중첩 할 수 있 습 니 다.
    
    spring.profiles: testdb
    spring.profiles.include: proddb,prodmq
    spring boot 설정 의 Profile 사용
    profflee 는 Spring 이 서로 다른 환경 에 서로 다른 설정 기능 을 제공 하 는 지원 으로 활성화 할 수 있 습 니 다.
    지정 한 매개 변수 등 방식 으로 환경 을 빠르게 전환 합 니 다.
    1.다 중 프로필 파일 형식
    형식:application-{profile}.properties
  • 예 를 들 어 흔히 볼 수 있 는:application-dev.properties,application-uat.properties,application-prod.properties
  • 2.다 중 프로필 문서 블록 모드
    
    spring:
      profiles: dev
    server:
      port: 8081
    ---
    spring:
      profiles: uat
    server:
      port: 8082
    ---
    spring:
      profiles: prod
    server:
      port: 8083
    在这里插入图片描述
    在这里插入图片描述
    3.활성화 방식
    1.기본 설정 파일 application.properties 에 spring.profiles.active=dev 를 지정 합 니 다.
    在这里插入图片描述
    
    application.properties  
    #  application-dev.properties    
    spring.profiles.active=dev
    
    
    application-dev.properties  
    server.port=8081
    
    2.명령 행
    
    java -jar ch02-springboot-config-profile-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
    3.가상 컴퓨터 매개 변수 상용
    "VM options"에-Dspring.profiles.active=dev 추가
    在这里插入图片描述
    在这里插入图片描述
    4.“Program atguments”
    "Program atguments"에 Cspring.profiles.active=dev 추가
    在这里插入图片描述
    4.위치 별 프로필 우선 순위
    SpringBoot 시작 시 다음 위치 에 있 는 application.properties/application.yml 파일 을 SpringBoot 의 기본 설정 파일 로 검색 합 니 다.
  • file:./config/
  • file:./
  • classpath:/config/
  • classpath:/
  • 이상 은 우선 순위 가 높 은 것 부터 낮은 것 까지 모든 문제 의 파일 을 불 러 옵 니 다.설정 파일 에 같은 설정 이 존재 하면 높 은 우선 순위 설정 내용 은 낮은 우선 순위 설정 내용 을 덮어 씁 니 다.SpringBoot 는 이 네 개의 위치 에서 주 프로필 을 모두 불 러 와 상호 보완 프로필 을 만 듭 니 다.spring.congif.location 을 통 해 기본 프로필 위 치 를 변경 할 수 있 습 니 다.
    아래 그림 의 우선 순 위 는 1C>2C>3C>4 이지 만 1 과 2 는 가방 에 들 어가 지 않 습 니 다.
    在这里插入图片描述
    이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.

    좋은 웹페이지 즐겨찾기