Das Java-Spring-Framework in der Praxis

Preview:

DESCRIPTION

Die Java EE Plattform hat sich in der server-seitigen Anwendungsentwicklung mit Java durchgesetzt. Doch dieses Standardmodell basiert auf den Enterprise JavaBeans, die einen schwergewichtigten Ansatz darstellen. Mit dem Spring Framework gibt es jetzt eine so genannte "leichtgewichtige" Alternative. Hierbei werden ausschließlich POJO (Plain Old Java Object) Objekte verwendet und die verwendeten Dienste der Java EE Plattform wie z.B. der Transaktionsdienst nur deskriptiv konfiguriert. Der Vorteil liegt in der einfachen Entwicklung sowie der robusten Testbarkeit der Anwendung. Einsatzmöglichkeiten des Spring Frameworks Das Spring Framework Tool Unterstützung für die Anwendungsentwicklung Spring AOP Spring und JDBC Testen mit Spring Spring und Java Standards

Citation preview

Ihr Partner für IT Schulung

g GFU Cyrus AG

"Semicolon" Vortragsreihe bei der GFU

Vortrag am Dienstag, 12. Mai 2009

Thema

Das Java Spring-Framework in der Praxis

Einführung

Peter Hecker, GFU Cyrus AG

Vortrag

Dipl. Inform. Torsten Friebe

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 1

Disclaimer

Dieses Folienset ist nicht zum Selbststudium geeignet!

Bitte konsultieren Sie die Literatur- und Referenzliste am Ende der

Foliensammlung für Verweise zu Referenzhandbüchern und weiteren

Informationsquellen!

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 3

Das Spring Framework

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 4

Wer spricht zu Spring?

● Torsten Friebe● GFU-Trainer seit 2006● selbständiger IT-Berater seit 1997● Schwerpunkt: Architekturen mit Java● Projekterfahrung mit Spring seit 2005

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 5

Was gibt’s zu sehen?

● Folien (ca. 42 Minuten)– Ideen zu sauberen Code– Spring Framework

● Live Demo (ca. 10 Minuten)– mit ein bisschen Java Code (frisch!)– und XML-Gemüse– angerichtet mit Eclipse, JUnit und Java

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 6

Auf geht's...

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 7

Jedes Projekt ist eine Reise

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 8

im goldenen Dreieck

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 9

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 10

... doch war das das Ziel?

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 11

Der Guru sagt: Das V-Modell löst alle Probleme

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 12

Was macht Projekte erfolgreich?

• Kriterien für das Produkt:–erfüllt den Zweck–billig in der Herstellung– leicht zu warten–möglichst fehlerfrei

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 13

Erfolgreiche Produkte

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 14

Falsche Anforderungen?

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 15

Anforderungsmanagment in der Praxis

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 16

Kommunikation

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 17

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 18

Big Design Up Front

Quelle: Neal Ford, http://www.nealford.com

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 19

Clean Code

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 20

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 21

Sauberer Code

• Lesbare API• Aussagekräftige Namen für Klassen,

Methoden, Attribute• gutes Fehler-Handling• keine Verschleierung der

Problemstellung und -domäne• Klarer Kontext• Unit-Tests sind vorhanden

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 22

Warum testen?

• „It is professionally irresponsible – to not write tests – to use the most cumbersome tools“– to write unit tests without asserts!

Quelle: Neal Ford, http://www.nealford.com

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 23

Party time it's a Spring-Break

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 24

Spring und ...

Software-Software-Entwicklung mit Entwicklung mit Java EnterpriseJava Enterprise

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 25

Probleme bei der Java SE/EE Entwicklung

● Zu starke Abhängigkeit vom Container● JEE-Anwendung insb. EJB's sind

schwer zu testen● Verstoß gegen OO-Paradigma -

gerade bei EJB 2.x● Zu viele JEE spezifische Idiome● Zu komplex und viel zu teuer

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 26

„J2EE-Development without EJB“

● Focus auf fachliche Anforderungen● Elegantes OO Design das

