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
