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

·1 分で読めます

JavaのDIコンテナって言ったら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"にして切り出す

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

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

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

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