Heroku Java spring-boot의 최소 구성으로 HelloWorld 시도

개요



새로운 웹 서비스 출시용으로 가장 빠른/최소 구성으로 HelloWorld 할 수 있는 환경을 Heroku+Java+spring-boot로 만들어 보자

할 수 있게 되는 것


  • Heroku에서 HelloWorld

  • 대략 근무 시간



    30분

    사전에 필요한 것


  • Java
  • Maven
  • git
  • Heroku 계정

  • Heroku 계정은 아래의 기사에 기재되어 있다 1. Introduction의 Heroku Account 취득만으로 OK
    무료로 바로 취득 가능(메일 주소만. 클레카 등록 불필요)
    무료로 웹 애플리케이션을 공개 할 수있는 Heroku를 시도했습니다.

    1. spring-boot 환경 만들기



    준비하는 파일은 pom.xml, HelloController.java의 2개.

    pom.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns="http://maven.apache.org/POM/4.0.0"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>sprin-boot-sample</groupId>
      <artifactId>sprin-boot-sample</artifactId>
      <version>1.0</version>
      <packaging>jar</packaging>
    
      <name>sprin-boot-sample</name>
    
      <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      </properties>
    
      <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
      </parent>
    
      <dependencies>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
      </dependencies>
    
      <build>
        <plugins>
          <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>build-info</goal>
                </goals>
                <configuration>
                  <additionalProperties>
                    <encoding.source>${project.build.sourceEncoding}</encoding.source>
                    <encoding.reporting>${project.reporting.outputEncoding}</encoding.reporting>
                    <java.source>${maven.compiler.source}</java.source>
                    <java.target>${maven.compiler.target}</java.target>
                  </additionalProperties>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </project>
    

    HelloController.java
    package com.example;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @Controller
    @EnableAutoConfiguration
    public class HelloController {
    
        @RequestMapping("/")
        @ResponseBody
        public String home() {
            return "Hello, World!";
        }
    
        public static void main(String[] arguments) {
            SpringApplication.run(HelloController.class, arguments);
        }
    
    }
    

    2. Heroku 환경에 맞게 설정 파일 준비



    필요한 파일은 3개.
     Procfile/system.properties/application.properties

    Procfile
    web: java -jar target/sprin-boot-sample-1.0.jar
    

    system.properties
    java.runtime.version=1.8
    

    application.properties
    server.port=${PORT:5000}
    
    

    3. 불필요한 파일을 Heroku로 올리지 않도록 .gitignore 준비



    .gitignore
    target
    

    최종 구성은 다음과 같은 느낌
    {フォルダ}
    │  .gitignore
    │  pom.xml
    │  Procfile
    │  system.properties
    │      
    └─src
        └─main
            ├─java
            │  └─com
            │      └─example
            │              HelloController.java
            │              
            └─resources
                    application.properties
    

    4. 로컬 git 저장소에 커밋


    git init
    git add .
    git commit -m "first commit"
    

    5. Heroku에 배포


    heroku login
    heroku create
    git push heroku master
    heroku open
    

    6. 화면 확인





    이상.

    감상



    Heroku 계정이 있다면 30분 안에 웹 서비스의 병아리가 생기는 것이 크다.
    spring-boot만의 구성이지만 다른 FW도 병아리형에 추가해 가면 보다 편리?

    좋은 웹페이지 즐겨찾기