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"にして切り出す
- <import> と併用して1.の部分をimportし、development/staging/productionみたいな環境ごとに差異があるところだけ個別に設定する
みたいなことができるので、これでSpringの設定ファイルのDRY化が進むかと。
以上、バッドノウハウでした。