SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
おじさん
SpringBootの研修本で
学んだこと
1
目次
・Spring Bootとは
・プログラム紹介1
・プログラム紹介2
・まとめ
2
Spring Bootとは:
概要
・Spring Frameworkによる開発を素早く、簡単に行えるようにする
・Spring Frameworkは機能が多い
・環境構築や設定が大変
・面倒な作業を簡略化するためのフレームワーク
3
Spring Bootとは:
Spring Framework
Spring Framework:
・Javaのアプリ開発に必要な機能や処理をまとめたフレームワーク
・DIやアスペクト指向を導入
・オープンソースであり、拡張されて様々な機能がある
Spring Data、Spring Web、Spring Boot等
4
Spring Bootとは:
Spring Framework
Spring Web:
・Webアプリを作る時のベースとなるフレームワーク
「Spring Web MVC」 「Spring WebFlux」等
Spring Data:
・データベースアクセスに関するフレームワーク
「Spring Data JPA」「Spring Data JDBC」
5
Spring Bootとは:
MVCモデル
・ソフトウェアの設計の考え方
・Model、View、Controllerという要素に分ける
・Webアプリ開発で使用されることが多い
・プログラムの構成がわかりやすく
・変更に強くなる
・無駄なコンパイルが減る
6
Spring Bootとは:
MVCモデル
Model:
・データベースへの入出力や操作を担当する
View:
・ユーザ入力の受付や画面への出力を担当する
Controller:
・ViewとModelを管理する
・リクエストに応じて、Modelからデータを取り出し、Viewに反映させる
7
Spring Bootとは:
MVCモデル
8
プログラム1
使用した機能
Thymeleaf:
・Javaのテンプレートエンジン
・HTMLに付け足すような形で処理を書ける
・MVCのView
JPA:
・オブジェクトをデータベースに保存したり、
・データベースからJavaのオブジェクトを作ったりといった操作を提供するもの
・MVCのModel
H2 Database:
・Javaで製作されたオープンソースのSQLデータベースを扱うライブラリ
・メモリ上やファイルにデータベースを保存できる
9
プログラム1
機能の追加
・pom.xmlの<dependencies> タグを編集
・<dependency>タグを追加
10
プログラム1
プログラム概要
・JavaのプログラムからHTMLを書き換えるプログラム
・spring Tool Suite4を使用(Spring開発用のIDE)
プログラムの構成:
・MyBootAppDataApplication.java ←アプリの開始処理
・MainController.java ←コントローラの処理
・index.html ←Webアプリで表示するページ
11
プログラム1
アプリの開始処理
12
プログラム1
アプリの開始処理
@SpringBootApplication:
@EnableAutoCon
fi
guration、@Con
fi
guration、@ComponentScanの組み合わせ
Springのアプリを動かすのに必要な設定を自動でおこなってくれる
SpringApplication.run():
アプリを起動するメソッド
@SpringBootApprication(@EnableAutoCon
fi
guration)のついたクラスを指定する
13
プログラム1
コントローラの処理
14
プログラム1
コントローラの処理
@Controller:
クラスをコントローラとして定義
インスタンス化はSpringBootがやってくれる
@RequestMapping:
リクエストに対して実行するメソッドの指定
value:処理を実行するページ
method:リクエストの種類を設定する
15
プログラム1
コントローラの処理
ModelAndView:
ModelとViewの情報を管理できる型
mav.setViewName("ページ名"):
使用するViewの名前を指定する
mav.addObject("オブジェクト名", データ):
Viewに渡すデータを追加
「msg」というオブジェクトを作成、「AAA」という値を追加
16
プログラム1
Webアプリで表示するページ
17
プログラム1
Webアプリで表示するページ
xmlns:th="URL":
xmlns:XMLの名前空間の指定。
要素名等の衝突を避けるためのもの。
th:text=“${オブジェクト}":
${式} (EL式)でオブジェクトにアクセス
th:textでオブジェクトをテキストとして出力
タグの中の文字は無視される
h
18
主な流れ
・Springのアプリとして起動するように設定
・コントローラでGETリクエストを受け取る
・ビューにmsgという名前でデータ(AAA)を渡す
・ビュー(Tymeleaf)が受け取ったデータを、
HTML内の名前が一致するところに追加
・ページを表示
19
プログラム1
実行結果
20
プログラム2
プログラム概要
データベースにデータを保存、Viewに渡して表示するプログラム
プログラム構成:
・MyBootAppDataApplication.java
・TestEntity.java ←保存するデータ
・TestRepository.java ←データベースの操作
・MainController.java ←コントローラの処理
・index.html ←Webアプリで表示するページ
21
プログラム2
保存するデータ
22
プログラム2
@Entity:
クラスをエンティティとして扱えるようにする
エンティティ:
データベースのテーブルに保存するデータ
@Table(name = "test̲table"):
使用するテーブル名を指定する
省略するとクラス名がそのまま使われる
@Id:
主キーの設定をする
@Column(name = "", length = , nullable = ):
カラムの設定
名前、最大長(文字数)、nullを許可するか
保存するデータ
23
プログラム2
データベースの操作
24
プログラム2
データベースの操作
interface:
インターフェース
抽象メソッドと定数だけを定義したもの
JpaRepository:
JPAでデータベースにアクセスするためのもの
extends:
継承
クラスの変数や関数をひきつぐ
クラス<T>:
ジェネリクス
いろいろな形を入れられるようになる
25
プログラム2
コントローラの処理
26
@Autowired
TestRepository repos:
自動でインスタンスを割り当てる
TestRepositoryのインスタンスをSpringBoot側が用意してくれる
@Transactional:
データベースの操作を一括でおこなう指定
repos.saveAndFlush(エンティティ):
エンティティのインスタンスをデータベースに保存し、更新するメソッド
repos.
fi
ndAll():
データを全て取得するメソッド
プログラム2
コントローラの処理
27
プログラム2
Webアプリで表示するページ
28
プログラム2
Webアプリで表示するページ
th:each="変数 : ${オブジェクト名}":
渡されたオブジェクトの個数分、
そのタグを繰り返して処理
変数は繰り返してく中で次のオブジェクトが入る
th:text="${obj.data}":
th:eachでobjと名前をつけたオブジェクトにアクセス
その中のdataの値をテキストとして取得
29
プログラム2
主な流れ
・データベースに登録するデータのクラスを作成
・データベースの操作用クラスを作成
・コントローラでリクエストを受け取ったら
・エンティティ(TestEntity)を作成し、データ(1111、2222)を持たせる
・リポジトリでデータベースにデータを保存
・リポジトリから保存したデータを取得し、ビューにデータをdataという名前で渡す
・ビューがデータを受け取り、データの個数分 h1タグを繰り返す
・h1タグはデータの中身(1111、2222)をテキストに変換する
・ページを表示
30
プログラム2
実行結果
31
まとめ:
・Spring Bootについて
・Javaのフレームワーク
・Spring Frameworkの開発を簡単に
・簡単なプログラムを紹介
Spring Bootを使えば
・WebアプリをMVCで作れる
・画面の処理やデータベースとの連携も簡単
・アプリの処理を書くことに集中できる
・開発が楽に
32

