NHN Cloud Meetup 編集部
[TOAST FORWARD] Spring Framework Core
2019.08.13
533
NHNの「TOAST FORWARD」をご存じですか?
NHNでは、優れた内部技術の教育コンテンツを外部に公開しています。
ここでは7月11日に行われた「1日で整理するSpring Framework Core」について、少し紹介します。
※本イベントは韓国で開催したイベントです
講師のキム・ビョンブさんは、NHNの内部教育評価でなんと10点満点中、10点をとっています。
Spring Frameworkの特徴
最初からSpring Frameworkを取り扱うのではなく、まずはFrameworkとは何か、Libraryとはどう違うのか、などの内容から始まり、Spring Frameworkの特徴、それぞれのモジュールに対する構成、Springサブプロジェクトに関する説明がありました。続いて、Spring Frameworkの中核は、POJO(Plain Old Java Object)であり、そのための3つの技術 – IoC/DI、PSA、AOP – について、詳しく教えていただきました。
教育で取り上げられた主な内容は、下記の通りです。
IoC/DI
- IoC
- 制御の逆転(Inversion of Control)
- パターン
- DI
- 依存性注入(Dependency Injection)
- IoCの実装
- 基本原則は、依存性の問題から行動(behaviour)を分離させること
説明いただいたIoC/DIの概念について、コードでデモを見せてくれました。
IoC/DI Container, Spring Bean
- Spring Frameworkの特徴の1つ:軽量コンテナとしてSpring Beanを直接管理
- コンテナ
- Application Context
- BeanFactory
- Spring Bean
- Javaオブジェクト
- name、type、objectで構成
ApplicationContext
- ApplicationContextの定義、種類
Spring Beanの設定
- アプリケーションを設定するために使用するSpring Bean
- @Configuration + @Bean
- ビジネスロジックを処理するSpring Bean
- @ComponentScan + Stereotype Annotation
Java ConfigでBeanを設定する方法
- @Configuration + @Bean
- BeanDefinition interfaceを利用した方法
JavaConfigでSpring Beanを注入する方法
@ComponentScan + Stereotype Annotation
- Component Scanning
- Stereotype Annotations
- Stereotype Annotationsを利用したSpring Beanの作成と注入
Spring Beanのさまざまな設定にも、デモを通じてコードで理解しやすく説明していただきました。
Spring Bean Scope
- singleton
- prototype
- request、session、application、websocket
Bean Lifecycle handling
- JSR-250
- bean init-method、destroy-method
- InitializingBean / DisposableBean interfaces
Bean Lifecycle handlingの方法もデモを行ってくれました。
Environmentの抽象化
- Profiles
- Properties
様々なProfileを設定して、特定Profileに特定Beanを設定する方法などについても、デモでレクチャーしてくれました。
PSA(Portable Service Abstraction)
- サービスの抽象化とは
- Springトランザクションサービスの抽象化
サービスの抽象化の例として、トランザクションサービスの抽象化を紹介していました。
トランザクションサービスの抽象化を、トランザクション適用前の状態からデモで詳しく見せてくれ、Springでどのようにトランザクションサービスの抽象化を実装しているか、また、このようなトランザクションサービスの抽象化が、データアクセス技術の変更にどのように維持されるか、段階的にデモを使って丁寧に説明してくれました。
AOP(Aspect-Oriented Programming)
- AOPとは
- Spring FrameworkでのAOPの使用例
- AOPの主要用語
- Springが提供するAdvice
- Spring AOP vs AspectJ
- ポイントカット表現方式
- Annotationを利用したAOP
最後にAOPの概念、用法、個人的なノウハウを紹介していただきました。
感想
理路整然な説明に加え、様々なデモを使って、Spring Framework Coreに関する詳細な内容を詳しく教えていただき、とても満足のいくトレーニングでした。
45名が参加され、みなさん熱心に受講されていました。
教育環境も快適で、スナックやサンドイッチ、コーヒー、ジュースまで用意されています。
NHNは「TOAST FORWARD」を通じて、毎月新しいテーマで様々な開発者の方々とお会いしています。
来月は、ゲームをテーマにしたセミナーを用意しています。将来的には日本でも同様のイベントを開催したいと考えています。これからも「TOAST FORWARD」にご期待ください。