Spring 기본 테스트 버전 0.10 – 0.11 탐색

8391 단어 agilewebandappdevelo

개술


본고는 Spring Native 0.10.6 BETA 문서에 기초를 두고 있다.
버전 0.11이 방금 발표되었으니 v0을 강력히 권장합니다.11 새로운 AheadOftime(AOT) 엔진에 대한 많은 개선본문 중의 Version 0.11 section를 살펴보다.
첫 번째 버전의 장점과 한계를 살펴봅시다.나는 공식 문서의 전체 부분overview을 볼 것을 건의합니다.
우리가 사용하는 테스트 버전에는 몇 가지 제한과 호환성이 있다는 것을 항상 기억해 주십시오.공식 문서에서 우리는 가장 흔히 볼 수 있는 문제의 답안을 찾을 수 있다troubleshooting guide.examples 중의 issuesgithub project도 볼 수 있다.

예비 지식

  • 16GB 메모리(pc에서 본체로 컴파일)
  • 스프링 방진 커버 2.5.6
  • Java 8, Java 11 및 Kotlin 1.5+
  • GraalVM 버전 21.2.0
  • Spring boot 호환성

  • Spring boot Initiator: 모든supported Initiator를 확인하십시오. 이 중 일부는 특별한 의존 관계 관리가 필요합니다.
  • 봄구름 2020.0.3starters
  • 스프링data & others(용목산, jdbc 드라이버, gprc, 스프링 카프카 등)
  • 제한성


    https://www.graalvm.org/reference-manual/native-image/Limitations/

    BuildPack 또는 본 기구의 제작 도구를 사용하는 Spring 네이티브


    본고에서 우리는 with Buildpacks의 입문 지침with Native Build ToolsSpring Native Documentation을 따를 것이다.
    너는 본문을 복제할 수 있고, 네가 원한다면 그것을 구축할 수 있다.
    git clone https://github.com/davidgfolchApium/spring-native-beta.git
    cd spring-native-beta
    
    이것은 Spring 원본 문서에 사용된rest api 예와 같지만 두 버전 모두 수정이 필요합니다.

    빌드 패키지 사용


    이것은 우리가 단일 명령행으로 구축하고 실행할 수 있도록 허용한다
    mvn spring-boot:build-image
    
    그것은 상자를 열면 바로 사용할 수 있으며 봄의 생태계에서도 마찬가지다.
    처음 이 과정을 완성하는 데 30분이 걸렸다.
    좀 쉬어도 되는데..

    다음 구축은 더욱 순조롭게 진행될 것입니다. 왜냐하면 우리는 이미 구축 패키지/docker 작업을 완성했기 때문입니다.

    그런 다음 를 실행합니다.
    docker run --rm -p 8080:8080 rest-service-complete:0.0.1-SNAPSHOT
    

    유효한지 확인하십시오: http://localhost:8080/greeting 되돌아가야 합니다.
    {"id":1,"content":"Hello, World!"}
    

    본 기구의 건설 도구를 사용하다


    같은 항목을 사용하지만graalvm를 직접 설치합니다.graalvm와 jdk의 본체 확장을 설치하려면 sdkman (추천 옵션) 이 필요합니다.
    sdk install java 21.2.0.r8-grl
    sdk use java 21.2.0.r8-grl
    gu install native-image
    
    네이티브 어플리케이션 패키지화:
    mvn -Pnative -DskipTests package
    

    그것을 실행하려면 다음과 같이 하십시오.
    ./target/spring-native-beta
    

    유효한지 확인하십시오: http://localhost:8080/greeting 되돌아가야 합니다.
    {"id":1,"content":"Hello, World!"}
    

    봄을 앞당기다


    Google은 configure 발자국을 줄이기 위해 스프링 AOT 옵션을 사용할 수 있으며, 기본적으로 비활성화되거나 사용되지 않습니다.

    Native hints


    이 프롬프트를 사용하여 다음 문제를 해결해야 합니다.
  • Spring Native
  • 가 지원하지 않는 라이브러리
  • 응용 프로그램이나 라이브러리(예를 들어 잭슨)에 필요한 반사 정의
  • Spring 기본 AOT 플러그인은 모든 *을 생성합니다.속성 & *.META-INF/네이티브 이미지에 필요한 json 구성 파일입니다.
    이 프로그램의 특정 설정은 속성 파일이나 주석이 있는 항목으로 설정할 수 있습니다. (참조 spring-native-configuration

    샘플 라이브러리


    본고source repository examples에서 우리는 모든 Spring 본체 응용 프로그램이 필요로 할 수 있는 몇 가지 측면(구축 도구, 에이전트, 라이브러리, Spring 모듈 등)의'최신 상태'를 검사할 수 있다.
    애완동물 진료소의 인터넷 응용은 그 중의 일부 기능을 통합시켰다.

    네이티브 이미지 옵션


    일부 GraalVM 옵션은 Spring 기본값이고 일부는 "Useful options"이라고 합니다.이 프로토콜에서 내가 지적하고자 하는 것은 만약에 우리가 이 프로토콜을 통해 서비스를 제공해야 한다면, 우리는https를 사용하도록 지정해야 한다는 것이다.

    추적제


    이것은 우리가 사용할 수 있는 새로운 프로그램이나 라이브러리에 필요한 모든 본체 알림을 만드는 데 도움을 줄 수 있는 '아주 좋은 도구인 것 같다.

    버전 0.11


    new version에서는 AOT 엔진이 다음과 같이 변경되었습니다.

  • 더욱 좋은 시작과 메모리 개선, 호환성 개선, 그러나 운행 시 유연성은 떨어진다.
  • AOT 프롬프트를 프로그래밍 방식으로 구성할 수 있는 "확장점"이라는 새로운 아키텍처 플러그인입니다.

  • Junit5와 graalvm native-build-tools의 새로운 AOT 테스트 지원(mockito는 아직 지원되지 않음).
  • 기타...
  • Spring은 이 새 버전을 표준에 통합하기 위해 Spring Boot 3 네이티브 지원을 계획하고 있습니다.

    좋은 웹페이지 즐겨찾기