Nachdem mir die erste Lösung schon sehr nützlich vorkam, hab ich noch einmal nachgelegt. Die 2. Version unterstützt nun einige Datentypen mehr, die als Property gesetzt werden können.
Neben den primitive Types, lassen sich Maps, Sets, Lists, Properties und einfache Arrays als Bean-Property "injecten". Als Wert werden sowohl für Keys in Maps, als auch für Collection-Items selbst wiederum alle diese Typen akzeptiert. Ausserdem können natürlich an allen Stellen auch Referenzen auf andere Beans gesetzt werden. Alles ist – wie schon die erste Version – als eine einfache Klasse implementiert.
Um das Format der Konfigurationsdatei besser verständlich zu machen (auch für den Parser), habe ich nun auch eine DTD hinzugefügt, die schon auf XML-Ebene eine Validierung ermöglicht.
Ein weiteres neues Feature ist, dass man die SimpleBeanFactory auch "nur" zum Injected benutzen kann, wenn die Instanz schon erzeugt wurde. Im konkreten Fall konnte ich das bei einem Applet gut gebrauchen, dass ja bereits vom Browser / Browser-Plugin instanziiert wird.
Über "inject( Object o, String beanName)" lassen sich bereits instanziierte Objekte fertig konfigurieren, ohne dass die SimpleBeanFactory die Instanz selbst erzeugt.
Das Zip-Archiv mit Beispielen ist hier zu finden.