WebのフレームワークはPHPのCakePHP, RubyのRuby on Railsときて、JavaのやつはSlim3以外は触ったことがなく、全くに近いほどJavaでのWeb開発についての知識が皆無です。未だによくわかってません。Javaは3文字の略語も多くて本当に私にとっては魔境でしかないのですが、それでもやってみたいという気持ちはあります。型安全ですし。
そこで、Javaで今からやるとしたらどのフレームワークがいいかなー?とFacebookに書いてみたところ、岡山Javaユーザー会 代表であり、同僚の@zephiransasさんに「今だとSpring Bootかなー?」とアドバイスを頂いたので、とりあえずSpring Bootをやってみます!
Spring Bootとは?
Spring Bootは以前からあるSpringフレームワークをポータブルに実行できる環境のようで、フレームワークというとちょっと違うっぽいです。しかし、組み込みAPサーバとしてTomcatを使い、jarを実行するだけでWebアプリケーションが立ち上がるので、非常にお手軽(らしい)。
warを作ってAPサーバにデプロイするのは最近は流行ってないようです。そういえばPlay frameworkのそういう感じらしいというのは見た事あります。
まずは導入
Spring Bootのページにありますが、Groovyで作られたCLIツールがあるようです。
gvm経由でインストールできるものがあったので、それで入れました。gvmのインストールがまだの人はgvmをインストールしてください。
ちなみに私の環境はMacなので、Mac以外の環境のことはわかりません。
GVM – the Groovy enVironment Manager
gvmから、Spring BootのCLIをインストールします。
gvm install springboot
プロジェクトを作成
IntelliJ IDEAでgradleプロジェクトを作り、build.gradleのdependenciesブロックに以下を記述しました。あと一応sourceSetsも記述。
apply plugin: 'java' sourceCompatibility = 1.8 version = '1.0' repositories { mavenCentral() } dependencies { compile("org.springframework.boot:spring-boot-starter-web:1.2.1.RELEASE") testCompile group: 'junit', name: 'junit', version: '4.11' } // 2015-02-24 修正。 sourceSets { main { java } test { java } }
その後、src/main/java/sample/HelloController.javaを作成。
package sample; import org.springframework.boot.*; import org.springframework.boot.autoconfigure.*; import org.springframework.stereotype.*; import org.springframework.web.bind.annotation.*; @Controller @EnableAutoConfiguration public class HelloController { @RequestMapping("/") @ResponseBody String home() { return "Hello World!"; } public static void main(String[] args) throws Exception { SpringApplication.run(HelloController.class, args); } }
IntelliJ上からHelloControllerを実行。http://localhost:8080にアクセスしたらHello World!が出たのでとりあえず動くところまではできました。今後はいろんなサンプルが豊富にあるらしいので、とりあえずそれを写経したりしながら、勉強していこうと思います。
練習用に作ったgithubのリポジトリを公開しておきます。
github: patorash/spring_boot_practice