Home > スポンサー広告 > Spring Framework 3.0の新機能 Part2

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Comments:-

Comment Form

Trackback+Pingback:-

TrackBack URL for this entry
http://netforestdevnote.blog26.fc2.com/tb.php/14-6ce44603
Listed below are links to weblogs that reference
スポンサーサイト from Netforest Developer's Note

Home > スポンサー広告 > Spring Framework 3.0の新機能 Part2

Home > Springframework > Spring Framework 3.0の新機能 Part2

Spring Framework 3.0の新機能 Part2

take©です。Spring Framework 3.0 M3がリリースされましたね。今回はその新機能を紹介したいと思います。 まずSpring 3.0の新機能の概要です。

  • EL式のサポート
  • IoCの強化/JavaによるBeanメタデータ定義
  • オブジェクトとXMLのマッピングサポート (OXM)
  • RESTのサポート
  • Spring MVCへの機能追加
  • アノテーションによるバリデーション
  • Java EE 6の先取りサポート

前回の記事 (Spring Framework 3.0の新機能 Part1) でEL式とSpring MVCの機能追加についてまとめてますのであわせてご覧ください。本家のリファレンスも作成が進んでますので、詳しく知りたい方は Reference Documentation が良いと思います。


Mavenを使う

まずはMavenでSpring 3.0.0.M3を使えるようにします。 まだMilestone版なのでMavenのCentral Repository (http://repo1.maven.org/maven2/) には登録されていません。 以下はSpringのMavenリポジトリを使うpom.xmlの設定です。

<repositories>
	<repository>
		<id>com.springsource.repository.bundles.milestone</id>
		<name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Milestones</name>
		<url>http://repository.springsource.com/maven/bundles/milestone</url>
	</repository>
	<repository>
		<id>com.springsource.repository.bundles.external</id>
		<name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Externals</name>
		<url>http://repository.springsource.com/maven/bundles/external</url>
	</repository>
</repositories>

<dependencies>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>org.springframework.web.servlet</artifactId>
		<version>3.0.0.M3</version>
	</dependency>
</dependencies>
</project>

SpringのCoreがJava5ベースで再構築された

SpringのコアがJava5に最適化されました。例えばジェネリクスを使ってBeanFactoryからキャストなしでBeanが取得できるようになります。

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
SampleBean sampleBean = context.getBean("sampleBean", SampleBean.class);

Pure JavaでBeanの設定が書ける

Spring 2.5からアノテーションベースでBeanが定義できるようになりましたが、Spring 3.0ではJavaConfigプロジェクトの一部が取り込まれ、ついにタイプセーフでPure Javaな設定が書けるようになりました。 つまり、BeanのFactory Methodをアノテーションベースで実装できるということです。

以下の例をご覧ください。SampleBeanをシングルトンスコープでBean登録しています。 デフォルトではメソッド名がBean名として登録されます。

@Configuration
public class SampleConfig {
	@Bean
	public SampleBean sampleBean() {
		return new SampleBean();
	}
}

上記の例はXMLファイルでこのように記述するのと同じことです。

<beans>
	<bean name="sampleBean" class="sample.SampleBean"/>
</beans>

XMLファイルにはcomponent-scanの設定を記述するのみです。

<context:component-scan base-package="sample.config"/>

BeanのFactory Methodを実装できるということは、もちろんBeanの生成について初期値を設定したり、DIすることが可能です。 以下の例をご覧ください。SampleConfigにDIしたFooのインスタンスをBarにDIしています。

@Configuration
public class SampleConfig {
	@Autowired
	private Foo foo;
	
	@Bean
	public Bar bar() {
		Bar bar = new Bar();
		bar.setFoo(foo);
		return bar;
	}
}

コントローラで例外を補足できる

@ExceptionHandlerアノテーションを使用して、コントローラで発生した例外を、そのコントローラでハンドリングできるようになります。個人的にかなり嬉しい機能です。 例えば@SessionAttributesで設定したモデルを参照するとき、セッションタイムアウトなどで、期待するモデルがセッションにない場合は、HttpSessionRequiredExceptionが発生します。 以下の例をご覧ください。HttpSessionRequiredExceptionを補足して特定のViewを表示することができます。

@Controller
@RequestMapping("/sample.html")
@SessionAttributes(types=SampleCommand.class)
public class SampleController {
	@ExceptionHandler
	public String handleException(HttpSessionRequiredException e, HttpServletRequest request)
	{
		// do something...
		return "exception.html";
	}
	
	@RequestMapping
	public String doSample(@ModelAttribute("sampleCommand") SampleCommand command)
	{
		// do something...
		return "sample.html";
	}
	...

Spring 3.0 M3に含まれないもの

以下はM3にはまだ含まれない、開発中のものです。次回のリリースが楽しみですね。

アノテーションによるバリデーション
@Lengthや@NotEmptyを使ってフォームの値などをバリデーションできるようになるかもしれません。
Java EE 6の先取りサポート
@Asyncアノテーションによる非同期メソッドコールなどが予定されているようです。

今回はここまで。できれば次回は、以下の機能をレポートしたいと思います。

  • @RequestBodyアノテーション
  • Feed Views (RSS)
  • オブジェクトとXMLのマッピングサポート

今回記載した内容は、あくまでマイルストーン版の実装内容です。正式リリースまでに色々と変更はあると思います。 SpringSource TeamBlogによると次のリリースはSpring 3.0 RC1となり、アノテーションによるバリデーションが実装されるようです。

[SpringSource TeamBlog]
http://blog.springsource.com/2009/05/06/spring-framework-30-m3-released/

Comments:0

Comment Form

Trackback+Pingback:0

TrackBack URL for this entry
http://netforestdevnote.blog26.fc2.com/tb.php/14-6ce44603
Listed below are links to weblogs that reference
Spring Framework 3.0の新機能 Part2 from Netforest Developer's Note

Home > Springframework > Spring Framework 3.0の新機能 Part2

Recent Comments
Recent Trackback
Search
Meta
Links
Feeds

Page Top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。