冥冥乃志スマートフォン用の表示で見る冥冥乃志ソフトウェア開発会社でチームマネージャをしているエンジニアの雑記。アウトプットは少なめです。この広告は、90日以上更新していないブログに表示しています。Bootそもそもよくしらないので、予習を兼ねて少し触ってみました。フレームワーク味見の第2弾です。今回も闇を見ずに終わりたいと思います。Bootを新しいアプリケーションフレームワークだと誤解していた模様です。frameworkを使ったプロジェクトの構成とデプロイを楽にする方面の話なんですね。予習の予習gvmでSpringBootCLIをインストールできるようなのでやってみます。インストール後、springというコマンド名でSpringBootCLIを使えます。プロジェクトの作成ビルドシステムにgradleを指定してプロジェクトを作ってみましょう。my-app何に使って良いんだかわからない空っぽのプロジェクトが作成されました。依存関係を指定しないとアプリケーションの構成がされないわけですね。デフォルトでWebアプリケーションなのかと思った。それからベースパッケージ名やアプリケーション名が指定されておらず、問答無用でdemoパッケージが作られたり、jarファイル名がdemoになっていたりします。依存関係やパラメータをlistオプションで確認できるようです。--listで、これでずらーっと一覧が出てくる訳ですが、パラメータの指定ができない。helpにもオプションが載ってないし、試しに指定してみてもエラーになるしで、このコマンドを使うワークフローが把握できずに微妙に使いづらいです。29で、このような流れとなり、今回時間を使うところではないな、と判断しました。根本さんに借りました。写経して、後でgradleで少し試してみます。見る一通り写経した上で感じたあれこれを(内容は書籍読んだ方が正確なので割愛)。プロジェクト立ち上げて動かすまでが速いそれがなかったら何が美味しいの?という突っ込みが入りそうですが、実感してみると美味しさはわかります。私が旨味を感じたのは以下の点です。目的別の依存関係がわかりやすい最近のフレームワークの美味しい所をSpringに取り込んだ感じがして、Springってこんなにスピード感あるフレームワークだっけ?と思ってしまいます。デフォルトが通用したり、まずは動かして確認できる、だったり。Bootの枠内では)というのは大きいです。複数のライブラリがある目的の為に関連するというのは当たり前の話であって、依存関係の依存関係みたいなものもあります。最初に書いたときは目的わかってますからまとまりがわかるんですけど、時間が経ってくると。それに、目的別の依存関係ごとに動作確認済みライブラリがセットで提供される(ですよね?)というのは、運用面とか考えると楽かな、と。そこかしこにエンジニアを楽にしようという気概が感じられて非常に良いです。その他それ以外の所でちょいちょい気になった所があるので、合わせてメモしておきます。Boot」は1.1.8をベースに書かれてあったのですが、写経時には1.2.4が安定版最新になっていたのでそちらで進めていました。AppConfigクラスに同じDataSourceを返すBeanメソッドが複数あるとアプリケーションの起動に失敗します。Bootのバージョンによるものらしく、1.2.2までは問題ないとのこと。著者の槙さんのGithubリポジトリにワークアラウンドがありました。github.com専用IDEがある試してないのですべて伝聞形式。Suiteというeclipseベースの専用IDEがあるようです。プラグインとしても提供されているみたいですね。カタログスペックだけ見てるとアプリケーションの構成を可視化してくれたり、configファイルなども含めたリファクタリングツールを提供したり、クラスの依存関係をクラス図で可視化したりしてくれるらしいです。ううむ、なかなかの高機能。今回は味見する程度だったので、慣れたIDEを使ってました。深く触ることがあれば、考えてみたいと思います。Reloadingできるようになるプラグインです。何かSeasar2思い出しますね。IDEAではコンパイル時のクラスの出力先が若干違うようで、うまく変更を拾ってくれませんでした。深入りしていないので、何とも言えませんが以下が参考になるかも知れません。素のHTMLに属性をつけることで動的にHTMLを生成するタイプのテンプレートエンジンですね。これもSpringBootで選択することができます。ちなみに、閉じタグのないものでもスラッシュちゃんとつけないとパースエラーになります。IntelliJで自動生成したHTMLファイルとかmetaタグに閉じ記号なかったりするので注意しましょう。それと、私の環境ではテキストの通り実装しているとAppConfigの文字コードフィルタリングする前が日本語は文字化けしませんでした。テキストの通りAppConfigの文字コードフィルタリングを実装すると逆に文字化けします。どこに問題があるのか、までは追えませんでした。後はBootstrapがwebjarsから取得できなかったり、色々ありましたがBootCampまでに時間が取れそうにないので、勉強会のときにちょっと質問してみたいと思います。gradle使う場合のプロジェクト立ち上げpom.xmlの記述って冗長ですよね?XMLってちょっと面倒というかなんというか。いうわけでビルドツールをgradleにしてしまいたいと思います。以下を参考にbuild.gradleを変更します。qiita.comリポジトリにmavenLocal()やmavenCentral()の指定が明示的に必要だというところに軽くハマりつつ、プロジェクトの生成は上手く行きました。公式だとQuickStartにgradleプラグインのインストールが書かれてないので、上記の方が参考になりそうです。mavenのプラグインと同様、開発に伴う各種タスクが追加されるのでプラグインは入れておいた方が良いと思います。最初のサンプルを実装して実行してみます。initで乗り換えも可能、ということもわかったり。3.0を使えば良いんじゃないですかね。www.infoq.comみんなでSpringBootCampいこうぜというわけで、長々とお試ししてみました。実際に手を動かしてみないとわかんないですか?そんなあなたにうってつけのイベントがあります。»プロフィールid:mao_instantlifeソフトウェア開発会社でチームマネージャをしているエンジニアの雑記。アウトプットは少なめです。月別アーカイブ参加グループプログラミングはてなブログをはじめよう!mao_instantlifeさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。