[TOAST FORWARD] Spring Framework Core

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」にご期待ください。

TOAST Meetup 編集部

TOASTの技術ナレッジやお得なイベント情報を発信していきます
pagetop