書籍「はじめてのSpring Boot」のサポートページ
Shell Batchfile Java HTML CSS
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
chapter01/1.3_hajiboot Bump to 1.4.0.RELEASE Aug 20, 2016
chapter02 Bump to 1.4.0.RELEASE Aug 20, 2016
chapter03 Bump to 1.4.0.RELEASE Jun 25, 2017
chapter04 Update Chapter4 Aug 24, 2016
chapter05 Add comment Aug 24, 2016
.gitignore Ignore *.iml Feb 27, 2016
README.rst Update README.rst Apr 24, 2018

README.rst

⭐️Spring Boot2の本はオンラインで執筆中です。サンプルコードはこちらです。⭐️


「はじめてのSpring Boot [改訂版]」サポートページ

はじめてのSpring Boot [改訂版]」のサポートページです。

「はじめてのSpring Boot」初版(表紙がピンク)対応のサンプルコードはこちらです。

このページでサンプルコードと正誤表を管理します。書籍の内容に関する間違いの指摘等はIssuesかPull Requestでお願いします。

また、疑問やコメントはTwitterでハッシュタグ「#hajiboot」をつけてツイートしていただければ極力お答えします。気軽にツイートしてください。

本の内容が最新Spring Bootでは動かないという場合もサポートいたしますので、Issueで報告お願いいたします。 回答の保証はありませんが、Spring Bootに関するよろず質問でもOKです。

正誤表 (第3刷)

場所 訂正日
P.135, 136 アルゴリズム名 PBKPF2 PBKDF2 2018-04-23

正誤表 (第2刷)

場所 訂正日
P.107 goToTopメソッドの上のアノテーション @GetMapping(path = "edit", params = "goToTop") @PostMapping(path = "edit", params = "goToTop") 2017-09-19
P.111 goToTopメソッドの上のアノテーション @RequestMapping(path = "edit", params = "goToTop") @PostMapping(path = "edit", params = "goToTop") 2017-09-19
P.135, 136 アルゴリズム名 PBKPF2 PBKDF2 2018-04-23
P.164 application-cloud.proerties application-cloud.properties 2017-09-18
P.176 spring.datasource.url:jdbc:h2:mem:customers;DB_CLOSE_ON_EXIT=FALSE spring.datasource.url:jdbc:log4jdbc:h2:mem:customers;DB_CLOSE_ON_EXIT=FALSE 2017-09-18
P.179 spring.datasource.url:jdbc:h2:mem:customers;DB_CLOSE_ON_EXIT=FALSE spring.datasource.url:jdbc:log4jdbc:h2:mem:customers;DB_CLOSE_ON_EXIT=FALSE 2017-09-18

正誤表 (第1刷)

