Stoppt die Vorratsdatenspeicherung! Jetzt klicken & handeln!Willst du auch bei der Aktion teilnehmen? Hier findest du alle relevanten Infos und Materialien:
 

Tutorial zum Spring Framework (Dependency Injection) in standalone app

Der folgende Text dient zum extrem schnellen Einstieg in das Spring Framework für Java.

Abhängigkeiten

Folgende Software/Libraries wurden im Tutorial verwendet:

Projekt anlegen

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.

  • dist/spring.jar

Das Spring Framework selber, mit einigen, es gibt auch unter dist/modules kleinere .jar Dateien, fall nicht alles benötigt wird.

  • lib/jakarta-commons/commons-logging.jar

Wird für Logging benötigt.

Java Quellen

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>

Ausführen

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.

 
tutorial/java/spring.txt · Last modified: 2007/09/25 14:59 by rainerw
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki