Das Spring Framework: eine Einführung
|
|
|
- Mathias Heinrich
- vor 9 Jahren
- Abrufe
Transkript
1 Das Spring Framework: eine Einführung 1. Überblick & Geschichte 2. Grundlegende Konzepte 2.1 Module des Frameworks 2.2 POJOs 2.3 Dependency Injection Beispiel verschiedene Typen von DI Konfiguration mit Spring andere DI Container 2.4 AOP 2.5 Templates 3. Beispiele 3.1 Unit Tests 3.2 JMS Integration 3.3 Transparentes Caching mit AOP 4. Quellen
2 1. Was ist Spring? - OpenSource Applikationsframework für die Java-Plattform ( insbesondere für J2EE ) - entstanden aus Frustration über die (oft unnötige) Komplexität bestehender J2EE Architekturen (mit EJBs und Application-Servern) - stellt leichtgewichtige Alternative zu diesen dar Vorteile beim Einsatz von Spring (laut den Entwicklern): - Spring can effectively organize your middle tier objects. - Spring can eliminate the proliferation of Singletons seen on many projects. - Spring eliminates the need to use a variety of custom properties file formats. - Spring facilitates good programming practice by reducing the cost of programming to interfaces, rather than classes, almost to zero. - Spring is designed so that applications built with it depend on as few of its APIs as possible. - Applications built using Spring are very easy to test. - Spring helps you solve problems with the most lightweight possible infrastructure. - Spring provides a consistent, simple programming model in many areas, making it ideal architectural "glue."
3 1. Geschichte Oktober 2002 Grundlagen und Prinzipien: Rod Johnson: Expert One-on-One J2EE Design and Development Juni 2003 Erster Release Oktober 2006 Release von Spring 2.0 ( 1 Million Downloads bis dahin, JAX Innovation Award 2006 ) November 2007 Release von Spring 2.5
4 1. Architektur einer typischen Spring-basierten Webanwendung
5 2.1 Module des Spring Framework
6 2.2 POJOs POJO: Plain Old Java Object, ganz normales Java Objekt - erweitert keine vorspezifierte Klasse - implementiert kein vorspezifiertes Interface - muss keine vorspezifizierte Annotation enthalten - radikaler Gegenentwurf zu EJBs ( aus der Version 2.1) - wird mit Spring lauffähig in beliebiger Umgebung: JEE Container, Servlet Container, Unit Tests, standalone...
7 2.3 Dependency Injection Beispiel: Anwendung, die Filme eines bestimmten Regisseurs aus einer Datenbank liest 2 Komponenten: MovieFinder (Lesen aller vorhandenen Filme), MovieLister (Auswahl der Filme) public class Movie implements Serializable { private String name; private Director director;... public interface MovieFinder { public Movie[] findmovies(); public class MovieFinderImpl implements MovieFinder { public Movie[] findmovies() { // Lesen der Filme aus einer Datenbank oder von einem Webservice Wie bekommt der MovieLister nun die Implementierung des MovieFinders?
8 2.3.1 Naive Implementierung public class MovieLister { public List<Movie> listmovies( String directorname ) { List<Movie> movies = new LinkedList<Movie>(); MovieFinder moviefinder = new MovieFinderImpl(); for( Movie movie : moviefinder.findmovies() ) { if ( movie.getdirector().getname().equals( directorname ) ) { movies.add( movie ); return movies; - direkte Kopplung im Code - schwer bis gar nicht testbar (da Implementierung nicht austauschbar)
9 2.3.1 Klassische J2EE Lösung: Service Locator public class ServiceLocator {... public Object getservice( String servicename ) { if ( "moviefinder".equals( servicename ) ) { // Holen per JNDI... public class MovieLister { public List<Movie> listmovies( String directorname ) { ServiceLocator locator = ServiceLocator.getInstance(); MovieFinder finder = (MovieFinder)locator.getService("movieFinder");... - Testbarkeit abhängig von der Implementierung des Service Locators - zusätzliche Klasse notwendig - aufrufende Komponente muss Service Locator kennen
10 2.3.1 Dependency Injection Hollywood-Prinzip: Don't call us, we call you - Klasse bekommt benötigte Komponenten von außen injiziert - Klasse muss nur wissen was sie braucht, nicht wie sie es bekommt - DI Container garantiert, dass Abhängigkeiten gesetzt werden - entkoppelt Klasse von der Laufzeitumgebung public class MovieLister { private MovieFinder moviefinder;... Übergabe durch den Konstruktor ( Constructor Injection ) public MovieLister( MovieFinder finder ) { this.moviefinder = finder; Übergabe durch Setter-Methode ( Setter Injection ) public void setmoviefinder( MovieFinder finder ) { this.moviefinder = finder;
11 2.3.2 Vor- und Nachteile verschiedener DI-Typen Constructor Injection + Klasse immer in gültigen Zustand - nicht kompatibel zum JavaBeans Standard - zuviele Argumente bei vielen Abhängigkeiten - Argumente müssen in Subklassen mitgenommen werden - für Tests müssen alle Abhängigkeiten gesetzt werden Setter Injection + kompatibel zum JavaBeans Standard + für Tests können einzelne Abhängigkeiten gesetzt werden - Klasse kann in ungültigem Zustand sein - viel Code notwendig
12 2.3.3 Konfiguration mit Spring MovieFinder: <bean id="moviefinder" class="de.fuberlin.spring.moviefinderimpl"/> MovieLister mit Setter Injection: <bean id="movielister" class="de.fuberlin.spring.movielister"> <property name="moviefinder" ref="moviefinder"/> </bean> MovieLister mit Constructor Injection: <bean id="movielister" class="de.fuberlin.spring.movielister"> <constructor-arg ref="moviefinder"/> </bean> - ApplicationContext wird zur Laufzeit initialisiert - Komponenten ( Beans ) werden erzeugt und verknüpft - Beans werden als Singletons erzeugt, ohne explizit den Pattern implementieren zu müssen
13 2.3.3 Konfigurationsmöglichkeiten XML Konfiguration Komplexe Datenstrukturen können abgebildet werden ( Properties, Lists, Maps, Enums...) <bean id="morecomplexobject" class="example.complexobject"> <property name="admin s"> <props> <prop key="administrator">[email protected]</prop> <prop key="support">[email protected]</prop> </props> </property> <property name="somemap"> <map> <entry> <key><value>a ref</value></key> <ref bean="mydatasource" /> </entry> </map> </property> </bean>
14 2.3.3 Konfigurationsmöglichkeiten Konfiguration über Annotations bietet nur einen Teil der Möglichkeiten der markiert Klasse als verlangt trifft Auswahl bei mehreren public class private MovieFinder moviefinder;
15 2.3.4 Weitere DI Container PicoContainer Konfiguration via Java Code Google Guice Konfiguration via Java Code und Annotations Hivemind Konfiguration via XML ( Im Prinzip alle gleichmächtig, Entscheidung eher Frage des persönlichen Geschmacks )
16 2.4 AOP Beispiel: Transaktionalität Anwendung macht Datenbankzugriffe in der Persistenzschicht, es muss nun in der Anwendungslogik festgelegt werden, welche Zugriffe jeweils in einer Transaktion ablaufen Sollte an einer Stelle konfigurierbar sein, nicht an zig Stellen codiert Wie kann man das technisch realisieren? Cross Cutting Concern, querschnittlicher Belang Anforderung an eine Anwendung, die nicht in einer einzelnen Schicht modular behandelt werden kann ( z.b. Transaktionalität, Logging, Caching, Sicherheit ) Aspektorientierte Programmierung ermöglicht es diese Belange gekapselt zu modellieren und deklarativ modulübergreifend verschiedenen Codefragmenten zuzuordnen
17 2.4 Deklaratives Transaktionsmanagement mit Spring AOP Spring AOP: nur auf Methodenaufrufe anwendbar, Beans werden im Container mit Proxies versehen, die die erweiterte Funktionalität aufrufen (ähnlich dem Decorator- Pattern) <tx:advice id="txadvice" transaction-manager="transactionmanager"> <tx:attributes><tx:method name="listmovies" read-only="false" propagation="required"/> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="txm" expression="execution(* de.fuberlin.movielister.*(..))"/> <aop:advisor advice-ref="txadvice" pointcut-ref="txm"/> </aop:config> public class MovieLister public List<Movie> listmovies( String directorname ) {... Per AOP wird vor dem Methodenaufruf eine Transaktion gestartet, nach dem Aufruf wird diese automatisch commitet oder zurückgerollt
18 2.5 Templates Hilfsklassen für verschiedene APIs, die automatisches Resourcenmanagement, einheitliche Fehlerbehandlung, Vereinfachung der API und diverse Hilfsmethoden bieten - JmsTemplate - JdbcTemplate - HibernateTemplate -... JdbcTemplate queryforobject( String sql, Object[] args, Class requiredtype ); JmsTemplate convertandsend( String destinationname, Object message );
19 3.1 Unit Tests public class MockMovieFinder implements MovieFinder { public Movie[] findmovies() { return new Movie[] { new Movie( "Lord of the Rings", new Director( "Peter Jackson" ) ), new Movie( "Batman Begins", new Director( "Christopher Nolan" ) ) public void some() { MovieLister movielister = new MovieLister(); movielister.setmoviefinder( new MockMovieFinder() ); List<Movie> movies = movielister.listmovies( "Christopher Nolan" ); assertequals( 1, movies.size() ); assertequals( "Christopher Nolan", movies.get(0).getdirector().getname() );
20 3.3 JMS Integration: Senden <amq:connectionfactory id="cfactory" brokerurl="tcp://localhost:61616"/> <amq:queue id="moviequeue" physicalname="moviequeue"/> <bean id="jmstemplate" class="org.springframework.jms.core.jmstemplate"> <constructor-arg ref="cfactory" /> public class MoviePublisher private JmsTemplate jmstemplate; public void publish() { for ( Movie movie : movielister.listmovies( "Peter Jackson" ) ) { jmstemplate.convertandsend( "moviequeue", movie ); - JmsTemplate kümmert sich automatisch um Resourcen (Connection etc.) - JmsTemplate benutzt automatisch ObjectMessages
21 3.3 JMS Integration: public class MovieConsumer { public void consume( Movie movie ) {... wird zu Message Driven POJO : <jms:listener-container> <jms:listener destination="moviequeue" ref="movieconsumer" method="consume"/> </jms:listener-container> ListenerContainer von Spring holt Message aus der Queue, bestätigt diese, konvertiert das Movie Objekt zurück und ruft den MovieConsumer auf (Adapter Pattern)
22 3.4 Transparentes Caching mit AOP Annotation definieren: Cachable { Methode public Movie[] findmovies() {... Spring Konfiguration anpassen: <aop:aspectj-autoproxy/> <bean id="cachingaspect" public class CachingAspect "@annotation( de.fuberlin.spring.cachable )" ) public Object cache( ProceedingJoinPoint joinpoint ) throws Throwable { String key =... if (!cache.containskey( key ) ) { cache.put( key, joinpoint.proceed() ); return cache.get( key );
23 Sind die Versprechen eingehalten? - Spring can effectively organize your middle tier objects. - Spring can eliminate the proliferation of Singletons seen on many projects. - Spring eliminates the need to use a variety of custom properties file formats. - Spring facilitates good programming practice by reducing the cost of programming to interfaces, rather than classes, almost to zero. - Spring is designed so that applications built with it depend on as few of its APIs as possible. - Applications built using Spring are very easy to test. - Spring helps you solve problems with the most lightweight possible infrastructure. - Spring provides a consistent, simple programming model in many areas, making it ideal architectural "glue."
24 4. Quellen Spring Dokumentation Artikel von Rod Johnson zum Release von Spring Martin Fowler: Inversion of Control Containers and the Dependency Injection pattern Diskussion über Dependency Injection Spring Framework bei Wikipedia AOP bei Wikipedia
Das Spring Framework eine Einführung
Das Spring Framework eine Einführung Sebastian Schelter Softwareengineering Freie Universität Berlin Arnimallee 14 14195 Berlin [email protected] Abstract: Eine Einführung in die grundlegenden Konzepte
Application Frameworks
Seminar Software Engineering 1 Grundlagen Agenda Spring Framework Dependency Injection Aspektorientierte Programmierung Datenbankanbindung Modell View Controller Sicherheit Spring vs. Java EE Zusammenfassung
Inversion of Control Containers and the Dependency Injection pattern
Ausarbeitung des Artikels von Martin Fowler Inversion of Control Containers and the Dependency Injection pattern http://martinfowler.com/articles/injection.html Inhaltsverzeichnis 1. Martin Fowler 5. Service
Oliver Paulus, [email protected]. 7. Februar 2006. Spring Framework Einführung. Oliver Paulus, [email protected]. Was ist Spring?
[email protected] 7. Februar 2006 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2
Richard Oates Thomas Langer Stefan Wille Torsten Lueckow Gerald Bachlmayr. Spring & Hibernate. Eine praxisbezogene Einführung HANSER
Richard Oates Thomas Langer Stefan Wille Torsten Lueckow Gerald Bachlmayr Spring & Hibernate Eine praxisbezogene Einführung HANSER 1 Einleitung 1 1.1 Für wen ist dieses Buch? 1 1.2 Organisation des Buches
Spring & Hibernate Eine praxisbezogene Einführung
Richard Oates, Thomas Langer, Stefan Wille, Torsten Lueckow, Gerald Bachlmayr Spring & Hibernate Eine praxisbezogene Einführung ISBN-10: 3-446-41213-1 ISBN-13: 978-3-446-41213-2 Weitere Informationen oder
Contexts and Dependency Injection. W3L AG [email protected]
1 Contexts and Dependency Injection W3L AG [email protected] 2015 2 Inhaltsverzeichnis Teil 1: Motivation Teil 2: Inversion of Control Teil 3: Contexts and Dependency Injection Teil 4: Beispiel zurück 3 Motivation
G s e a s m a t m ar a ch c i h tek e tur u I und IoC
Gesamtarchitektur I und IoC Schichten einer Web-Anwendung Initiiert durch J2EE und Spring: Strukturierte Sicht auf UI und Fachlogik (Domäne) Ergibt 5 Schichten: Man unterscheidet Präsentations- und Domänenmodell!
Enterprise JavaBeans Überblick
Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 2. Einführung Java EE 5 Plattform 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5.
Aspektorientierte Middleware Florian Wagner
Anwendungen der Aspektorientierung (5) Übersicht Middleware? Middleware-Concerns Java 2 Enterprise Edition AO Implementierung AOP & JBoss 2 mid dle ware (mĭd'l-wâr') n. Software that serves as an intermediary
Dependency Injection mit dem Unity Container
1 Dependency Injection mit dem Unity Container Vom Problem zur Lösung unter Anwendung des Unity Containers W3L AG [email protected] 2015 2 Inhalt Problemstellung Einführung Dependency Injection Manuelle Objektkomposition
Komponentenbasierte Softwareentwicklung mit PHP. Oliver Schlicht - bitexpert
Komponentenbasierte Softwareentwicklung mit PHP Oliver Schlicht - bitexpert Überblick 1. Was ist eine Komponente? 2. Entwicklung eines Beispieldesigns 3. Dependency Injection 4. DI Container Garden 5.
Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire
Integration von Web Services in J EE Anwendungen mit XFire 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire univativ : = Umsetzung durch Studenten und Young Professionals.
11. Komponenten Grundlagen der Programmierung 1 (Java)
11. Komponenten Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 10. Januar 2006 Einordnung im Kontext der Vorlesung
Enterprise JavaBeans Überblick
Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 2. Einführung Java EE 5 Plattform 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5.
Dieser Artikel bietet eine Einführung in die Konzepte der Lightweight Container und beschreibt das grundlegende Konzept, das Inversion of Control.
Betrifft: Abnehmen leicht gemacht - Lightweight Container auf dem Vormarsch Autor: Guido Schmutz Art der Info: Whitepaper (Juni 2005) Quelle: Aus unserem TechnoCircle und TTC (Trivadis Technology Center)
Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007
Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit
Eberhard Wolff. Spring. Framework für die Java-Entwicklung. "BJ dpunkt.verlag
Eberhard Wolff Spring Framework für die Java-Entwicklung "BJ dpunkt.verlag -^1 1 Einleitung 1 1.1 Warum Spring? 1 1.2 Was ist Spring? 1 1.3 Spring und Java EE 3 1.4 Woher kommt Spring? 4 1.5 Warum dieses
Enterprise JavaBeans Überblick: 12. Session Facade Einleitung 12.2 Problem 12.3 Lösung. Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 460
Enterprise JavaBeans Überblick 1. Überblick Komponententechnologien 2. Einführung 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5. Java Persistence: Entity Manager 6.
REST-Services mit Dropwizard ruck-zuck erstellt, dokumentiert und getestet
.consulting.solutions.partnership REST-Services mit Dropwizard ruck-zuck erstellt, dokumentiert und getestet Alexander Schwartz, Principal IT Consultant Berlin Expert Days 2015 REST-Services ruck-zuck
Dependency Injection in der Praxis: Spring, PicoContainer und Eclipse im Vergleich
Dependency Injection in der Praxis: Spring, PicoContainer und Eclipse im Vergleich Dipl.-Informatiker Martin Lippert Senior IT-Berater [email protected] http://www.it-agile.de/ Überblick Motivation
Dokumentation zur Ausarbeitung des Artikels von Martin Fowler
Dokumentation zur Ausarbeitung des Artikels von Martin Fowler Inversion of Control Containers and the Dependency Injection pattern http://martinfowler.com/articles/injection.html von André Kley 269767
JavaEE Grundlagen. Theis Michael - Senior Developer UniCredit Global Information Services S.C.p.A
JavaEE Grundlagen FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Theis Michael - Senior Developer UniCredit Global Information Services S.C.p.A Sommersemester 2012 2 Die Java EE
Anwendungsentwicklung mit Spring
Anwendungsentwicklung mit Spring Eberhard Wolff Managing Director Interface21 GmbH Interface21 - Spring from the Source Interface21 Produkte u.a. Spring Framework Spring from the Source Consulting, Training,
Enterprise JavaBeans Überblick
Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5. Java Persistence: Entity Manager 6.
Axis2, CXF und JAX-WS RI im Vergleich
Axis2, CXF und JAX-WS RI im Vergleich Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de [email protected] Gliederung Die Standards: JWS, JAXB und JAX-WS Axis2 Apache CXF JAX-WS RI und
Spring & OSGi: Plattform der Zukunft. Bernd Kolb (Kolbware) Martin Lippert (akquinet agile GmbH) Gerd Wütherich (comdirect bank AG)
Spring & OSGi: Plattform der Zukunft Bernd Kolb (Kolbware) Martin Lippert (akquinet agile GmbH) Gerd Wütherich (comdirect bank AG) 0 Inhalt Warum Spring & OSGi? Die Grundidee Der Stand der Dinge Ein praktisches
Hivemind Ein leichtgewichteter Container
Hivemind Ein leichtgewichteter Container Manfred Wolff, [email protected], www.manfred-wolff.de Container sind Laufzeitumgebungen für Objekte. Der mächtigste Container im Java-Umfeld der EJB Container
Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.
Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational
Geschäftskomponenten mit EJB 3.1
Geschäftskomponenten mit EJB 3.1 Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Kurt Fastner Sommersemester 2012 Inhalt Was ist EJB Die verschiedenen EJB-Typen/Komponenten Applikationsserver,
Properties und Proxies
g n årà Dr. Winfried Grünewald [email protected] Properties und Proxies Dr. Winfried Grünewald, Stutensee 2011 Version 0.9 2/10 1 Einleitung Die Java Entwicklungsumgebung bietet mit den Properties-Dateien
ZenQuery - Enterprise Backend as a Service Single Page Applications mit AngularJS und Spring MVC. - Björn Wilmsmann -
ZenQuery - Enterprise Backend as a Service Single Page Applications mit AngularJS und Spring MVC - Björn Wilmsmann - ZenQuery Enterprise Backend as a Service Unternehmen horten Daten in Silos ZenQuery
Multimedia im Netz Wintersemester 2012/13
Multimedia im Netz Wintersemester 2012/13 Übung 10 Ludwig-Maximilians-Universität München Multimedia im Netz WS 2012/13 - Übung 10-1 Lösung zu Übungsblatt 08 Ludwig-Maximilians-Universität München Multimedia
+++ Bitte nutzen Sie die integrierte Audio-Funktion von WebEx (Menü Audio -> Integrated Voice Conference -> Start auswählen), um uns zu hören!!!.
+++ Bitte nutzen Sie die integrierte Audio-Funktion von WebEx (Menü Audio -> Integrated Voice Conference -> Start auswählen), um uns zu hören!!!. +++ Oracle Mobile Cloud Service (MCS) MCS SDK & MAF MCS
Einführung. Die Geschichte von Spring
Betrifft: Java Entwicklung leicht(er) gemacht - Einführung in das Spring Framework Autor: Guido Schmutz Art der Info: Whitepaper (Juni 2005) Quelle: Aus unserem TechnoCircle und TTC (Trivadis Technology
Wie ich lernte die API zu lieben. 19. März 2013. [email protected] 08142-4425 037 sic[!]sec GmbH Industriestraße 29-31 82194 Gröbenzell
Burp- Burp- Wie ich lernte die zu lieben 19. März 2013 [email protected] 08142-4425 037 sic[!]sec GmbH Industriestraße 29-31 82194 Gröbenzell Burp- Was erwartet uns? Das erwartet euch Theorie:
Info B VL 11: Innere Klassen/Collections
Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections
Moderne App-Entwicklung am Beispiel waipu.tv
Moderne App-Entwicklung am Beispiel waipu.tv Andreas Bauer 10.11.2016 Johannes Schamburger Informationen zur inovex GmbH - IT-Dienstleister in Pforzheim, Karlsruhe, Köln, München und Hamburg - Application
Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
Refactorings in großen Softwareprojekten
Refactorings in großen Softwareprojekten (C) 2004 Martin Lippert [email protected] Stefan Roock [email protected] Was ist Refactoring? A change made to the internal structure of software to make it easier
Design Patterns. (Software-Architektur) Prof. Dr. Oliver Braun. Letzte Änderung: :12. Design Patterns 1/26
Design Patterns (Software-Architektur) Prof. Dr. Oliver Braun Letzte Änderung: 11.07.2017 15:12 Design Patterns 1/26 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides:
Enterprise Application Integration Spring Integration. Thomas Kruse
Enterprise Application Integration Spring Integration Thomas Kruse Agenda Motivation Enterprise Integration Spring Framework Spring Integration Q&A http://www.jug-muenster.de/ 2 Anforderungen an Informations
Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen
Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Aufgabenblatt 4 Aufgabe 1 1. Erläutern Sie in eigenen Worten die Begriffe Datenstruktur, Datentyp und abstrakter Datentyp. Nutzen Sie das Beispiel
Persistenz unter Kontrolle mit JDBI für Java
.consulting.solutions.partnership Persistenz unter Kontrolle mit JDBI für Java DOAG Konferenz 2016 17. November 2016 Persistenz unter Kontrolle mit JBDI für Java 1 2 3 SQL - effizienter Zugriff auf die
Decorator Pattern. Analyse- und Design-Pattern CAS SWE FS14. Roland Müller Samuel Schärer
Decorator Pattern Analyse- und Design-Pattern CAS SWE FS14 Roland Müller Samuel Schärer Entwurfsmuster der «Gang of Four» Strukturmuster fassen Klassen und Objekte zu grösseren Strukturen zusammen Adapter
Erzeugungsmuster. Kapselung der Objekt-Erzeugung
Erzeugungsmuster Kapselung der Objekt-Erzeugung Definition Erzeugungsmuster dienen für die Lose Koppelung, bei der erst zur Laufzeit der Typ des zu erzeugenden Objekts festgelegt wird. Abstract Factory
Property Based Testing
Property Based Testing Nicolai Mainiero sidion Testen ist schwer Testen ist schwer Warum? Alle Pfade durch den Code aufzuzählen ist aufwendig. Selbst vermeintlich einfache Systeme können komplex sein.
Oracle9i Designer. Rainer Willems. Page 1. Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH
Oracle9i Designer Rainer Willems Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH Page 1 1 Agenda 9i Designer & 9i SCM in 9i DS Design Server Generierung &
Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält
16 Migration von EJB 2.x nach 3.0
455»Gewohnheiten machen alt. Jung bleibt man durch die Bereitschaft zum Wechsel.«Attila Hörbiger 16.1 Kurz gefasst In diesem Kapitel widmen wir uns der sanften Migration von EJB nach. Dazu gehört auch
Komponentenorientierte Software-Entwicklung. Seite 1 / 42
Seite 1 / 42 Wiederholung Messaging Java Messaging Service (JMS) Pub/Sub P2P Messaging Middleware XMPP-Protokoll Java API for XML-Processing (JAXP) Java API for XML-Binding Webservices / SOA Simple Object
Java Persistence API. Phillip Ghadir Oliver Tigges
Phillip Ghadir [email protected] Oliver Tigges [email protected] Was wissen Sie in 45 Minuten? Wie man mit JPA entwickelt. Dass wir viele Eigenschaften von JPA ausgelassen haben. Dass Sie nicht
Warum EJB Technologie (1)?
Datenbanken und Informationssysteme 2 SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS 2004 Folie EJB - 1 Warum EJB Technologie
Einführung: Verteilte Systeme - Remote Method Invocation -
Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation
IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1
IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft
Struts 2 Das Imperium schlägt zurück?
Struts 2 Das Imperium schlägt zurück? Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Tobias Kieninger www.oio.de [email protected] Java, XML und Open Source seit 1998 ) Software
Delphi MVC Framework. Mathias Pannier
Delphi MVC Framework Mathias Pannier Über mich Name: Mathias Pannier Position: Softwareentwickler/Teamleiter Mehr als 15 Jahre Erfahrung mit Softwareentwicklung in Delphi Blog: DMVCFramework Delphi MVC
