Das Spring-Framework (Das Spring-Framework), Lektion, Seite 723020
https://www.purl.org/stefan_ram/pub/spring_java (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram

Die Bibliothek Spring  in Java 

Spring  ist eine Bibliothek, die Bestandteile für verschiedene Gebiete enthält, aber sie ist bekannt für ihre Unterstützung von Implementationseingaben (dependency injection ).

Implementationseingabe

In dem folgenden Programm ist das Ziel der Ausgabe (»System.out«) und der Text der Nachricht (»"Hallo, Welt"«) fest verdrahtet.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( "Hallo, Welt" ); }}

In dem folgenden Programm ist das Ziel der Ausgabe (»System.out«) und der Text der Nachricht (»"Hallo, Welt"«) mehr entkoppelt.

Main.java

interface TextSource
{ public java.lang.String getText(); }

interface Printer
{ public void setTextSource( final TextSource textSource );
public TextSource getTextSource();
public void print(); }

class OutPrinter implements Printer
{ private TextSource textSource;
public void setTextSource( final TextSource textSource ){ this.textSource = textSource; }
public TextSource getTextSource(){ return this.textSource; }
public void print(){ java.lang.System.out.print( this.textSource.getText() ); }}

class HelloWorldTextSource implements TextSource
{ public java.lang.String getText(){ return "Hello, World"; }}

public final class Main
{ public static void main( final java.lang.String[] args )
{ final Printer printer = new OutPrinter();
final TextSource source = new HelloWorldTextSource();
printer.setTextSource( source );
printer.print(); }}

Eine Hilfsklasse stellt Fabrikationsmethoden bereit, die es erlauben, den Typ des Objektes durch ein Argument zu bestimmen und damit flexibler sind.

Main.java

interface TextSource
{ public java.lang.String getText(); }

interface Printer
{ public void setTextSource( final TextSource textSource );
public TextSource getTextSource();
public void print(); }

class OutPrinter implements Printer
{ private TextSource textSource;
public void setTextSource( final TextSource textSource ){ OutPrinter.this.textSource = textSource; }
public TextSource getTextSource(){ return OutPrinter.this.textSource; }
public void print(){ java.lang.System.out.print( OutPrinter.this.textSource.getText() ); }}

class HelloWorldTextSource implements TextSource
{ public java.lang.String getText(){ return "Hello, World"; }}

class Support
{ private static final Support support = new Support();
public static Support getInstance(){ return Support.support; }
public Printer getPrinter(){ return new OutPrinter(); }
public TextSource getTextSource(){ return new HelloWorldTextSource(); }}

public final class Main
{ public static void main( final java.lang.String[] args )
{ final Printer printer = Support.getInstance().getPrinter();
final TextSource source = Support.getInstance().getTextSource();
printer.setTextSource( source );
printer.print();}}

Spring 

Spring  erlaubt es, die Verdrahtung von Objekten in einer Konfigurationsdatei festzulegen. Damit kann sie beispielsweise auch noch zur Laufzeit angepaßt werden, was noch flexibler ist.

(Der folgende Quelltext wurde nicht getestet.)

Main.java

public final class Main
{

private static org.springframework.beans.factory.BeanFactory getBeanFactory() throws Exception
{ XmlBeanFactory factory = new org.springframework.beans.factory.xml.XmlBeanFactory(new FileSystemResource(“msgConf.xml”));
return factory; }

public static void main( final java.lang.String[] args )
{ org.springframework.beans.factory.BeanFactory factory = Main.getBeanFactory();
final Printer printer =( Printer )factory.getBean( “printer” );
printer.print(); }}

msgConf.xml
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="printer” class=“Printer">
<property name="textSource"><ref local="source"/></property>
</bean>
<bean id="source” class="HelloWorldMessageProvider"/>
</bean>
</beans>

Zur Installation von Spring  müssen die Bibliotheken aus einem Zip -Ordner entpackt und dann noch die Abhängigkeiten installiert werden.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723020 stefan_ram:723020 Das Spring-Framework Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723020, slrprddef723020, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/spring_java