Submit Search
Upload
Spring Initializrをハックする-カスタマイズを通してその内部実装を覗く
•
0 likes
•
1,583 views
A
apkiban
Follow
2019-11-15 JSUG発表資料 Spring Initializrをハックする -カスタマイズを通してその内部実装を覗く
Read less
Read more
Technology
Report
Share
Report
Share
1 of 84
Download now
Download to read offline
Recommended
Spring Integration 超入門
Spring Integration 超入門
Yasutaka Sugamura
システム間連携を担うSpring Integrationのエンタープライズ開発での活用
システム間連携を担うSpring Integrationのエンタープライズ開発での活用
apkiban
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
Recruit Lifestyle Co., Ltd.
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf
信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf
株式会社MonotaRO Tech Team
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
apkiban
Recommended
Spring Integration 超入門
Spring Integration 超入門
Yasutaka Sugamura
システム間連携を担うSpring Integrationのエンタープライズ開発での活用
システム間連携を担うSpring Integrationのエンタープライズ開発での活用
apkiban
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
Recruit Lifestyle Co., Ltd.
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf
信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf
株式会社MonotaRO Tech Team
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
apkiban
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
Helidon 概要
Helidon 概要
オラクルエンジニア通信
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
gree_tech
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
NTT DATA Technology & Innovation
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
AdvancedTechNight
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本
kazuki kumagai
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
オープンソースのAPIゲートウェイ Kong ご紹介
オープンソースのAPIゲートウェイ Kong ご紹介
briscola-tokyo
Spring integration概要
Spring integration概要
kuroiwa
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
Hitachi, Ltd. OSS Solution Center.
Spring tools4
Spring tools4
Takuya Iwatsuka
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
Daichi Koike
Spark+AI Summit Europe 2019 セッションハイライト(Spark Meetup Tokyo #2 講演資料)
Spark+AI Summit Europe 2019 セッションハイライト(Spark Meetup Tokyo #2 講演資料)
NTT DATA Technology & Innovation
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTT DATA Technology & Innovation
More Related Content
What's hot
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
Helidon 概要
Helidon 概要
オラクルエンジニア通信
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
gree_tech
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
NTT DATA Technology & Innovation
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
AdvancedTechNight
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本
kazuki kumagai
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
オープンソースのAPIゲートウェイ Kong ご紹介
オープンソースのAPIゲートウェイ Kong ご紹介
briscola-tokyo
Spring integration概要
Spring integration概要
kuroiwa
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
Hitachi, Ltd. OSS Solution Center.
Spring tools4
Spring tools4
Takuya Iwatsuka
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
Daichi Koike
What's hot
(20)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Helidon 概要
Helidon 概要
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
オープンソースのAPIゲートウェイ Kong ご紹介
オープンソースのAPIゲートウェイ Kong ご紹介
Spring integration概要
Spring integration概要
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
Spring tools4
Spring tools4
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
Similar to Spring Initializrをハックする-カスタマイズを通してその内部実装を覗く
Spark+AI Summit Europe 2019 セッションハイライト(Spark Meetup Tokyo #2 講演資料)
Spark+AI Summit Europe 2019 セッションハイライト(Spark Meetup Tokyo #2 講演資料)
NTT DATA Technology & Innovation
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTT DATA Technology & Innovation
Aws summit tokyo 2016
Aws summit tokyo 2016
Shotaro Motomura
"Up" with vagrant and docker
"Up" with vagrant and docker
Hiroshi Miura
CData Sync × Google BigQuery 3ステップで各データソースとのデータ連携を実現
CData Sync × Google BigQuery 3ステップで各データソースとのデータ連携を実現
CData Software Japan
Azure の App Center でアプリの 使用状況を分析する
Azure の App Center でアプリの 使用状況を分析する
Yusuke Kojima
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
法林浩之
さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~
法林浩之
20160527_06_Azure Certified for IoT for 共創ラボ
20160527_06_Azure Certified for IoT for 共創ラボ
IoTビジネス共創ラボ
de:code2018 登壇資料
de:code2018 登壇資料
Hiroshi Senga
Tokyo H2O.ai Meetup#2 by Iida
Tokyo H2O.ai Meetup#2 by Iida
Hidenori Fujioka
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
Daisuke Ikeda
Azure のApp Center でアプリの 使用状況を分析する
Azure のApp Center でアプリの 使用状況を分析する
Yusuke Kojima
MLOps NYC 2019 and Strata Data Conference NY 2019 report nttdata
MLOps NYC 2019 and Strata Data Conference NY 2019 report nttdata
NTT DATA Technology & Innovation
Excel × Google BigQuery CData Driver で BigQuery とのデータ連携を実現
Excel × Google BigQuery CData Driver で BigQuery とのデータ連携を実現
CData Software Japan
Accel series 2015_summer
Accel series 2015_summer
NTTDATA INTRAMART
まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
NTT DATA Technology & Innovation
TypeScript製フレームワーク「Nest」のご紹介
TypeScript製フレームワーク「Nest」のご紹介
bitbank, Inc. Tokyo, Japan
Rancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げる
Michitaka Terada
kintoneのデータをSQLで操作!? ~Drivers/Gateway/Sync 徹底比較~
kintoneのデータをSQLで操作!? ~Drivers/Gateway/Sync 徹底比較~
CData Software Japan
Similar to Spring Initializrをハックする-カスタマイズを通してその内部実装を覗く
(20)
Spark+AI Summit Europe 2019 セッションハイライト(Spark Meetup Tokyo #2 講演資料)
Spark+AI Summit Europe 2019 セッションハイライト(Spark Meetup Tokyo #2 講演資料)
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
Aws summit tokyo 2016
Aws summit tokyo 2016
"Up" with vagrant and docker
"Up" with vagrant and docker
CData Sync × Google BigQuery 3ステップで各データソースとのデータ連携を実現
CData Sync × Google BigQuery 3ステップで各データソースとのデータ連携を実現
Azure の App Center でアプリの 使用状況を分析する
Azure の App Center でアプリの 使用状況を分析する
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~
20160527_06_Azure Certified for IoT for 共創ラボ
20160527_06_Azure Certified for IoT for 共創ラボ
de:code2018 登壇資料
de:code2018 登壇資料
Tokyo H2O.ai Meetup#2 by Iida
Tokyo H2O.ai Meetup#2 by Iida
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
Azure のApp Center でアプリの 使用状況を分析する
Azure のApp Center でアプリの 使用状況を分析する
MLOps NYC 2019 and Strata Data Conference NY 2019 report nttdata
MLOps NYC 2019 and Strata Data Conference NY 2019 report nttdata
Excel × Google BigQuery CData Driver で BigQuery とのデータ連携を実現
Excel × Google BigQuery CData Driver で BigQuery とのデータ連携を実現
Accel series 2015_summer
Accel series 2015_summer
まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
TypeScript製フレームワーク「Nest」のご紹介
TypeScript製フレームワーク「Nest」のご紹介
Rancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げる
kintoneのデータをSQLで操作!? ~Drivers/Gateway/Sync 徹底比較~
kintoneのデータをSQLで操作!? ~Drivers/Gateway/Sync 徹底比較~
More from apkiban
大規模・長期保守を見据えたエンタープライズシステム開発へのSpring Frameworkの適用
大規模・長期保守を見据えたエンタープライズシステム開発へのSpring Frameworkの適用
apkiban
What happens in Spring Cloud Netflix
What happens in Spring Cloud Netflix
apkiban
SpringOne Platform 2018 全体報告
SpringOne Platform 2018 全体報告
apkiban
新しいTERASOLUNA Batch Frameworkとは
新しいTERASOLUNA Batch Frameworkとは
apkiban
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」
apkiban
TERASOLUNA Framework on the Spring IO Platform
TERASOLUNA Framework on the Spring IO Platform
apkiban
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
apkiban
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
apkiban
バッチは地味だが役に立つ
バッチは地味だが役に立つ
apkiban
Spring 5 でSpring Test のここが変わる
Spring 5 でSpring Test のここが変わる
apkiban
More from apkiban
(10)
大規模・長期保守を見据えたエンタープライズシステム開発へのSpring Frameworkの適用
大規模・長期保守を見据えたエンタープライズシステム開発へのSpring Frameworkの適用
What happens in Spring Cloud Netflix
What happens in Spring Cloud Netflix
SpringOne Platform 2018 全体報告
SpringOne Platform 2018 全体報告
新しいTERASOLUNA Batch Frameworkとは
新しいTERASOLUNA Batch Frameworkとは
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」
TERASOLUNA Framework on the Spring IO Platform
TERASOLUNA Framework on the Spring IO Platform
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
バッチは地味だが役に立つ
バッチは地味だが役に立つ
Spring 5 でSpring Test のここが変わる
Spring 5 でSpring Test のここが変わる
Recently uploaded
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Recently uploaded
(11)
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Spring Initializrをハックする-カスタマイズを通してその内部実装を覗く
1.
© 2019 NTT
DATA Corporation 2019/11/15 日本Springユーザ会主催 Spring One 2019報告会 株式会社NTTデータ システム技術本部 齊加匠 Spring Initializrをハックする -カスタマイズを通してその内部実装を覗く
2.
© 2019 NTT
DATA Corporation 2 { “name”: { “ja”: “齊加匠”, ”en”: “SAIKA TAKUMI”, }, “company”: “NTTDATA”, “favorites”: [“Arch Linux”, “Golang”, “Neovim”], “github”: “takumi34”, “twitter”: “@Untergrund_idol”, “blog”: “takumi34.github.io”, } 自己紹介
3.
© 2019 NTT
DATA Corporation 3 現地での写真 NTTデータの出展ブース
4.
© 2019 NTT
DATA Corporation 4 話すこと Spring Initializrの カスタマイズについて
5.
© 2019 NTT
DATA Corporation 5 「Creating “The Second Best Place on the Internet” with Spring Initializr」 Stéphane Nicoll https://content.pivotal.io/slides/creating-the-second-best-place-on-the-internet- with-spring-initializr https://github.com/snicoll/demo-custom-initializr 聴講したセッション
6.
© 2019 NTT
DATA Corporation 6 1.軽い紹介 2.歴史 3.カスタマイズ もくじ
7.
© 2019 NTT
DATA Corportion 7 第一部
8.
© 2019 NTT
DATA Corporation 8 Spring Initializr
9.
© 2019 NTT
DATA Corporation 9 Web, IDE, CLIなどのクライアントから Spring Bootのプロジェクトを 生成できるツール Spring Initializr
10.
© 2019 NTT
DATA Corporation 10 WEB UI https://start.spring.io/
11.
© 2019 NTT
DATA Corporation 11 start.spring.io https://github.com/spring-io/start.spring.io
12.
© 2019 NTT
DATA Corporation 12 Initializr https://github.com/spring-io/initializr
13.
© 2019 NTT
DATA Corporation 13 Spring Initializr の軽い説明
14.
© 2019 NTT
DATA Corporation 14 例
15.
© 2019 NTT
DATA Corporation 17 Webだと
16.
© 2019 NTT
DATA Corporation 18 https://start.spring.io/
17.
© 2019 NTT
DATA Corporation 19 コマンドライン でも出来る
18.
© 2019 NTT
DATA Corporation 20 ➜ curl https://start.spring.io/starter.tgz -d dependencies=web | tar -xzvf – ➜ tree . ├── HELP.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src ├── main │ ├── java │ │ └── com │ │ └── example │ │ └── demo │ │ └── DemoApplication.java │ └── resources │ ├── application.properties │ ├── static │ └── templates └── test └── java └── com └── example └── demo └── DemoApplicationTests.java 14 directories, 7 files Curlだと
19.
© 2019 NTT
DATA Corporation 23 IDEでも出来る
20.
© 2019 NTT
DATA Corporation 24 IntelliJ IDEA Ultimateだと
21.
© 2019 NTT
DATA Corporation 25 ちなみに Spring Boot CLIでも
22.
© 2019 NTT
DATA Corporation 27 ここまでは ちょっとした紹介
23.
© 2019 NTT
DATA Corportion 28 第二部
24.
© 2019 NTT
DATA Corporation 29 歴史
25.
© 2019 NTT
DATA Corporation 30 2013誕生
26.
© 2019 NTT
DATA Corporation 33 Initializr e
27.
© 2019 NTT
DATA Corporation 34 Initializr
28.
© 2019 NTT
DATA Corporation 36 最初は簡単なgroovy script https://content.pivotal.io/slides/creating-the-second-best-place-on-the-internet-with-spring-initializr
29.
© 2019 NTT
DATA Corporation 37 • Terminal Support – Spring Boot CLI (March 2014) – CURL, HTTP (Jan 2015) • IDE – STS, IntelliJ IDEA (March 2015) – Netbeans (May 2016) – VSCode (Jan 2018) Supportの広がり
30.
© 2019 NTT
DATA Corporation 41 Spring Initializr の凄さ
31.
© 2019 NTT
DATA Corporation 42 Spring Bootの エコシステムを 形成
32.
© 2019 NTT
DATA Corporation 43 一か月で世界で 1M以上の ダウンロード
33.
© 2019 NTT
DATA Corporation 44 すごい!
34.
© 2019 NTT
DATA Corportion 50 第三部
35.
© 2019 NTT
DATA Corporation 51 カスタマイズの 話
36.
© 2019 NTT
DATA Corporation 52 そもそもカスタマイズし て何がうれしい?
37.
© 2019 NTT
DATA Corporation 53 例えば こんなことが出来る
38.
© 2019 NTT
DATA Corporation 54 • UIの変更 • パッケージのオプションの変更 • デフォルトの依存関係の変更 • 3rd partyの依存関係の追加 • .gitignoreの変更やREADMEの追加 など カスタマイズの例
39.
© 2019 NTT
DATA Corporation 56 実際に カスタマイズして いる事例
40.
© 2019 NTT
DATA Corporation 57 https://github.com/ssherwood/presentations/blob/master/springone-2016/easy- microservices/initializr-guide.adoc ↑内容はちょっと古い https://www.slideshare.net/SpringCentral/easy-consumption-of-microservices Spring One 2016の発表
41.
© 2019 NTT
DATA Corporation 59 まずはInitializr の中身見てみる
42.
© 2019 NTT
DATA Corporation 60 https://github.com/spring-io/initializr
43.
© 2019 NTT
DATA Corporation 64 旧 新(2019年2月から) https://spring.io/blog/2019/02/20/what-s-new-with-spring-initializr
44.
© 2019 NTT
DATA Corporation 65 複雑になってる
45.
© 2019 NTT
DATA Corporation 66 なんで?
46.
© 2019 NTT
DATA Corporation 67 時は2017年に遡る https://github.com/spring-io/initializr/issues/340
47.
© 2019 NTT
DATA Corporation 68 今までもInitializrをカスタマイズす ることは可能だった
48.
© 2019 NTT
DATA Corporation 69 しかし、libraryをforkして変更しな ければならなかった
49.
© 2019 NTT
DATA Corporation 71 2019年10月に Spring Initializr 0.8.0がリリースされた
50.
© 2019 NTT
DATA Corporation 72 Spring Initializr 0.8 brings a complete rewrite of the project generation API with dedicated abstractions for common assets of JVM-based projects. (中略) This should make the creation of a custom instance easier than ever! Spring Initializr 0.8.0リリースの目玉 https://spring.io/blog/2019/10/14/spring-initializr-0-8-0-available-now
51.
© 2019 NTT
DATA Corporation 74 • BuildCustomizer to add dependencies, plugins or other configuration items • ProjectContributor, a high-level hook-point to add assets to a directory structure https://spring.io/blog/2019/02/20/what-s-new-with-spring-initializr 新たに追加されたAPI
52.
© 2019 NTT
DATA Corporation 77 これがあると何 がうれしい?
53.
© 2019 NTT
DATA Corporation 78 実際に自分 で使ってカスタ マイズしてみた
54.
© 2019 NTT
DATA Corporation 79 セッションとは 違うカスタマイ ズ
55.
© 2019 NTT
DATA Corporation 80 まずは 依存関係に追記
56.
© 2019 NTT
DATA Corporation 82 dependencies { implementation ("org.springframework.boot:spring-boot-starter-web“) implementation("io.spring.initializr:initializr-web") implementation("io.spring.initializr:initializr-generator-spring") } dependencyManagement { imports { mavenBom "io.spring.initializr:initializr-bom:0.8.0.RELEASE" } } build.gradle
57.
© 2019 NTT
DATA Corporation 83 dependencies { implementation ("org.springframework.boot:spring-boot-starter-web“) implementation("io.spring.initializr:initializr-web") implementation("io.spring.initializr:initializr-generator-spring") } dependencyManagement { imports { mavenBom "io.spring.initializr:initializr-bom:0.8.0.RELEASE" } } build.gradle BOM(a Bill of Materials)
58.
© 2019 NTT
DATA Corporation 85 これでlocalhost:8080ア クセスすると
59.
© 2019 NTT
DATA Corporation 86 jsonが出る
60.
© 2019 NTT
DATA Corporation 88 IntelliJ IDEAなどでlocalhost:8080にアクセスするとやりやすい
61.
© 2019 NTT
DATA Corporation 89 次は BuildCustomizer ProjectContributer を使ってみる
62.
© 2019 NTT
DATA Corporation 90 io.spring.initializr.generator.project.ProjectGenerationConfiguration=\ com.chika.custominitializr.contributer.SampleProjectGenerationConfiguration spring.factoriesにパス記載
63.
© 2019 NTT
DATA Corporation 91 io.spring.initializr.generator.project.ProjectGenerationConfiguration=\ com.chika.custominitializr.contributer.SampleProjectGenerationConfiguration spring.factoriesにパス記載 自動でコンポーネントスキャンされるわけじゃないの で、spring.factoriesで登録する必要あり
64.
© 2019 NTT
DATA Corporation 92 @ProjectGenerationConfiguration public class SampleProjectGenerationConfiguration { @Bean public BannerContributor bannerContributor() { return new BannerContributor(); } @Bean public BuildCustomizer<MavenBuild> devtoolsContributor () { return (build) -> build.dependencies().add("devtools", "org.springframework.boot","spring-boot-devtools", DependencyScope.COMPILE); } } デフォルトの依存関係をカスタマイズ
65.
© 2019 NTT
DATA Corporation 93 @ProjectGenerationConfiguration public class SampleProjectGenerationConfiguration { @Bean public BannerContributor bannerContributor() { return new BannerContributor(); } @Bean public BuildCustomizer<MavenBuild> devtoolsContributor () { return (build) -> build.dependencies().add("devtools", "org.springframework.boot","spring-boot-devtools", DependencyScope.COMPILE); } } デフォルトの依存関係をカスタマイズ このアノテーション
66.
© 2019 NTT
DATA Corporation 94 @ProjectGenerationConfiguration public class SampleProjectGenerationConfiguration { @Bean public BannerContributor bannerContributor() { return new BannerContributor(); } @Bean public BuildCustomizer<MavenBuild> devtoolsContributor () { return (build) -> build.dependencies().add("devtools", "org.springframework.boot","spring-boot-devtools", DependencyScope.COMPILE); } } デフォルトの依存関係をカスタマイズ このアノテーション 依存関係に devtoolsを追加
67.
© 2019 NTT
DATA Corporation 95 実際に プロジェクトを 生成すると
68.
© 2019 NTT
DATA Corporation 96 pom.xmlが変更されている
69.
© 2019 NTT
DATA Corporation 97 起動バナーをカスタマイズ public class BannerContributor implements ProjectContributor { public void contribute(Path projectRoot) throws IOException { Path bannerDirectory = projectRoot .resolve("src/main/resources"); Files.createDirectories(bannerDirectory); Path file =Files.createFile(bannerDirectory.resolve("banner.txt")); try (PrintWriter writer = new PrintWriter(Files.newBufferedWriter(file))) { writer.println( " _____ _ _ _ ¥n" + " / ____| | | (_) | | ¥n" + " | | | |__ _ | | __ __ _ ¥n" + " | | | '_ ¥¥ | | | |/ / / _` |¥n" + " | |____ | | | | | | | < | (_| |¥n" + " ¥¥_____| |_| |_| |_| |_|¥¥_¥¥ ¥¥__,_|¥n" ); } } }
70.
© 2019 NTT
DATA Corporation 98 実際に プロジェクトを 生成すると
71.
© 2019 NTT
DATA Corporation 99 起動バナーが変更されている
72.
© 2019 NTT
DATA Corporation 101 他にも
73.
© 2019 NTT
DATA Corporation 103 例えばapplication.ymlに こう書くと
74.
© 2019 NTT
DATA Corporation 104 initializr: dependencies: - name: Web content: - name: Web id: web description: webだよ!!! types: - name: Maven Project id: maven-project description: mvn tags: build: maven format: project default: true action: /starter.zip application.yml packagings: - name: Jar id: jar default: true javaVersions: - id: 11 default: true languages: - name: Java id: java default: true - name: Kotlin id: kotlin default: false group-id: value: org.chika
75.
© 2019 NTT
DATA Corporation 105 initializr: dependencies: - name: Web content: - name: Web id: web description: webだよ!!! types: - name: Maven Project id: maven-project description: mvn tags: build: maven format: project default: true action: /starter.zip application.yml packagings: - name: Jar id: jar default: true javaVersions: - id: 11 default: true languages: - name: Java id: java default: true - name: Kotlin id: kotlin default: false group-id: value: org.chika Descriptio nを変更 Defaultも 変えられる initializrの namespace で指定 chika になってる
76.
© 2019 NTT
DATA Corporation 106 STSでプロジェクトを生成しようとすると
77.
© 2019 NTT
DATA Corporation 107 STSでプロジェクトを生成しようとすると Discriptionが 変更されてる
78.
© 2019 NTT
DATA Corporation 113 とりあえず やってみたい方
79.
© 2019 NTT
DATA Corporation 115 https://github.com/spring-io/initializr/tree/master/initializr-service-sample
80.
© 2019 NTT
DATA Corporation 116 簡単に試せる
81.
© 2019 NTT
DATA Corporation 118 Spring Initializr凄い! まとめ
82.
© 2019 NTT
DATA Corporation 119 カスタマイズやってみよ う! まとめ
83.
© 2019 NTT
DATA Corporation 120 https://github.com/takumi34/custom-spring-initializr 今回使ったコードはここに格納しています
84.
© 2019 NTT
DATA Corporation
Download now