今学ぶJava(3) - Maven・Spring Boot体験 「Rubyでいうと…」

f:id:syonx:20150506012304p:plain

参考にしたサイト

Spring Bootキャンプ ハンズオン資料 — Spring Bootキャンプ ハンズオン資料 1.0.0-SNAPSHOT ドキュメントSpring Bootキャンプ ハンズオン資料 — Spring Bootキャンプ ハンズオン資料 1.0.0-SNAPSHOT ドキュメント

目次

  1. [事前準備] Spring BootでHello World
  2. [事前準備] JavaOpenCVを使う
  3. 顔変換サービスの作成
  4. JMSを使ってみる
  5. JMSで画像変換を非同期処理
  6. STOMPを使ってみる
  7. STOMP over WebSocketで非同期処理結果を受信する
  8. WebRTCを使ってみる
  9. WebRTCで撮った写真を顔変換サービスに送信
  10. Dockerを使ってみる
  11. 顔変換サービスをDocker化

学んだこと

  • mvn archetype:generateでインターネットからコード、リソースを取得している
    • 大方の目的はプロジェクトの構造であるpom.xmlを入手するためのもの、ってとこかな
    • pom.xmlRubyでいうとGemfileで、それがたくさん置いてある感じ
  • archetypeのカタログを見つけた(重い)
    上記の資料で使っていたものがあった
    https://repo1.maven.org/maven2/archetype-catalog.xml
<archetype>
  <groupId>am.ik.archetype</groupId>
  <artifactId>spring-boot-docker-blank-archetype</artifactId>
  <version>2.0.0</version>
  <description>Docker Blank Project for Spring Boot</description>
</archetype>
  • mvn compileで依存関係を見てまたインターネットからいろいろ取得している
    • Rubyでいうbundle installかな

インターネット依存度が高い気がするけど、これリモートのリポジトリが障害になったりしたらどうするんだろう?と思ったけどそれはRubyGemsも同じか。とは言え、プロジェクトを新たに作るってのはそう頻度の高いものでもないし、一度取得してしまえば関係ない話かー。

それから、今回の題材はSpring Boot特有なのかただそう作っただけなのか、RESTアプリっぽくRubyでいうとSinatraを想起させた。 だからもちろんSinatraと比べて見ちゃうんだけど、ものすごく複雑という印象が強いね。。Eclipseもカーニバル状態。

f:id:syonx:20150506021927p:plain

見つけたサイト

maven-archetypeのススメ - Happy-Camper Streetmaven-archetypeのススメ - Happy-Camper Street
Maven2のTipsを集めるWiki - CookBookMaven2のTipsを集めるWiki - CookBook
spring-boot/spring-boot-samples at master · spring-projects/spring-boot · GitHubspring-boot/spring-boot-samples at master · spring-projects/spring-boot · GitHub

おわりに

「リクエスト受けて処理して返す」ってのはできたので、次はテンプレート使うかデータベースにつなげてみたいなーと思います。