oinume journal

Scratchpad of what I learned

Springのabstractを使ってbean定義をDRYにしよう

JavaDIコンテナって言ったらSpringだよね。ということでSpringのTIPS。bean定義する時にabstractとparent属性を使うとbean定義の共通化が出来てDRYになりますよってことです。

 

例えば以下のように

 

 

  • (1)の部分でabstract="true"にして共通のBasicDataSourceを定義

 

 

  • (2)でparent=""を指定して、urlプロパティだけオーバーライドする

 

 

 

ことができる。

 

 

 

 

xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.1.xsd

">

 

 

abstract="true"

class="org.apache.commons.dbcp.BasicDataSource"

destroy-method="close">

 

 

 

 

 

 

 

 

 

 

 

何がうれしいかというと、上記のようなデータベースの接続情報で

 

 

 

  • 全環境で共通の部分だけabstract="true"にして切り出す

 

 

  • <import> と併用して1.の部分をimportし、development/staging/productionみたいな環境ごとに差異があるところだけ個別に設定する

 

 

 

みたいなことができるので、これでSpringの設定ファイルのDRY化が進むかと。

以上、バッドノウハウでした。

 

[tmkm-amazon]477415380X[/tmkm-amazon]