Spring入門 Javaフレームワーク・より良い設計とアーキテクチャ
著者の長谷川さんから献本を頂きました。ありがとうございます。
こ…こ…これは……!! #ステマ #献本ありがとうございます https://t.co/8aPsApcCHC
— T✪IMAI ☕️ いざ鬼ヶ島2days (@bobbyjam99) June 10, 2016
[改訂新版]Spring入門 ――Javaフレームワーク・より良い設計とアーキテクチャ
- 作者: 長谷川裕一,大野渉,土岐孝平
- 出版社/メーカー: 技術評論社
- 発売日: 2016/06/14
- メディア: 大型本
- この商品を含むブログを見る
Spring入門が改訂され今回は Spring4 対応版になります。
SpringBoot がキラーアプリケーションになり、その基盤となっている Spring Framework が注目されているわけですが、コアの部分は昔からあるせいか書籍が限られてしまいます。本書はその点 Spring が出始めた時代に出版させた本のため、Spring Frameworkが生まれた背景の話やコアの部分の記述が厚くなっています。改めて見ると昔はいっぱいのXMLを書いてましたね...そこら辺をいい感じにしてくれるSpringBootのありがたさを感じることも出来ますね。
また、安定依存原則や依存関係逆転原則に基づいた凹型レイヤなど設計の観点も記載があるため初めてソフトウェアアーキテクチャを考えなきゃいけないような人も手元にあると心強い一冊になっています。
ただ、SpringBatchやSpringBootについては紹介程度になっているため、それらの詳細な情報を期待している人は、書店にて自分が必要な情報が載っているかどうかを確認した方が良いしれません。
SpringBootを始めSpring Frameworkの力を最大限に活用するためにもぜひ手に取ってみてはいかがでしょうか。
目次はこちら。
第1章 SpringとWebアプリケーションの概要
1.1 Springの最新事情
1.2 Webアプリケーション概論
1.3 Spring概要
第2章 SpringのCore
2.1 SpringのDI(Dependency Injection)
2.2 SpringのAOP(Aspect Oriented Programming)
第3章 データアクセス層の設計と実装
3.1 データアクセス層とSpring
3.2 Spring JDBC
3.3 Spring JDBC
3.4 まとめ
第4章 ビジネスロジック層の設計と実装
4.1 トランザクションとは
4.2 トランザクションマネージャ
4.3 トランザクション機能の使い方
4.4 まとめ
第5章 プレゼンテーション層の設計と実装
5.1 Spring MVCの概要
5.2 環境作成と動作確認
5.3 サンプルアプリケーションの概要
5.4 画面を表示するController
5.5 入力値を受け取るController
5.6 Spring MVCのその他の機能
5.7 最後に
第6章 認証・認可
6.1 認証・認可とフレームワーク
6.2 認証・認可の基本
6.3 Spring Securityの概要と導入
6.4 Spring Securityの基本構造
6.5 Webアプリケーションと認証
6.6 Webアプリケーションと認可(アクセス制御)
6.7 Spring Securityの連携機能
6.8 セキュリティ攻撃対策
6.9 まとめ
第7章 ORM連携 - Hibernate, JPA, MyBatis
7.1 認証・認可とフレームワーク
7.2 認証・認可の基本
7.3 Spring Securityの概要と導入
7.4 Spring Securityの基本構造
第8章 キャッシュ抽象機能(Cache Abstraction) - Spring Cache
8.1 ProductDaoImplとProductServiceImpl, ProductSampleRunの改造と動作確認
8.2 応用編
第9章 バッチの設計と実装
9.1 バッチ
9.2 Spring Batch
9.3 サンプルを使った解決
第10章 Cloud Nativeの入り口
10.1 Spring Boot
10.2 Pivotal Web Servicesを利用して"Hello World!"
10.3 PWSにログインする
10.4 PWSにデプロイして実行する
10.5 おわりに
Gradleインストール2
GVMをインストールしたので、次はGroovyとGradleのインストール。バージョンを指定しなければ最新版が入る。
bobbyjam99% gvm install groovy [~] Downloading: groovy 2.1.1 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 27.1M 100 27.1M 0 0 212k 0 0:02:10 0:02:10 --:--:-- 227k Installing: groovy 2.1.1 Done installing! Do you want groovy 2.1.1 to be set as default? (Y/n): y Setting groovy 2.1.1 as default. bobbyjam99% groovy -v [~] Groovy Version: 2.1.1 JVM: 1.6.0_43 Vendor: Apple Inc. OS: Mac OS X
bobbyjam99% gvm install gradle [~] Downloading: gradle 1.4 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 352 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 100 47.4M 100 47.4M 0 0 230k 0 0:03:31 0:03:31 --:--:-- 234k Installing: gradle 1.4 Done installing! Do you want gradle 1.4 to be set as default? (Y/n): y Setting gradle 1.4 as default. bobbyjam99% gradle -v [~] ------------------------------------------------------------ Gradle 1.4 ------------------------------------------------------------ Gradle build time: 2013?N1??28?? 3??42??46?b UTC Groovy: 1.8.6 Ant: Apache Ant(TM) version 1.8.4 compiled on May 22 2012 Ivy: 2.2.0 JVM: 1.6.0_43 (Apple Inc. 20.14-b01-447) OS: Mac OS X 10.8.2 x86_64 bobbyjam99% [~]
GVMインストール
id:nobusue さんにGrandleをインストールするならGVMの方が良いとコメントを頂いたのでGVM(http://gvmtool.net/)をインストールする。インストールする前にJAVA_HOMEの設定が必要。あとはサイトに記述しているコマンドを実行するだけ。
bobbyjam99% echo $JAVA_HOME [~] /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home bobbyjam99% curl -s get.gvmtool.net | bash [~] uname: illegal option -- o usage: uname [-amnprsv] Thanks for using _____/\\\\\\\\\\\\__/\\\________/\\\__/\\\\____________/\\\\_ ___/\\\//////////__\/\\\_______\/\\\_\/\\\\\\________/\\\\\\_ __/\\\_____________\//\\\______/\\\__\/\\\//\\\____/\\\//\\\_ _\/\\\____/\\\\\\\__\//\\\____/\\\___\/\\\\///\\\/\\\/_\/\\\_ _\/\\\___\/////\\\___\//\\\__/\\\____\/\\\__\///\\\/___\/\\\_ _\/\\\_______\/\\\____\//\\\/\\\_____\/\\\____\///_____\/\\\_ _\/\\\_______\/\\\_____\//\\\\\______\/\\\_____________\/\\\_ _\//\\\\\\\\\\\\/_______\//\\\_______\/\\\_____________\/\\\_ __\////////////__________\///________\///______________\///__ Will now attempt installing... Looking for a previous installation of GVM... Looking for JAVA_HOME... Validating JAVA_HOME... Looking for unzip... Looking for curl... Installing gvm scripts... Create distribution directories... Create candidate directories... Prime the config file... Download script archive... Extract script archive... Install scripts... Make init script executable... Attempt update of bash profiles... Created and initialised /Users/bobbyjam99/.bash_profile Updated existing /Users/bobbyjam99/.bashrc Attempt update of zsh profiles... Updated existing /Users/bobbyjam99/.zshrc All done! Please open a new terminal, or run the following in the existing one: source "/Users/bobbyjam99/.gvm/bin/gvm-init.sh" Then issue the following command: gvm help Enjoy!!! bobbyjam99% [~]
新しいターミナルを開いてコマンドを実施しろ、と書いてあるので言われる通りに実施。
bobbyjam99% source "/Users/bobbyjam99/.gvm/bin/gvm-init.sh" [~] bobbyjam99% gvm help [~] ==== BROADCAST ============================================= GVM version 0.9.5 In this release: * local dev candidate installation * zsh init fragment bug fix * strip out isolated_mode config * improvements on README.md * various bug fixes Report any issues at: https://github.com/gvmtool/gvm/issues Running GVM server 0.9.5 on vertx 1.3.0.final ============================================================ Usage: gvm <command> <candidate> [version] command : install, uninstall, list, use, current, version, default, selfupdate, broadcast or help candidate : groovy, grails, griffon, gradle, vertx version : optional, defaults to latest stable if not provided eg: gvm install groovy bobbyjam99%
楽ちんインストール!ちなみにRVMにあるseppukuコマンドはないのね。
Gradleインストール
[追記] 最近はGVMを使ってインストールするようです。id:nobusue さんありがとうございます! > Gradleインストール2 - 桜が咲く頃にふと想ふ
次のプロジェクトでGradle使おうかなーと思い素振り。インストールはHomebrewで入れられるらしいので実施。
bobbyjam99% brew search groovy [~] groovy groovyserv bobbyjam99% brew install groovy [~] ==> Downloading http://dist.groovy.codehaus.org/distributions/groovy-binary-1.8.6.zip ######################################################################## 100.0% ==> Caveats You should set the environment variable GROOVY_HOME to /usr/local/Cellar/groovy/1.8.6/libexec Warning: Non-executables were installed to "bin". Installing non-executables to "bin" is bad practice. The offending files are: /usr/local/Cellar/groovy/1.8.6/bin/startGroovy ==> Summary /usr/local/Cellar/groovy/1.8.6: 39 files, 17M, built in 108 seconds bobbyjam99% groovy -v [~] Groovy Version: 1.8.6 JVM: 1.6.0_43 Vendor: Apple Inc. OS: Mac OS X bobbyjam99% brew search gradle [~] gradle bobbyjam99% brew install gradle [~] ==> Downloading http://services.gradle.org/distributions/gradle-1.0-milestone-9-bin.zip ######################################################################## 100.0% /usr/local/Cellar/gradle/1.0-milestone-9: 80 files, 32M, built in 2.9 minutes bobbyjam99% gradle -v ------------------------------------------------------------ Gradle 1.0-milestone-9 ------------------------------------------------------------ Gradle build time: 2012?N3??13?? 16??10??09?b UTC Groovy: 1.8.6 Ant: Apache Ant(TM) version 1.8.2 compiled on December 20 2010 Ivy: 2.2.0 JVM: 1.6.0_43 (Apple Inc. 20.14-b01-447) OS: Mac OS X 10.8.2 x86_64 bobbyjam99%
あとは.zshrcにPATHを通す。
# Gradle GRADLE_HOME=/usr/local/Cellar/gradle/1.0-milestone-9 export GRADLE_HOME export PATH=$GRADLE_HOME/bin:$PATH
って入れてみたけど、Gradle 1.0って古いな...Homebrewダメみたい。