오픈 소스 분산 구성 요소 conf 사용 튜 토리 얼

4519 단어
본 고 는 주로 오픈 소스 분포 식 구성 요소 conf 의 장점 과 용법 을 설명 하 는 데 사용 된다.관련 글: 로 컬 설정 주석 읽 기 - 오픈 소스 구성 요소 Conf conf 프로젝트 주소:https://github.com/zsunny6658/conf
우세 하 다.
  • 이 구성 요 소 는 주로 프로젝트 로 컬 설정 을 가 져 오 는 데 사 용 됩 니 다. (나중에 원 격 설정 도 지원 합 니 다)
  • 프로필 형식 을 지원 합 니 다: properties, xml, yml (yaml), json.
  • 동적 설정 을 지원 합 니 다. 다시 시작 하지 않 아 도 설정 이 적 용 됩 니 다.
  • 클래스 설정 에 대한 지원 을 지원 합 니 다.
  • 사전 사후 감청 기 지원.
  • 사용자 정의 프로필 이름 을 지원 합 니 다.

  • 사용법
    첫걸음
    github 에서 이 항목 의 release 를 다운로드 하거나 프로젝트 원본 코드 를 가 져 옵 니 다.
    두 번 째 단계
    명령 을 사용 하여 conf 를 로 컬 창고 에 추가 합 니 다. 1. 1 버 전 을 예 로 들 면 파일 이름 은 conf - 1.1. jar 입 니 다.:
    mvn install:install-file -Dfile=conf-1.1.jar -DgroupId=com.sunny -DartifactId=conf -Dversion=1.1 -Dpackaging=jar
    

    세 번 째 단계
    프로젝트 의 pom. xml 에 의존 도 를 추가 합 니 다:
    
      com.sunny
      conf
      1.1
    
    

    네 번 째 단계
    프로젝트 에서 사용 하면 구체 적 인 사용 방법 은 프로젝트 의 readme 를 참고 할 수 있 습 니 다.본 고 는 conf 1.1 버 전 을 사용 하기 때문에 @ Dynamic 주석 과 동적 설정 을 지원 하지 않 습 니 다.본 고 는 두 가지 종 류 를 테스트 클래스 로 사용 하 는데 각각 Example, Example Class 라 고 명명 하고 전 자 는 일반 설정 항목 을 테스트 하 는 데 사용 하 며 후 자 는 테스트 클래스 설정 항목 에 사용 합 니 다.Example 의 주요 내용 은:
    @ConfSource("classpath: configer.properties")
    public class Example {
        @ConfPath("other.file.configer")
        private static String other;
        @ConfPath("server.port")
        private static String port;
        @SystemConfPath("system.conf.active")
        private static String active;
        public static void printPort(){
            System.out.println("other:" + other);
            System.out.println("prop-port:" + port);
            System.out.println("prop-active:" + active);
        }
    }
    

    Example Class 의 주요 내용 은:
    @ConfClass
    @ConfClassPrefix("test.")
    public class ExampleClass {
        private static String a;
        private static String b = "2";
        @ConfClassIgnore
        private static String c;
        @ConfClassDefault("ddddd")
        private static String d;
        @ConfClassAlias("d")
        private static String e;
        public static void print(){
            System.out.println("class-a:" + a);
            System.out.println("class-b:" + b);
            System.out.println("class-c:" + c);
            System.out.println("class-d:" + d);
            System.out.println("class-e:" + e);
        }
    }
    

    테스트 내용 은 매우 간단 합 니 다. 주로 정적 변 수 를 설명 하고 print 방법 으로 인쇄 클래스 의 변 수 를 표시 합 니 다.
    다섯 번 째 단계
    프로필 을 추가 합 니 다. 각종 프로필 에 대한 지원 을 나타 내기 위해 다섯 개의 프로필 을 사용 합 니 다. application. properties, application. xml, application. yml, application - prod. xml 와 configer. properties.앞의 세 가 지 는 시스템 의 기본 설정 지원 입 니 다.네 번 째 는 시스템 active 설정 입 니 다. 설정 에서 밝 혀 야 합 니 다.다섯 번 째 는 사용자 정의 프로필 입 니 다.application. properties, application. xml, application - prod. xml 에 각각 server. port 설정 을 설정 합 니 다.application. properties 의 설정 내용 은:
    server.port=222
    

    application. xml 의 설정 내용 은:
    
    
    
            
        
    
    

    application. yml 의 설정 내용 은:
    server:
      port: 111
    system:
      conf:
        active: prod
    test:
      a: 1
      b: 2
      c: 3
      d: 5
    

    application - prod. xml 의 설정 내용 은:
    
    
    
            
        
    
    

    configer. properties 의 설정 내용 은:
    other.file.configer=this is other file configer
    

    그 중에서 각 프로필 의 기본 우선 순 위 는 active > > customize = xml > yml > yaml > properties 입 니 다. 여 기 는 application - prod. xml > configer. properties = application. xml > application. yml > application. properties 입 니 다.
    여섯 번 째 단계
    테스트 를 실행 하고 테스트 클래스 Test 를 사용 합 니 다. 그 주요 내용 은:
    public class Test {
        public static void main(String[] args) {
            ConfStarter.start();
            Example.printPort();
            ExampleClass.print();
        }
    }
    

    최종 실행 결 과 는:
    other:this is other file configer
    prop-port:789
    prop-active:prod
    class-a:1
    class-b:2
    class-c:null
    class-d:ddddd
    class-e:5
    

    연계 와 교류
    어서 오 세 요 ~
    메 일 박스:[email protected]
    본 고 는 전 재 를 환영 합 니 다. 본 고의 주 소 를 밝 혀 주 십시오.https://www.jianshu.com/p/3336ed9130c3

    좋은 웹페이지 즐겨찾기