技術空間

Spring

Springの導入&サンプルプログラム


TOP > Spring > Springの導入&サンプルプログラム



■Springとは

Spring(Spring Framework)は様々な機能を提供するフレームワークである。DI(Dependency Injection、依存性の注入、インジェクション)することによりオブジェクトを管理するDIコンテナのフレームワークでもある。WEBアプリケーションだけでなく、バッチなどのJavaアプリケーションにも使用できる。 リソース管理、DBアクセス、MVCフレームワーク、AOP、バッチフレームワークなどの機能を提供しており、開発者が必要な機能を選択して使うこととなる。

■Springの導入
Springのjarをダウンロード

基本的にはMavenかGradleでダウンロードする。

直接ダウンロードする場合は、http://repo.spring.io/release/org/springframework/spring/からダウンロードできる。 Maven Repositoryのサイト(http://mvnrepository.com/)から個別にjarをダウンロードすることも可能。("spring"で検索)

取得したjarファイルをクラスパスへ通す。使用しない機能については配置しなくてもよい。なお今回はVer4.2.4を使用する。


Apache Commons Loggingのjarをダウンロード

Springがログの出力に「Apache Commons Logging」を利用しているので、これもダウンロードが必要。

公式サイト(https://commons.apache.org/proper/commons-logging/)からダウンロードする。

■サンプル実行

Springの機能を利用する上で、最も基本的かつ重要なの概念はオブジェクトのインジェクションである。ここではオブジェクトをインジェクトする単純なサンプルを紹介する。

設定ファイルの作成

まずはSpringの設定ファイルを作成する。

下記のファイル(ApplicationContext.xml)を作成し、クラスパス直下に配置する。

ApplicationContext.xml
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context-4.2.xsd">

	<bean class="test.SpringSample" />

</beans>

※これは最もシンプルな構成の1つであり、<bean class="test.SpringSample" />によってtest.SprintSampleクラス(次で作成)がインジェクション対象となる。


サンプルプログラム

SpringSample.javaをtestパッケージに作成する。

SpringSample.java
package test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Component;

public class SpringSample {
    
    public static void main(String[] args){
    
        // ①コンテキスト取得
        ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
                   
        // ②インスタンスの取得
        SpringSample ss = context.getBean(SpringSample.class);
        
        // ③メソッドコール
        ss.out();
    }
    
    public void out(){
        System.out.println("Spring Test");
    }
}

①コンテキスト(ApplicationContext)取得。ClassPathXmlApplicationContextはクラスパスからSpring設定ファイルを探して読み込んでくれる。

②SpringSampleクラスのインスタンス取得。自分で生成せずにApplicationContextから取得している。

③取得したオブジェクトのメソッドを呼び出す。

出力結果
Spring Test
component-scanの利用

ApplicationContext.xmlにbean定義を書くのが面倒な場合は、<context:component-scan base-package="test" />を使うことにより、testパッケージ配下のコンポーネントを自動検索(スキャン)してインジェクションさせることができる。

ApplicationContext.xml
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context-4.2.xsd">

	<context:component-scan base-package="test" />

</beans>

Javaソースは、先ほどとほぼ同じだが、スキャンで見つけてもらえるように@Componentアノテーションをクラスに付ける必要がある。

SpringSample.java
package test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Component;

@Component
public class SpringSample {
    
    public static void main(String[] args){
    
        // ①コンテキスト取得
        ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
                   
        // ②インスタンスの取得
        SpringSample ss = context.getBean(SpringSample.class);
        
        // ③メソッドコール
        ss.out();
    }
    
    public void out(){
        System.out.println("Spring Test");
    }
}
- Springの入門本 -



TOP > Spring > Springの導入&サンプルプログラム

Tweet ̃Gg[͂ĂȃubN}[Nɒlj
技術空間