Der folgende Text dient zum extrem schnellen Einstieg in das Spring Framework für Java.
Folgende Software/Libraries wurden im Tutorial verwendet:
In Eclipse legen wir ein ganz normale Java Projekt an. Damit wir mit Spring arbeiten können müssen wir natürlich noch ein paar libraries einbinden. Das von springframework.org herruntergeladene spring-framework-2.0.6-with-dependencies.zip Archiv einfach entpacken. Darin finden sich zwei Libraries die wir brauchen.
Das Spring Framework selber, mit einigen, es gibt auch unter dist/modules kleinere .jar Dateien, fall nicht alles benötigt wird.
Wird für Logging benötigt.
Folgende Klassen werden in ein Pacakge com.example.spring abgelegt:
Main.java
package com.example.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class Main {
public static void main(String[] args) {
ApplicationContext applicationContext = new FileSystemXmlApplicationContext("conf/beans.xml");
MainBean mainBean= (MainBean) applicationContext.getBean("MainBean");
mainBean.beanMain();
}
}
MainBean.java
package com.example.spring;
public class MainBean {
private AnBean myOtherBean;
public MainBean(AnBean theOtherBean) {
myOtherBean=theOtherBean;
}
public void beanMain() {
System.out.println("The Other Bean is : " + myOtherBean);
}
}
AnBean.java
package com.example.spring;
public class AnBean {
public AnBean() {
System.out.println("Constructor of AnBean");
}
}
Wie man schon an dem Code sehen kann gibt es nur in der Main Klasse Abhängigkeiten zu Spring. Wie wir aber auch in Main sehen, wird die MainBean über Spring generiert. Nun müssen wir also Spring noch mitteilen, dass die MainBean einen Konstruktorparameter hat. Hierzu gibt es die beans.xml welche in einem Ordner conf abgelegt wird.
beans.xml
<?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-2.0.xsd"> <bean id="MainBean" class="com.example.spring.MainBean"> <constructor-arg><ref bean="AnBean"/></constructor-arg> </bean> <bean id="AnBean" class="com.example.spring.AnBean"> </bean> </beans>
Nun können wir die Main Klasse ganz normal als Java Applikation starten. Die Konsole sollte (nach einigen Spring Info logs) die sys.out welche in den Klassen ja programmiert wurden ausgeben:
Constructor of AnBean The Other Bean is : com.example.spring.AnBean@11d0a4f
Wie man sehr schön sehen kann, ist das Objektnetz nicht im Code Hinterlegt, sondern in der beans.xml. Es ist also jederzeit möglich eine Bean oder mehrere Beans auszutauschen. Dies ist extrem praktisch für Tests, denn so kann man Teile einer Anwendung ganz schnell und effektiv austauschen.