Wiederverwendung erlaubt– Arbeiten mit Domain Objekten

● Leichte Testbarkeit der Anwendung● Steigerung der Produktivität● Einfachheit

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 27

Spring – DAS JEE Framework?

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 28

Anti-Pattern: Silver Bullet

„A silver bullet is a method to kill mythical creatures such as werewolves or a metaphor for any solution of extreme effectiveness.“ (aus Wikipedia.org)

siehe auch Anti-Pattern „Golden Hammer“

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 29

Und was kann Spring?

● Vereinfachte und vereinheitlichte API-Schicht über viele Java-SE-APIs, Java-EE-APIs und Open-Source-Frameworks

● Aufbau von Objektnetzen mit Dependency Injection (DI)

● Unterstützung für aspektorientierte Programmierung (AOP)

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 30

● Enterprise Anwendungen basierend auf POJOs (Plain Old Java Objects)– Persistenz mit ORM oder nativen JDBC– Webanwendungen mit Spring MVC und

WebFlow– Web Services mit Spring Web Services– u.v.m.

Einsatzbereiche von Spring

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 31

Ursprung und Verfügbarkeit

● Gegründet 2003 von Rod Johnson (Version 1.0 wurde 2004 publiziert)

● Spring wird heute von SpringSource Inc. entwickelt

● Ist Open-Source (Apache License 2.0) und kann kostenfrei eingesetzt werden

● Download unter:http://www.springframework.org/

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 32

Module des Spring Frameworks

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 33

Inversion of Control (IoC)

● IoC Paradigma beschreibt die Arbeitsweise von Frameworks

● Nicht die Anwendung steuert den Kontrollfluss, sondern das Framework

● Beispiel in Java sind Listener● Sogenanntes „Hollywood-Prinzip“:

"don't call us, we'll call you"

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 34

Dependency Injection (DI)

● Ist ein Entwurfsmuster („Fabrik“)● Dient zur Erzeugung von

Objektnetzen● Überträgt die Verantwortung für das

Erzeugen von Objekten an das Framework

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 35

IoC und Formen der DI

Dependency LookupErzeugung der Objekte durch

Container-spezifische API

Dependency InjectionObjekte werden über Sprach-Level

Abhängigkeiten erzeugt

Setter InjectionObjekte werden JavaBean

Eigenschaften erzeugt

Inversion of ControlFramework verwaltet

Lebenszyklus der Objekte

Constructor InjectionObjekte werden über

Konstruktor-Argumente erzeugt

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 36

Spring Konfigurationsdatei

● Beschreibt das Objektnetz● Beinhaltet ganz normale Java Objekte

(POJOs)● Die Objekte heissen „Spring-Beans“● Jedes Spring-Bean hat einen Namen

bzw. eine ID– und man kann diesem einen Wert oder

eine Referenz zuweisen

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 37

Singleton-Pattern

● Alle Spring-Beans sind Singletons● Konsequenzen:

– Methoden müssen Thread-Safe sein– Geschäftsobjekte sollten nicht über die

Spring Konfiguration erzeugt werden– Der Scope „Prototype“ erzeugt mehrere

Instanzen eines Spring-Beans

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 38

Spring Konfiguration

SpringContainer

pojo-2

pojo-3

pojo-1

Application

<beans>... <bean id=“pojo-1“ ...> <... ref=“pojo-2“/> </bean> <bean id=“pojo-2“ ...> <... ref=“pojo-3“/> </bean> <bean id=“pojo-3“ ...>

<... value=“Hello!“/> </bean>...</beans>

getBean(„pojo-1“)

create

create

create

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 39

Spring und ...

PersistenzPersistenz

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 40

Persistenz mit Spring

● Template und DaoSupport für:– JDBC – iBATIS – Hibernate– JPA – Java Persistence API (EJB 3.0)– JDO – Java Data Objects– Oracle TopLink

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 41

JDBC Template

● Die JdbcTemplate-Klasse vereinfacht den Datenbankzugriff mittels JDBC– Keine Programmierung von

