Ein kleines Weihnachtsgeschenk
Vorab: Frohes Fest!
Ich habe mir gedacht, dass ich dieses Jahr zu Weihnachten ein kleines Geschenk an die Leser dieses Blogs bastel. Und zwar habe ich die kleinste Spring-Bean gebaut. Hier ist der Code:
package com.blogspot.jandiandme;
public class MyService {
private MyRepository myRepository;
public void setMyRepository(MyRepository myRepository) {
this.myRepository = myRepository;
}
}
Wie man sieht: Keine Spring-Abhängigkeiten, keine Annotationen, nur Java-Code. Kleiner geht es nicht.
Nun erwartet man natürlich, dass in der XML-Konfiguration das Repository und der Service konfiguriert werden müssen. Das ist aber nicht wirklich der Fall:
<?xml version="1.0" encoding="UTF-8"?>
<beans 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.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"
xmlns:context="http://www.springframework.org/schema/context"
default-autowire="byType">
<context:component-scan base-package="com.blogspot.jandiandme"
use-default-filters="false">
<context:include-filter type="regex"
expression=".*Repository" />
<context:include-filter type="regex"
expression=".*Service" />
</context:component-scan>
</beans>
Wie man sieht, werden das Repository und der Service durch eine Namenskonvention bei den Klassen identifiziert. Alle Klassen, die auf Repository oder Service enden, werden automatisch zu Spring-Beans. Dies ist im component-scan-Element entsprechend definiert. Das Wiring kommt durch das default-autowire-Attribut im beans-Element zu Stande. Es wird automatisch eine typ-kompatible Spring-Bean injiziert, wenn dies möglich ist. Damit kann man also mit dieser Konfiguration sehr einfach auch beliebige weitere Spring-Beans analog definieren - ohne zusätzliches XML.
Das Beispiel gibt es mit Maven-Build unter
http://spring-buch.de/small-spring.zip.
In diesem Sinne: Frohes Fest!
Labels: Spring
J for Java |
I for Internet, iMac, iPod and iPad |
Me for me