プログラミングスキルのある学生が時給2000円で働いていて、大学生の時ぼくはプログラミングをなぜもっと早くやらなかったのだととても後悔している。家でできるし、学ぶだけ市場価値上がる。僕はなぜコンビニで朝6時に起きて、3時間無心でおにぎりを握って時給880円で労働してたんだ。
— Dai (@never_be_a_pm) 2018年7月15日
月: 2018年7月
Spring Bootでチャートを生成・表示する
チャートを生成・表示する
ソースコード
変更(追加)
- build.grade: jfreechartをdependenciesに追加
新規作成
- DateController: コントローラ
- テンプレート
実行例
ポイント
- チャート描画はJavaScriptで行うのが一般的だが、ここではJFreeChartを用いてサーバーサイドで生成している。
- 画像ファイルを生成するのではなく、data URIで画像データを表示している。
Spring Bootで日付を扱う(フォームから日付を入力する)
日付を扱う
ソースコード
新規作成
- DateController: コントローラ
- テンプレート
ポイント
- Javaにおいて日付の扱いは1)従来からあるDateクラスを使う方法と、2)Time APIを使う方法がある。教科書でどちらも詳しく解説されている。
- inputタグのtypeとして、dateやdatetime-localが使える。他にもmonth等がある。
- ThymeleafではDateに対するユーティリティーメソッドがある。
関連文書
変数の値とアドレス
前回のまとめ等
- 配列
- 同一型の複数のデータで、各データを添字によって区別する
- 添字は0から始まる整数
- 課題の解答例
課題の回答状況
- ◯ コンパイルできるソースコードを提出している。
- × 関数の定義の形が理解できていない。例: fizzbuzzの戻り値の型をintにしている、あるいは指定していない。
- × 演算子を正しく理解していない。例: for文で i=i++
- × 関数の使い方を理解していない。例: printf(“FizzBuzz “,i);
C言語における変数の値とアドレス、代入という操作について
変数の値とアドレスについて
- 変数は値を入れておく箱のようなもの。箱の名前のことを「変数名」という。
- 変数の値はコンピューターのメモリのどこかにに保存される。
- 「どこか」を知りたい場合、アドレス演算子を使うと取り出すことができる。
- 「アドレスを保存するための変数」があり、それを「ポインタ変数」という(教科書P.106、重要ポイント及び表7.1)。
- 同一型の複数のデータで、各データを添字によって区別する
- 添字は0から始まる整数
この辺りをしっかり理解しておくと、Javaを勉強するときに役立つ。
代入という演算について
- 「a = b」はbの値をコピーしてaの値にするという操作
- 「func(a)」とした場合、aの値をコピーして関数にわたされる
値とアドレスとポインタに関するサンプルプログラム
実行して結果を確かめよう。
ポイント:
- b: aを変更してもbの値は変わらない。
- *c: aと同じアドレスなので、aを変更すれば*cも変わる(変わるというかaの別名が*cと言っても良い)。
- 関数の引数は、値のコピー。
配列を引数とする関数
実行して結果を確かめよう。
ポイント:
- 値がコピーされた新しい配列が作られるわけではない。
- 先頭アドレスがコピーされる。
- 値がコピーされた新しい配列が欲しい場合は、関数ないで配列を宣言し値をコピーする。
変数の入れ替え
次の実行例と同じになるように、変数の値を入れ替えるプログラムを完成させよう。
元のプログラム: swap.c
1 2 3 4 |
aは1、bは2 xは1、yは2 xは2、yは1 aは2、bは1 |
Spring Bootでメール送信を行う
メール送信
ソースコード
Gmailを使う場合の例。
変更(追加)
- build.grade: spring-boot-starter-mailをdependenciesに追加
- application.properties: メールサーバに関する設定を追記
新規作成
- MailController: コントローラ
- テンプレート
関連文書
- 36. Sending Email (Spring Boot Reference Guide)
- アプリ パスワードでログイン: 送信サーバとしてGmailのサーバを使う場合はアプリパスワードを生成する必要がある。
Spring Bootでユーザ認証を行う
ユーザ認証
ソースコード
変更(追加)
- build.grade: spring-boot-starter-securityをdependenciesに追加
新規作成
- WebSecurityConfig.java: JavaConfigによるセキュリティの設定
- AuthController.java: コントローラ
- テンプレート
- schema.sql: 81.3 Initialize a Databaseに基づいたデータベースの初期化用ファイル
関連文書
- 28.1 MVC Security (Spring Boot Reference Guide)
- 85. Security (Spring Boot Reference Guide)
- spring-boot-sample-web-secure-jdbc
昨年度の資料はバージョンが古いので注意する必要があるが、参考になるはず。