Skip to main content
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Uploaded by
土岐 孝平
PDF, PPTX
27,273 views
これからSpringを使う開発者が知っておくべきこと
Springの初心者が疑問に思ったり、おかしな使い方をしてしまいがちなところをピックアップして説明します。
Software
◦
Read more
More Related Content
PDF
入社1年目のプログラミング初心者がSpringを学ぶための手引き
by
土岐 孝平
60 slides
28.6K views
PPTX
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
53 slides
11.7K views
PDF
例外設計における大罪
by
Takuto Wada
37 slides
76.9K views
PDF
今さら聞けないDiとspring
by
土岐 孝平
50 slides
25.6K views
PPTX
はじめてのElasticsearchクラスタ
by
Satoyuki Tsukano
63 slides
40.2K views
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
68 slides
5.8K views
PDF
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
by
Koichiro Matsuoka
89 slides
110K views
PDF
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
by
Koichiro Matsuoka
73 slides
16.5K views
入社1年目のプログラミング初心者がSpringを学ぶための手引き
by
土岐 孝平
60 slides
28.6K views
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
53 slides
11.7K views
例外設計における大罪
by
Takuto Wada
37 slides
76.9K views
今さら聞けないDiとspring
by
土岐 孝平
50 slides
25.6K views
はじめてのElasticsearchクラスタ
by
Satoyuki Tsukano
63 slides
40.2K views
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
68 slides
5.8K views
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
by
Koichiro Matsuoka
89 slides
110K views
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
by
Koichiro Matsuoka
73 slides
16.5K views
What's hot
PDF
Springを何となく使ってる人が抑えるべきポイント
by
土岐 孝平
18 slides
26.1K views
PDF
これから始めるSpringのwebアプリケーション
by
土岐 孝平
38 slides
20K views
PDF
怖くないSpring Bootのオートコンフィグレーション
by
土岐 孝平
39 slides
5.3K views
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
78 slides
17.9K views
PDF
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
by
ssuser070fa9
189 slides
32.7K views
PPTX
さくっと理解するSpring bootの仕組み
by
Takeshi Ogawa
38 slides
66.4K views
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
45 slides
174.7K views
PDF
Spring Bootをはじめる時にやるべき10のこと
by
心 谷本
108 slides
42.5K views
PDF
Junitを使ったjavaのテスト入門
by
Satoshi Kubo
77 slides
38.4K views
PDF
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
by
NTT DATA Technology & Innovation
62 slides
2K views
PDF
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
67 slides
79.1K views
PDF
SQL大量発行処理をいかにして高速化するか
by
Shogo Wakayama
27 slides
61K views
PDF
イミュータブルデータモデル(入門編)
by
Yoshitaka Kawashima
24 slides
197.2K views
PPTX
ぱぱっと理解するSpring Cloudの基本
by
kazuki kumagai
94 slides
21K views
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
by
Amazon Web Services Japan
64 slides
59.3K views
PDF
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
by
Hironobu Isoda
30 slides
2.8K views
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
60 slides
44.8K views
PDF
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
by
NTT DATA Technology & Innovation
84 slides
3.6K views
PDF
SolrとElasticsearchを比べてみよう
by
Shinsuke Sugaya
30 slides
53.8K views
PPT
Springを使ったwebアプリにリファクタリングしよう
by
土岐 孝平
27 slides
7K views
Springを何となく使ってる人が抑えるべきポイント
by
土岐 孝平
18 slides
26.1K views
これから始めるSpringのwebアプリケーション
by
土岐 孝平
38 slides
20K views
怖くないSpring Bootのオートコンフィグレーション
by
土岐 孝平
39 slides
5.3K views
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
78 slides
17.9K views
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
by
ssuser070fa9
189 slides
32.7K views
さくっと理解するSpring bootの仕組み
by
Takeshi Ogawa
38 slides
66.4K views
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
45 slides
174.7K views
Spring Bootをはじめる時にやるべき10のこと
by
心 谷本
108 slides
42.5K views
Junitを使ったjavaのテスト入門
by
Satoshi Kubo
77 slides
38.4K views
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
by
NTT DATA Technology & Innovation
62 slides
2K views
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
67 slides
79.1K views
SQL大量発行処理をいかにして高速化するか
by
Shogo Wakayama
27 slides
61K views
イミュータブルデータモデル(入門編)
by
Yoshitaka Kawashima
24 slides
197.2K views
ぱぱっと理解するSpring Cloudの基本
by
kazuki kumagai
94 slides
21K views
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
by
Amazon Web Services Japan
64 slides
59.3K views
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
by
Hironobu Isoda
30 slides
2.8K views
マイクロサービス 4つの分割アプローチ
by
増田 亨
60 slides
44.8K views
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
by
NTT DATA Technology & Innovation
84 slides
3.6K views
SolrとElasticsearchを比べてみよう
by
Shinsuke Sugaya
30 slides
53.8K views
Springを使ったwebアプリにリファクタリングしよう
by
土岐 孝平
27 slides
7K views
Similar to これからSpringを使う開発者が知っておくべきこと
PDF
Spring知っておきたい
by
Yuichi Hasegawa
17 slides
4.1K views
ODP
Spring2概論@第1回JSUG勉強会
by
Mitsuhiro Okamoto
76 slides
1.3K views
PPTX
初心者だった私がSpring(DIコンテナ)を分かるまで
by
英雅 田村
16 slides
2.5K views
PPTX
Spring I/O 2015 報告
by
Takuya Iwatsuka
63 slides
3.2K views
PDF
スケーラブルなアプリケーション開発を考える
by
Yusaku Watanabe
33 slides
1.9K views
PDF
Spring Day 2016 springの現在過去未来
by
Yuichi Hasegawa
44 slides
11.9K views
PPTX
Spring超入門-Springと出会ってから1年半-
by
Ryosuke Uchitate
67 slides
4.5K views
PPTX
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
by
Takahiro Fujii
36 slides
990 views
PDF
Spring4-DevLove発表資料
by
Yuichi Hasegawa
21 slides
3.5K views
PPTX
Spring 5に備えるリアクティブプログラミング入門
by
Takuya Iwatsuka
88 slides
32.1K views
PDF
20230206_SD輪読&座談会#41_kitazaki.pdf
by
Ayachika Kitazaki
15 slides
37 views
PDF
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
by
Toshiaki Maki
118 slides
16.6K views
PDF
SpringOneでの3⽇間とSpring 5.1最新情報
by
CASAREAL, Inc.
54 slides
732 views
PDF
Spring3.1概要x di
by
Yuichi Hasegawa
64 slides
7.8K views
PDF
企業におけるSpring@日本springユーザー会20090624
by
Yusuke Suzuki
36 slides
2K views
PDF
JSUG 20141127 「Spring Bootを用いたドメイン駆動設計」
by
Junichiro Kazama
37 slides
12.9K views
PDF
Spring Framework ふりかえりと4.3新機能
by
kimulla
42 slides
4.2K views
PPTX
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
by
Takeshi Hirosue
64 slides
15.3K views
PDF
Webエンジニアがラクして企業向けモバイルアプリを作る方法 ~Salesforce1モバイルコンテナを使った開発手法~
by
Mitch Okamoto
47 slides
2.1K views
PDF
Spring.project
by
広平 田村
107 slides
1.5K views
Spring知っておきたい
by
Yuichi Hasegawa
17 slides
4.1K views
Spring2概論@第1回JSUG勉強会
by
Mitsuhiro Okamoto
76 slides
1.3K views
初心者だった私がSpring(DIコンテナ)を分かるまで
by
英雅 田村
16 slides
2.5K views
Spring I/O 2015 報告
by
Takuya Iwatsuka
63 slides
3.2K views
スケーラブルなアプリケーション開発を考える
by
Yusaku Watanabe
33 slides
1.9K views
Spring Day 2016 springの現在過去未来
by
Yuichi Hasegawa
44 slides
11.9K views
Spring超入門-Springと出会ってから1年半-
by
Ryosuke Uchitate
67 slides
4.5K views
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
by
Takahiro Fujii
36 slides
990 views
Spring4-DevLove発表資料
by
Yuichi Hasegawa
21 slides
3.5K views
Spring 5に備えるリアクティブプログラミング入門
by
Takuya Iwatsuka
88 slides
32.1K views
20230206_SD輪読&座談会#41_kitazaki.pdf
by
Ayachika Kitazaki
15 slides
37 views
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
by
Toshiaki Maki
118 slides
16.6K views
SpringOneでの3⽇間とSpring 5.1最新情報
by
CASAREAL, Inc.
54 slides
732 views
Spring3.1概要x di
by
Yuichi Hasegawa
64 slides
7.8K views
企業におけるSpring@日本springユーザー会20090624
by
Yusuke Suzuki
36 slides
2K views
JSUG 20141127 「Spring Bootを用いたドメイン駆動設計」
by
Junichiro Kazama
37 slides
12.9K views
Spring Framework ふりかえりと4.3新機能
by
kimulla
42 slides
4.2K views
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
by
Takeshi Hirosue
64 slides
15.3K views
Webエンジニアがラクして企業向けモバイルアプリを作る方法 ~Salesforce1モバイルコンテナを使った開発手法~
by
Mitch Okamoto
47 slides
2.1K views
Spring.project
by
広平 田村
107 slides
1.5K views
More from 土岐 孝平
PDF
What's new in Spring Boot 2.6 ?
by
土岐 孝平
46 slides
1.6K views
PDF
SpringベースのCloud Native Application
by
土岐 孝平
40 slides
353 views
PDF
Spring fest2020 spring-security
by
土岐 孝平
22 slides
1.6K views
PDF
Microserviceの今どきのインフラを探る
by
土岐 孝平
20 slides
708 views
PDF
OpenID Connect入門
by
土岐 孝平
65 slides
2.6K views
PDF
業務システムとマイクロサービス
by
土岐 孝平
13 slides
1.5K views
PDF
エッセンシャルCore springハンズオン
by
土岐 孝平
17 slides
2.2K views
PPT
試験にでるSpring
by
土岐 孝平
26 slides
5.5K views
PPT
Spring3.1概要 データアクセスとトランザクション処理
by
土岐 孝平
62 slides
18K views
PPT
vFabricを触ろう
by
土岐 孝平
30 slides
1.8K views
What's new in Spring Boot 2.6 ?
by
土岐 孝平
46 slides
1.6K views
SpringベースのCloud Native Application
by
土岐 孝平
40 slides
353 views
Spring fest2020 spring-security
by
土岐 孝平
22 slides
1.6K views
Microserviceの今どきのインフラを探る
by
土岐 孝平
20 slides
708 views
OpenID Connect入門
by
土岐 孝平
65 slides
2.6K views
業務システムとマイクロサービス
by
土岐 孝平
13 slides
1.5K views
エッセンシャルCore springハンズオン
by
土岐 孝平
17 slides
2.2K views
試験にでるSpring
by
土岐 孝平
26 slides
5.5K views
Spring3.1概要 データアクセスとトランザクション処理
by
土岐 孝平
62 slides
18K views
vFabricを触ろう
by
土岐 孝平
30 slides
1.8K views
これからSpringを使う開発者が知っておくべきこと
1.
1 これからSpringを使う開発者が 知っておくべきこと 2018/10/31 日本Springユーザ会 土岐 孝平 ハッシュタグ: #sf_11
2.
自己紹介 • 土岐 孝平 •
Springを使用したシステム開発の支援 • JavaやSpringの研修の講師 • 書籍の執筆 2 [改訂新版]Spring入門
3.
はじめに • 想定する聴講者 – Springを使ったプロジェクトに参加しているけれど、 Springの「おまじない」が何のためなのか分かっていない •
@Serviceって何?@Autowiredって何? • 一応動いているけど、おかしな使い方になってないだ ろうか? • 発表の趣旨 – Springの初心者が疑問に思ったり、おかしな使い方をし てしまいがちなところをピックアップして説明。 – 実プロジェクトで活かしてほしい。 – Springを学習するとっかかりになってほしい。 3
4.
アジェンダ • 「おまじない」がやっていること – @Serviceや@Autowiredがやっていること –
@Transactionalの裏側 • おかしな作りになっていませんか? – スレッドセーフになっていますか? – トランザクションの入れ子はうまくできていますか ? – トレースログを明示的に出力していませんか? 4
5.
「おまじない」がやっているこ と 5
6.
「@Service」の意味 • 「Springにオブジェクトを作ってもらって、DIコンテナ※1で管理 してほしい」と宣言するアノテーション • DIコンテナ起動時に、DIコンテナで管理された状態になる。 •
DIコンテナで管理されたオブジェクトのことを、Beanと呼ぶ。 6 DIコンテナ FooServiceオブジェクト ※1:DIコンテナ Springが提供するオブジェクトの入れ物。DIコンテナでオブジェクトを管理す ると、DIやAOPの機能を利用することができる。 @Service FooServiceクラス Bean
7.
似たようなアノテーション 7 • @Service以外にも、Beanにしてもらえるアノテーションがあ る • これらのアノテーションのことを、「ステレオタイプアノテーショ ン」という。 •
コンポーネントスキャン※がどこかで指示されてる必要がある 種類 付加機能 使い分け @Controller Spring MVCと連携できる Controllerの役割のクラスに付 与する @Service なし Service(業務ロジック)の役割の クラスに付与 @Repository スローした例外を、Springの 例外に変換してくれる データアクセス(Daoなど)の役割 のクラスに付与 @Component なし 上記以外の役割のクラスに付与 ※コンポーネントスキャン:ステレオタイプアノテーションが付いたクラスを探すSpringの 行為。指定されたパッケージ配下を探す。
8.
≪参考≫Beanにしてもらうための手段 • ステレオタイプアノテーション • JavaConfig •
XML 8 DIコンテナ FooServiceオブジェクト 結果は同じ!!
9.
「@Autowired」の意味 • よくある「誤った」認識 – FooDaoのオブジェクト(依存するオブジェクト)を、 @Autowiredで「生成」している。 9 FooServiceオブジェクト FooDaoオブジェクトfooDao
new演算子 @Autowired
10.
「@Autowired」の「正しい」認識 • 「他のBeanをインジェクションしてほしい」と宣言す るアノテーション • インジェクション:依存するオブジェクトを、自分で作 ったり探したりせずに、誰か(Springの場合だとDIコ ンテナ)に渡してもらうこと。 10 FooServiceオブジェクト FooDaoオブジェクト fooDao DIコンテナ オブジェクトを生成している訳 ではない @Autowired
11.
複数のBeanにインジェクションも可能 11 BarServiceオブジェクト fooDao FooServiceオブジェクト fooDao FooDaoオブジェクトDIコンテナ @Autowired @Autowired
12.
「@Transactional」の意味 • 「このクラスの持ってるメソッド(private以外)で、DBのト ランザクション制御をしてほしい」と宣言するアノテー ション※ 12 FooServiceオブジェクト abcメソッド()FooControllerオブジェクト DB begin commit
/rollback ※個別のメソッドに@Transactionalを付けることも可能
13.
トランザクション制御の仕組み • SpringのAOPによってトランザクション制御を行う「Proxy」が自動生成されている • 「Proxy」は、Serviceと同じメソッドを持っている。 •
Controllerにインジェクションされてるオブジェクトは、Proxyである。 13 abc Controller Proxy Service Dao データアクセ ス機能 abc SQL ThreadLocal Connection connect、begin commit/rollback、close SQL
14.
ここまでのまとめ • @Service – 「オブジェクトを作ってDIコンテナで管理してほしい」とお 願いするアノテーション –
「ステレオタイプアノテーション」の1つ • @Autowired – 「依存するオブジェクトをインジェクションしてほしい」とお 願いするするアノテーション • @Transactional – 「DBのトランザクション制御をしてほしい」と宣言するアノ テーション – 内部では「Proxy」が生成されている。 14
15.
おかしな作りになっていません か? 15
16.
スレッドセーフになっていますか? • スレッドセーフとは? – 複数のスレッドで同時に処理されても安全なこと。 •
Bean(Springが管理するオブジェクト)は原則シングルトン※1 なので、複数のスレッドが1つのオブジェクトのメソッドを呼び 出す。 16 スレッドB オブジェクト abcメソッド ※1:シングルトン 1つのオブジェクトを使いまわすこと 複数のスレッドが1つのオ ブジェクトのメソッドを呼び 出す
17.
Webアプリケーションの場合 • 1つのController・Service・Daoのオブジェクトが複数のリク エストの処理を同時に行う。 • リクエストごとに別のオブジェクトが使われる訳ではない 17 FooController
FooService FooDaoリクエストB リクエストA リクエストB リクエストC FooController FooService FooDao FooController FooService FooDao FooController FooService FooDao
18.
スレッドセーフではないアプリ • スレッド個別のデータをフィールド(インスタンス変数) で保持している 18 スレッドB FooService totalPrice calclateOrderPriceメソッド ? 【NGな作り】
19.
スレッドセーフなオブジェクトにするには? • スレッド個別のデータをローカル変数で保持すればよい。 – ローカル変数は、メソッドが呼び出される度に個別の変数になる 19 スレッドB FooService calclateOrderPriceメソッド 【OKな作り】
20.
≪補足≫Beanにすべきではないクラス • SpringのBeanはシングルトンが原則なので、処理 毎にフィールドの値が変わるような役割のオブジェク トはBeanにしない。 – EntityやDTOなど 20 処理の度にオブジェクトが作られて 固有のデータがフィールドに格納される
21.
トランザクションの入れ子はうまくできていますか? • トランザクションの入れ子とは? – ここでは、あるトランザクションの中で、別のトランザクショ ンを制御すること –
利用シーン • バッチ処理で、切りのいい単位でコミットする • 採番テーブルの更新 • アクセス監査テーブルの更新 21 abcメソッド { 処理A 処理B 処理C 処理D } 外側のトランザクション 内側のトランザクション
22.
やってしまいがちな誤り • メソッドを分けて@Transactionalを付与する 22 @Transactional abcメソッド { 処理A defメソッド(); 処理D } @Transactional(propagation =Propagation.REQUIRES_NEW) defメソッド{ 処理B 処理C } しかし、defメソッドを呼び出しても、 別のトランザクションは開始されない。 (外側のトランザクションに含まれてしまう) 理由は次のページ
23.
Proxyが処理を経由できない • 内部メソッドの呼び出しは、Proxyの処理を経由しな いため、新たなトランザクションは開始されない。 23 abc Controller Proxy
Service abc connect、begin commit/rollback、close Proxyを経由せずに 呼び出している def
24.
解決策(1/2) • 解決策A:クラスを分割する 24 @Transactional abcメソッド { 処理A barService.defメソッド(); 処理D } @Transactional(propagation =Propagation.REQUIRES_NEW) defメソッド{ 処理B 処理C } FooService
BarService abc Controller ProxyA FooService abc connect、begin commit/rollback、close def ProxyB BarService def connect、begin commit/rollback、close
25.
解決策(2/2) • 解決策B:TransactionTemplateクラスを利用して、 メソッドの中で明示的にトランザクションを開始・終 了する – 詳細はSpringのマニュアルを参照。 25 @Transactional abcメソッド
{ 処理A new TransactionTemplate(...).execute( new TransactionCallback(...) { 処理B 処理C } ); 処理D } プログラムのイメージ
26.
≪補足≫トランザクション制御のログを出力する方法 • トランザクションマネージャーの実装クラスのロガーをDEBUGレベルに する – トランザクションマネージャー:下位レベルのAPIを使って実際にトランザクシ ョンの指示を出すオブジェクト –
データアクセス技術によって実装クラスが異なる • DataSourceTransactionManager • JpaTransactionManager など – ログの内容 26 logging.level.org.springframework.jdbc.datasource.DataSourceTransactionManager=DEBUG 【SpringBootのapplication.propertiesで指定した例】
27.
トレースログを明示的に出力していませんか? • ソースコードの可読性が落ちる。 • 異常終了時のログを出力したいがためにtry・catch・ throwを記述している。 –
throwを忘れて例外を握りつぶすバグの可能性もでてくる 27
28.
• SpringのAOPを利用する 解決策 28 abc Controller Proxy
Service abc ログ出力 ログ出力 ワイルドカードを使って 複数のメソッドに適用 可読性が上がり、 バグも潜みにくい ControllerやDaoに 適用することも可能
29.
ここまでのまとめ • Beanはスレッドセーフにする – フィールドにスレッド個別のデータを保持しない •
トランザクションの入れ子に注意 – 内部メソッドを呼び出してもトランザクションは開始されな い • クラスを分ける or TransactionTemplateを利用 • トレースログを個別のクラスで出力しない – AOPを利用する。 29
30.
おすすめの資料 • SlideShare「今さら聞けないDIとSpring」 – https://www.slideshare.net/KouheiToki/dispring •
SlideShare「これから始めるSpringのwebアプリケーション」 – https://www.slideshare.net/KouheiToki/springweb-82685380 • SlideShare「Springを何となく使ってる人が抑えるべきポイント」 – https://www.slideshare.net/KouheiToki/spring-66768974 30
31.
31 ご清聴ありがとうございました
32.
32 ライセンスについて • JSUGマスコットアイコン(本スライド左下)が残されている場合に限り、本作品(またそれを元にした派生 作品)の複製・頒布・表示・上演を認めます。 • 非商用目的に限り、本作品(またそれを元にした派生作品)の複製・頒布・表示・上演を認めます。 •
本作品のライセンスを遵守する限り、派生作品を頒布することを許可します。