Spring boot Applicationを作る話

Spring Bootの基本的な部分Helloを作る部分をまとめておきたいと思います

ソース : https://github.com/wataru775/example.springboot.hello

はじめに

超シンプルな話で、Spring Bootを使い方をまとめておきます。

今回はシンプルなアプリケーションでHelloを書き出します。

実行可能なjarで出すことも可能な感じです

ソース

サービスソース

ソースは超シンプルにロガーにhello文字列を吐き出します

ソース : https://github.com/wataru775/example.springboot.hello/blob/main/src/main/java/example/springboot/hello/services/HelloService.java

@Component
public class HelloService {
    /**
     * Logger
     */
    private final Logger logger = LoggerFactory.getLogger(HelloService.class);

    /**
     * Helloを書き出す
     */
    public void say(){
        logger.info("Hello!");
    }
}

単純でしょ、標準出力の場合はロガー出力を

    logger.info("Hello!");

標準出力

System.out.println("Hello!");

に書き直してください。

呼び出しソース

先ほど作成したコンテンツを実行します

ソース : https://github.com/wataru775/example.springboot.hello/blob/main/src/main/java/example/springboot/hello/Application.java

    public static void main(String[] args){
        // Spring boot Applicationの実行
        ConfigurableApplicationContext context = SpringApplication.run(Application.class, args);
        // Componentの取り出し
        HelloService service = context.getBean(HelloService.class);
        // サービスを実行
        service.say();
    }

ポイントはコンテキストを引っ張ってきて、Beanを引っ張ってくるわけです。(ここでは、あんまり使わないかな?)
それ以外ないので略

定義ファイル(pom.xml)

はい、ハローワールドということで定義ファイルを紹介します

ソース : https://github.com/wataru775/example.springboot.hello/blob/main/pom.xml

定義ファイルのポイントとしては、あんまりありませんが、「spring-boot-starter」を使っています。
例としてよく使われる「spring-boot-starter-web」ではありません。動くかもしれませんが

あとは… ま、わかるでしょう

実行してみる

実行はシンプルです。

$ mvn spring-boot:run

... いろいろあって ...

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.6.2)

2022-01-05 22:06:00.006  INFO 74610 --- [           main] example.springboot.hello.Application     : Starting Application using Java 13.0.1 on 。 with PID 74610 (./example.springboot.hello/target/classes started by wataru in ./example.springboot.hello)
2022-01-05 22:06:00.008  INFO 74610 --- [           main] example.springboot.hello.Application     : No active profile set, falling back to default profiles: default
2022-01-05 22:06:00.356  INFO 74610 --- [           main] example.springboot.hello.Application     : Started Application in 0.739 seconds (JVM running for 0.983)
2022-01-05 22:06:00.359  INFO 74610 --- [           main] e.s.hello.services.HelloService          : Hello!

Hello!が表示されればちゃんと実行されていいます。

実行可能なjarの作成は

$ mvn package

にて作成可能です。

実行は…

$ java -jar target/example.springboot.hello.jar

です。

終いに

今回は超簡単な部分のhello worldをまとめました。ってか、次に移る前に押さえておきたかっただけです。

次回は本来まとめておきたかったTask(Scheduled)ですね