try/catch/finally nötig– Vereinheitlichte SQLExceptions– Austauschbare Datenquellen

(javax.sql.DataSource)

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 42

Vorteile des JDBC Templates

Macht Benutzung von JDBC deutlich einfacher Wandelt Exceptions in RuntimeExceptions

um Isoliert vom Rest von Spring nutzbar (spring-jdbc.jar)

Verwenden von: RowMapper oder ResultSetExtractor in query Methoden

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 43

Welche Technologie für den Datenbankzugriff?

● JDBC für– Stored Procedures– Optimierte Massenabfragen

● iBATIS für – Datenbank-zentrierte Systeme

● O/R Mapper wie Hibernate/JPA für– Komplexe Datenmodelle

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 44

Spring und ...

AOPAOP

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 45

AOP

Aspektorientierte Programmierung Konzept für Cross-Cutting ConcernsDRY-Prinzip: „Don't repeat yourself“Kernbegriffe:

Pointcut, Join point, Advice, Advisor,...

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 46

AOP Kernbegriffe

Aspect: Modularisierung eines Cross-Cutting Concerns

Cross-Cutting Concern:Sind querschnittliche Belange einer Software wie z.B. Logging, Tracing, Security und Fehlerbehandlung

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 47

AOP Kernbegriffe

Join point:Ein Punkt während der Programmausführung, z.B. Aufruf einer Methode

Pointcut:Ist eine Beschreibung (Muster) für einen Join point, z.B.:@Pointcut("execution(public * *(..))")

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 48

AOP Kernbegriffe

Advice:Aktion die zu einem Join point ausgeführt wird

Advisor:Representiert einen Aspekt durch das Advice und den Pointcut.

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 49

AOP Kernbegriffe

Introduction:Das Einfügen von Methoden oder Feldern in eine Klasse

Weaving:Zusammenführen (einweben) von Aspekten in bestehenden Programmcode

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 50

Spring AOP

Basiert auf Dynamic ProxiesEinsatz u.a. bei

–Tracing–Transaktionskontrolle–Security

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 51

Spring und AspectJ

● Spring 2.0 unterstützt AspectJ-Syntax● Aspekte können über @Aspect-

Annotation markiert werden● Konfiguration mit <aop:*/> in der

Spring-Konfigurationsdatei

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 52

Transaktionsmanagement

● Spring unterstützt deklarative Transaktionssteuerung

● Verwendet Spring-AOP – TransactionInterceptor

● ermöglicht hohe Flexibilität, z.B. Standalone-Betrieb oder Ablauf im J2EE-Container

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 53

Spring Transaktionsmanager

● Abstraktion von API's für Transaktionen in Java

● Spring bietet Implementierungen von PlatformTransactionManager für– JDBC– ORM-Frameworks wie z.B. Hibernate– JMS, JCA, JTA

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 54

Spring und ...

Web Web AnwendungenAnwendungen

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 55

Model-View-Controller Pattern

View Controller

Model

<<Präsentationsschicht>> <<Geschäftslogikschicht>>

<<Datenschicht>>

Web-Client

Darstellungerzeugen

<<Web-Container>>

Umwandlungder Parameter

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 56

Spring MVC

● Implementierung von MVC2● Management von Web Komponenten

(z.B. wie das Controller-Servlet)● Request Routing zu Handlern● Data Binding und Validierung● Testbarkeit von Web Komponenten

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 57

Spring Web Flow

● Spring Web Flow ergänzt Spring MVC– Page Flow Management – Management von conversational state

● Anwendungsgebiete:– Komplexe zustandsbehafte Seiten

Abfolgen– Kontrollierte Navigation– Flow Historie

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 58

Integration anderer View-Technologien

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 59

Welche Technologie für die Webentwicklung?

● Spring MVC für– Einfache Web-Anwendungen

● Spring WebFlow für– Komplexere, statusbehaftete

Anwendungen mit Seiten-Navigation● Spring und JSF für

– Web-Anwendungen mit UI-Komponenten

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 60