Weitere ähnliche Inhalte

Ähnlich wie SpringBootの研修本で学んだこと

VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
tomotoshi
 

Ähnlich wie SpringBootの研修本で学んだこと (20)

Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門
 
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
 
スキトラ Spring + mybatis
スキトラ Spring + mybatisスキトラ Spring + mybatis
スキトラ Spring + mybatis
 
ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法
ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法
ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法
 
Visual Studio 2017 事はじめ
Visual Studio 2017 事はじめVisual Studio 2017 事はじめ
Visual Studio 2017 事はじめ
 
アジャイル開発&TFS導入
アジャイル開発&TFS導入アジャイル開発&TFS導入
アジャイル開発&TFS導入
 
Laravel5を使って開発してみた
Laravel5を使って開発してみたLaravel5を使って開発してみた
Laravel5を使って開発してみた
 
Spring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web ServiceSpring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web Service
 
Lightning componentとlightning design system
Lightning componentとlightning design systemLightning componentとlightning design system
Lightning componentとlightning design system
 
はじめての ASP.NET MVC
はじめての ASP.NET MVCはじめての ASP.NET MVC
はじめての ASP.NET MVC
 
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
 
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
 
Djangoとは
DjangoとはDjangoとは
Djangoとは
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
 
はじめての Azure 開発
はじめての Azure 開発はじめての Azure 開発
はじめての Azure 開発
 
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
 
Jsug 20160422 slides
Jsug 20160422 slidesJsug 20160422 slides
Jsug 20160422 slides
 
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
 
Springを使ったwebアプリにリファクタリングしよう
Springを使ったwebアプリにリファクタリングしようSpringを使ったwebアプリにリファクタリングしよう
Springを使ったwebアプリにリファクタリングしよう
 
DevOps and Compliance and Security
DevOps and Compliance and SecurityDevOps and Compliance and Security
DevOps and Compliance and Security
 

Mehr von iPride Co., Ltd.

AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
iPride Co., Ltd.
 

Mehr von iPride Co., Ltd. (20)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
 
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作りAWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作り
 
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
 
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
 
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
 
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
 
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
 
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものですAWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
 
AWS SAM入門 2024/01/26の勉強会で発表されたものです【アイ・プライド】
AWS SAM入門  2024/01/26の勉強会で発表されたものです【アイ・プライド】AWS SAM入門  2024/01/26の勉強会で発表されたものです【アイ・プライド】
AWS SAM入門 2024/01/26の勉強会で発表されたものです【アイ・プライド】
 
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
 
ChatGPTを用いてCDKを勉強
ChatGPTを用いてCDKを勉強ChatGPTを用いてCDKを勉強
ChatGPTを用いてCDKを勉強
 
OpenID Connectについて
OpenID ConnectについてOpenID Connectについて
OpenID Connectについて
 
画像生成AIの問題点
画像生成AIの問題点画像生成AIの問題点
画像生成AIの問題点
 
AI入門
AI入門AI入門
AI入門
 

Kürzlich hochgeladen

Kürzlich hochgeladen (9)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

SpringBootの研修本で学んだこと