場所 訂正日
P.31 (プログラム解説) (2),(3),(4) (1つずつずれている) (3),(4),(5) 2016-09-18
P.31 (プログラム解説) - (漏れている) (2) 「JavaConfig」を読み込むために、「@Import」で「@Configuration」アノテーション を付けた対象のクラスを指定。 2016-09-18
P.36 - Frontendクラスの上の@Beanのインデントがずれている 2016-11-07
P.44 Appクラス HajibootLayeringApplicationクラス 2016-09-18
P.61 Appクラス HajibootJdbcApplicationクラス 2016-09-18
P.61 https://console.run.pivotal.io/2/ https://console.run.pivotal.io 2016-11-07
P.81 (プログラム解説) (5), (5) (5), (6) 2016-09-18
P.83 (6) NO_CONTENT NO CONTENT 2016-11-07
P.85 204NoContent 204 No Content 2016-11-07
P.86 ResponseEntity<CustomerpostCustomers(@RequestBody Customer customer, UriComponentsBuilder uriBuilder /* (1) */) { ResponseEntity<Customer> postCustomers(@RequestBody Customer customer, UriComponentsBuilder uriBuilder /* (1) */) { 2016-11-07
P.94 (4) コンテスト・パス コンテキスト・パス 2016-11-07
P.107 editFormメソッドの上のアノテーション @PostMapping(path = "edit", params = "form") @GetMapping(path = "edit", params = "form") 2016-11-07
P.107 goToTopメソッドの上のアノテーション @GetMapping(path = "edit", params = "goToTop") @PostMapping(path = "edit", params = "goToTop") 2017-09-19
P.111 goToTopメソッドの上のアノテーション @RequestMapping(path = "edit", params = "goToTop") @PostMapping(path = "edit", params = "goToTop") 2017-09-19
P.124 (2か所) application.yml application.properties 2016-09-09
P.124 security.basic.enabled: false security.basic.enabled=false 2016-09-09
P.129 下 return new Pbkdf2PasswordEncoder(); // () return new Pbkdf2PasswordEncoder(); // (9) 2016-11-07
P.130 下 (10)の行 不要 (初版の残り) 2016-11-07
P.133 (1) 「loginForm?error=true」に遷移するように 「loginForm?error」に遷移するように 2016-11-07
P.134 下 <p><span sec:authentication="principal.user.username">duke</span>さんログイン中。</p> この3行削除 (P. 141で登場) 2016-11-07
P.135 src/main/resources/migration/V3__add_user.sql (2箇所) src/main/resources/migration/V3__add-user.sql 2016-11-07
P.135, 136 アルゴリズム名 PBKPF2 PBKDF2 2018-04-23
P.151 2つ目の (1) (2) 2016-11-07
P.152 https://console.run.pivotal.io/2/ https://console.run.pivotal.io 2016-11-07
P.164 application-cloud.proerties application-cloud.properties 2017-09-18
P.171 - [4.7]の前に「Spring Cloud Connectorsのコネクションプールに関する設定」を追加 2016-11-07
P.176 spring.datasource.url:jdbc:h2:mem:customers;DB_CLOSE_ON_EXIT=FALSE spring.datasource.url:jdbc:log4jdbc:h2:mem:customers;DB_CLOSE_ON_EXIT=FALSE 2017-09-18
P.179 spring.datasource.url:jdbc:h2:mem:customers;DB_CLOSE_ON_EXIT=FALSE spring.datasource.url:jdbc:log4jdbc:h2:mem:customers;DB_CLOSE_ON_EXIT=FALSE 2017-09-18

補足

"[4.6.4] 「Spring Boot Actuator」で「アプリケーションの状態」を監視"のSpring Boot 1.5対応

Spring Boot 1.5から、「Spring Boot Actuator」のエンドポイントに対して、自動で認可設定が行われるようになりました。 [3.5]で説明したSpring Securityを使用し、認証ユーザーに対して"ROLE_ACTUATOR"ロールを付与する事で、 認証後に「Spring Boot Actuator」のエンドポイントにアクセスできます。

あるいはapplication.properties

management.security.enabled=false

を設定する事で、「Spring Boot Actuator」に対する認可制御を無効にできます。

Spring Cloud Connectorsのコネクションプールに関する設定

AbstractCloudConfigのデフォルト設定ではコネクションプールに関する設定が固定されてしまいます。コネクションプールに関する設定を行う場合は、次のようにPooledServiceConnectorConfig.PoolConfigクラスを使用します。

package com.example;

import javax.sql.DataSource;

import org.springframework.cloud.config.java.AbstractCloudConfig;
import org.springframework.cloud.service.PooledServiceConnectorConfig;
import org.springframework.cloud.service.relational.DataSourceConfig;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

@Configuration
@Profile("cloud")
public class CloudConfig extends AbstractCloudConfig {
    @Bean
    DataSource dataSource() {
        PooledServiceConnectorConfig.PoolConfig poolConfig = new PooledServiceConnectorConfig.PoolConfig(
                5 /* 最小プール数 */, 30 /* 最大プール数 */, 3000 /* 最大待機時間 */);
        return connectionFactory().dataSource(new DataSourceConfig(poolConfig, null));
    }
}

実は[4.6.3]で説明したAuto-Reconfigurationを利用すると次のログが出力されていました。

org.apache.tomcat.jdbc.pool.ConnectionPool         WARNING maxIdle is larger than maxActive, setting maxIdle to: 4``

これはAuto-Reconfiguration側で最大接続数を4に指定しているからです(バックエンドサービスの無償枠向け)。[14]

基本的にはspring-cloud-connectorを使って、コネクションプールの設定をすべきです。

[14] .. https://discuss.pivotal.io/hc/en-us/articles/221898227-Connection-pool-warning-message-maxIdle-is-larger-than-maxActive-setting-maxIdle-to-4-seen-in-PCF-deployed-Spring-app

「[4.5.4] アプリケーションのログ」で言及されているログマネージャーとの連携方法

https://github.com/Pivotal-Japan/cf-workshop/blob/master/logging.md に記載しました。

PCF Devについて

PCF Devは開発用にローカル環境で簡単にCloud Foundryを試すためのVM環境です。Pivotal Cloud Foundryが提供しているサービス(MySQL、Redis、RabbitMQ)も初めから組み込まれていて、Virtual Boxだけで簡単にローカル開発環境を用意できます。

書面では名前だけ挙げて、使い方を紹介していないため、 PCF Devの使い方はこちらを参照してください。

FAQ

PCF Devで本のサンプルアプリをデプロイできない

Spring Boot 1.4からはjarのレイアウトが変わり、Cloud Foundryで動かすにはJava Buildpack 3.7以上が必要になります。PCF Dev v.0.20.0以上を使用してください。

PCF Dev v0.19以下の場合の対応方法はこちらを参照してください。