Spring und ...

Web ServicesWeb Services

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 61

Spring und Web Services

● Spring Framework und Spring Web Services

● Spring Remoting● Spring mit Apache CXF (Celtix+XFire)● Spring und Apache Axis / Axis2

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 62

Weitere Spring Features

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 63

Typische Architektur einer Spring-Anwendung

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 64

Ausblick auf Spring 3.0

Unterstützung von Java SE >=1.5 mehr Annotationen aus

JSR 220 (EJB 3.0) JSR 250 (Common Annotations) JSR 299 (Web Beans)

RESTful im Web Expression Language

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 65

Demo

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 66

Money, Money, Money

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 67

Fazit

● Leichte Testbarkeit von Code● Programmierung gegen Interfaces● Einfachere Nutzung von API's● Code weitgehend unabhängig vom

Spring Framework● Keine Zwänge: Man muss nicht alles

von Spring nutzen

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 68

Grüne Welle für Spring?

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 69

Die Schattenseiten

● Spring ist kein Standard und wird wahrscheinlich nie Standard werden

● noch Open-Source, aber wie geht es mit SpringSource Inc. weiter?

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 70

Die Folgen

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 71

Glue Code

● Beinhaltet keine Funktionalität

● Klebt verschiedene Bibliotheken zusammen

● Integriert andere Systeme

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 72

Code Cleaner

● Überflüssigen Code entfernen

● Refactorings konsquent durchführen

● Duplikate entfernen● Zyklische

Abhängigkeiten vermeiden

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 73

Anti-Pattern: Big Ball of Mud

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 74

Wie baue ich eine Stadt?

Quelle: CodeCityhttp://www.inf.unisi.ch/phd/wettel/codecity.html

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 75

Das Spring Framework und ...

das das Seminar-Angebot Seminar-Angebot

derderGFU Cyrus AGGFU Cyrus AG

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 76

Spring Seminar bei der GFU

Erstes Seminar Mai 2007seitdem 6 offene Seminare mit35 Teilnehmern

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 77

GFU Seminar S806

● Zielgruppe: – Java Entwickler und Architekten mit

guten Java Kenntnissen● Agenda:

– http://www.gfu.net/seminare-schulungen-kurse/java_sk5/spring_framework_s806.html

● Dauer:– 3 Tage

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 78

Weitere GFU-Seminare zu Spring

Spring kompaktSpring und Datenbanken: Persistenz mit JDBC, Hibernate, JPA und iBatisSpring im Web mit WebFlow und JSFWeb Services mit Spring

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 79

je 1 Tropfen:je 1 Tropfen:TDDTDDOOPOOP

IoC + DIIoC + DIAOPAOP

... führt zu ... führt zu WohlbefindenWohlbefinden

Fit durch den Frühling mit ...

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 80

Und zum Schluss ...

F & A

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 81

Literatur [1]

[BHSS06] Hibernate/Persistenz in Java-Systemen mit Hibernate 3: R. Beeger, A. Haase, S. Roock, S. Sanitz. dpunkt.verlag. 2006. ISBN: 3-89864-371-9.

[FTW07] Java Web Services mit Apache Axis2: Thilo Frotscher, Marc Teufel, Dapeng Wang. Entwickler.Press. 2007. ISBN: 978-3-935042-81-9.

[HM05] Pro Spring: From Professional to Expert: Rob Harrop, Jan Machacek. APress. 2005. ISBN: 1590594614.

[Jo02] Expert One-on-one J2EE Design and Development: Rod Johnson. Wiley & Sons. 2002. ISBN: 0764543857.

[JH04] Expert One-on-One – J2EE Development without EJB: Rod Johnson, Jürgen Höller. Hungry Minds Inc,U.S. 2004. ISBN: 0764558315.

[JHA05] Professional Java Development with the Spring Framework: Rod Johnson, Jürgen Höller, Alef Arendsen. Wiley & Sons. 2005. ISBN: 0764574833.

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 82

Literatur [2]

