Spring CLI를 사용하여 새 Spring Boot 프로젝트를 빠르게 부트스트랩

Spring Boot 프로젝트 생성은 상황에 따라 각각 고유한 사용 사례가 있는 다양한 방법을 통해 수행할 수 있습니다.

초보자에게 친숙하고 사용 가능한 항목에 대한 개요를 얻기에 완벽한 the Spring Initializr web UI을 사용할 수 있습니다.

플러그인을 사용하여 Eclipse 또는 Intellij과 같은 선호하는 IDE 내에서 프로젝트를 생성할 수도 있습니다.

그리고 마지막으로 Spring CLI를 사용하여 셸을 떠나지 않고 프로젝트를 생성할 수 있으며 이것이 우리가 할 일입니다.

이 기사에서는 CLI를 사용하여 새로운 Spring Boot 프로젝트를 생성합니다.

CLI 설치



무언가를 생성하기 전에 머신에 Spring CLI를 설치해야 합니다.

이를 위해 Spring official documentation을 확인하십시오.

CLI를 수동으로 설치하거나 sdkman을 사용하여 설치하는 방법을 보여줍니다. 원하는대로 하되 sdkman을 사용하는 것이 좋습니다!

이를 통해 CLI를 설치하는 것은 단일 명령을 입력하는 것만큼 간단하며 계속 진행할 수 있습니다.

$ sdk install springboot
$ spring --version
Spring CLI v2.7.1


프로젝트 부트스트랩



이제 프로젝트를 부트스트랩할 준비가 되었습니다.

간단한 CRUD 작업을 노출하는 간단한 REST API를 빌드하라는 요청을 받았다고 가정해 보겠습니다.

이를 위해서는 다음 종속성이 필요합니다.
  • HTTP 끝점을 구축하고 클라이언트 응용 프로그램에서 사용할 인터페이스를 제공하는 웹 계층
  • 데이터베이스에 액세스하고 클라이언트 작업을 유지하기 위한 데이터 계층

  • 또한 이 REST API는 최신 상태여야 하므로 Java 17을 사용하고 Gradle 프로젝트가 됩니다.

    좋아, 우리는 우리가 만들고 싶은 것과 그것을 만드는 데 무엇이 필요한지 알고 있지만 우리가 사용할 수 있는 것이 무엇인지 어떻게 알 수 있습니까?

    Spring CLI가 무엇을 제공할 수 있는지 알기 위해 다음 명령을 사용할 수 있습니다.

    $ spring init --list
    .   ____          _            __ _ _
     /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
     \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
    :: Service capabilities ::  https://start.spring.io
    
    Supported dependencies
    +--------------------------------------+--------------------------------------------------------------+-------------------------------+
    | Id                                   | Description                                                  | Required version              |
    +--------------------------------------+--------------------------------------------------------------+-------------------------------+
    | activemq                             | Spring JMS support with Apache ActiveMQ 'Classic'.           | >=2.0.0.RELEASE and <3.0.0-M1 |
    |...                                   |                                                              |                               |
    | websocket                            | Build WebSocket applications with SockJS and STOMP.          |                               |
    +--------------------------------------+--------------------------------------------------------------+-------------------------------+
    
    Project types (* denotes the default)
    +-----------------+------------------------------------------+-----------------------------+
    | Id              | Description                              | Tags                        |
    +-----------------+------------------------------------------+-----------------------------+
    | gradle-build    | Generate a Gradle build file.            | build:gradle,format:build   |
    | gradle-project  | Generate a Gradle based project archive. | build:gradle,format:project |
    | maven-build     | Generate a Maven pom.xml.                | build:maven,format:build    |
    | maven-project * | Generate a Maven based project archive.  | build:maven,format:project  |
    +-----------------+------------------------------------------+-----------------------------+
    
    Parameters
    +-------------+------------------------------------------+------------------------------+
    | Id          | Description                              | Default value                |
    +-------------+------------------------------------------+------------------------------+
    | artifactId  | project coordinates (infer archive name) | demo                         |
    | bootVersion | spring boot version                      | 2.7.1                        |
    | description | project description                      | Demo project for Spring Boot |
    | groupId     | project coordinates                      | com.example                  |
    | javaVersion | language level                           | 17                           |
    | language    | programming language                     | java                         |
    | name        | project name (infer application name)    | demo                         |
    | packageName | root package                             | com.example.demo             |
    | packaging   | project packaging                        | jar                          |
    | type        | project type                             | maven-project                |
    | version     | project version                          | 0.0.1-SNAPSHOT               |
    +-------------+------------------------------------------+------------------------------+
    


    프로젝트 부트스트랩 중에 지정할 수 있는 사용 가능한 모든 종속성, 프로젝트 유형 및 프로젝트 매개 변수 목록을 얻습니다.

    웹 레이어의 경우 Spring MVC 및 기타 웹 관련 종속성을 포함하는 웹 종속성을 사용하고 있습니다.

    데이터 계층의 경우 JPA의 구현으로 Hibernate와 함께 Spring 데이터를 포함하는 data-jpa 종속성을 사용하고 있습니다.

    마지막으로 데이터베이스에 연결하는 데 필요한 JDBC 드라이버를 가져와야 합니다.

    선택한 데이터베이스로 PostgreSQL을 선택했다고 가정해 보겠습니다.

    따라서 postgresql 종속성을 가져와야 합니다.

    이 문서의 목표는 사용 가능한 모든 종속성을 표시하는 것이 아니므로 오늘은 여기에서 유지하겠습니다.

    이제 명령을 실행하여 프로젝트를 부트스트랩할 수 있습니다.

    $ spring init --dependencies=web,data-jpa,postgresql --java-version=17 --build=gradle spring-boot-cli
    Using service at https://start.spring.io
    Project extracted to '/home/mohzen/dev/spring-boot-cli'
    


    결과 프로젝트를 확인해 봅시다.

    $ cd spring-boot-cli/
    $ ll
    total 44
    drwxr-xr-x  4 mohzen mohzen 4096 Jul 13 22:16 ./
    drwxr-xr-x 18 mohzen mohzen 4096 Jul 13 22:16 ../
    -rw-r--r--  1 mohzen mohzen  444 Jul 13 22:16 .gitignore
    -rw-r--r--  1 mohzen mohzen 1397 Jul 13 22:16 HELP.md
    -rw-r--r--  1 mohzen mohzen  559 Jul 13 22:16 build.gradle
    drwxr-xr-x  3 mohzen mohzen 4096 Jul 13 22:16 gradle/
    -rwxr-xr-x  1 mohzen mohzen 8070 Jul 13 22:16 gradlew*
    -rw-r--r--  1 mohzen mohzen 2763 Jul 13 22:16 gradlew.bat
    -rw-r--r--  1 mohzen mohzen   37 Jul 13 22:16 settings.gradle
    drwxr-xr-x  4 mohzen mohzen 4096 Jul 13 22:16 src/
    


    이제 애플리케이션 구축을 시작할 준비가 되었습니다!

    좋은 웹페이지 즐겨찾기