[LS07] Building Spring 2 Enterprise Applications: Seth Ladd, Bram Smeets. APress. 2007. ISBN: 1590599187.

[LD06] Expert Spring MVC and Web Flow: Seth Ladd, Darren Davison, Steven Devijver. APress. 2006. ISBN: 159059584X.

[LR06] J2EE und JBoss. Verteilte Enterprise Applikationen auf der Basis von J2EE, JBoss & Eclipse: T. Langner, D. Reiberg. Hanser Verlag. 2006. ISBN: 3-446-40508-9.

[NSch05] Java und XML: Stephan Niedermeier, Michael Scholz. Galileo Press. 2005. ISBN: 3898426467.

[Ull07] Java ist auch eine Insel: Christian Ullenboom. Galileo Computing. ISBN: 3-89842-747-1. http://www.galileocomputing.de/1082?GPP=opjV.

[WBFT04] Java Web Services mit Apache Axis: Dapeng Wang (Herausgeber), Thomas Bayer, Thilo Frotscher, Marc Teufel. Entwickler.Press. 2004. ISBN: 3935042574.

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 83

Literatur [3]

[Walls07] Spring im Einsatz: Craig Walls. Hanser Verlag. 2.Aufl. 2008. ISBN: 978-3-446-41240-8.

[Wolff07] Spring 2. Framework für die Java-Entwicklung: Eberhard Wolff. Dpunkt Verlag. 2007. ISBN: 978-3-89864-465-5.

[ZLMG08] Spring 2.5: Eine pragmatische Einführung: Alfred Zeitner, Birgit Linner, Martin Maier, Thorsten Göckeler .Addison-Wesley. 2008. ISBN: 978-3827326225.

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 84

Referenzen [1]

[Spring] Spring Framework:http://www.springframework.org/[SpringSec] Spring Security (ehemals Acegi):http://static.springsource.org/spring-security/[SpringWS] Spring Web Services:http://www.springframework.org/spring-ws[SpringIDE] Spring IDE:http://springide.org/[SpringSource] SpringSource Inc. ehemals Interfaces21:http://www.springsource.com/

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 85

Referenzen [2]

[Hib] Hibernate:http://www.hibernate.org/[IBAT] IBATIS Framework:http://ibatis.apache.org/[JDO] JDO:http://java.sun.com/products/jdo/[JPA] JPA:http://java.sun.com/javaee/technologies/persistence.jsp[ELINK] Eclipse Link:http://www.eclipse.org/eclipselink/

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 86

Referenzen [3]

[Eclipse] Eclipse:http://www.eclipse.org[Maven] Maven:http://maven.apache.org[Junit] JUnit:http://www.junit.org[TSS] TheServerSide: http://www.theserverside.com/[WORDL] Wordl (World Cloud):http://www.wordle.net[CCIT] CodeCity:http://www.inf.unisi.ch/phd/wettel/codecity.html

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 87

Referenzen [4]

JSF:https://javaserverfaces.dev.java.net/Apache MyFaces:http://myfaces.apache.org/Apache CXF: http://cxf.apache.org/Apache Axis2: http://ws.apache.org/axis2/

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 88

Referenzen [5]

[NFord] Neal Ford:http://www.nealford.com[New06] Ted Neward „The Vietnam of Computer Science“:http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Computer+Science.aspx[SAmb] Scott Ambler:http://www.ambysoft.com/[Wlo08] Nils Wloka „Dependency Injection für Geschäftsobjekte“:http://87.230.78.21:8080/pages/viewpageattachments.action?pageId=1179684

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 89

Kontakt & Lizenz

Autor:Torsten Friebemailto:tfriebe@gmx.net

Dieses Werk ist unter der creative commons Lizenz veröffentlicht.

Weitergabe nur unter gleichen Bedingungen

Keine kommerzielle Nutzung Inhalt darf vervielfältigt und verbreitet werden

Bearbeitung ist erlaubt

Weitere Informationen unter:http://creativecommons.org/licenses/by-nc-sa/3.0/deed.de

Recommended