Einfache Bean-Mappings mit MapStruct 1.2
|
|
- Jakob Acker
- vor 6 Jahren
- Abrufe
Transkript
1 t Frankfurt am Main Thomas Much Einfache Bean-Mappings mit MapStruct #ittage
2 Wer steht hier vorne? Thomas Much Agile Developer Coach & XP Coder (Java et al.) Mag coole kleine Tools & Libs (und erzählt gerne darüber #ittage
3 Java und Beans, eine lange Geschichte Form JPA Typsicheres, Beans DTOs POJOs Entities schnelles Bean-Mapping! JavaBeans JAXB Entities
4 Klassische Architekturen (J2EE)
5 Was Java EE & Co. versprechen
6 Die Realität
7 Moderne Realität! Domain Model A Transport Model A Domain Model B Bounded Context A Bounded Context B
8 Das = "CUSTOMERS") public class Customer { public class CustomerDTO Long id; long id; long customerid; String customerid; String name; String Title title; String title; getters and setters! getters and setters!
9 kann aufwendig werden DTO JPA Entity REST Entity JAXB Entity View Bean
10 Mapping-Implementation wie? Selber programmieren Alle Getter/Setter von Hand aufrufen Eigene Reflection-Routinen Reflection-basierte Bibliotheken: Apache BeanUtils, Dozer, Probleme: Aufwand, fehlende Typsicherheit, Performance
11 Performance Performance!
12 Annotationsprozessor, der Mapping-Code (Quelltext!) generiert. Keine Reflection! Typsicher und schnell. Mind. Java 6, spezielle Unterstützung für Java 8+ Minimale Laufzeitabhängigkeit (< 20 K) bzw. gar keine (je nach Komponentenmodell)
13 Versionen MapStruct 1.0 (2015) MapStruct 1.1 (2016) MapStruct 1.2 (2017)
14 JARs (Dependencies) Java 8+ Java 6 / 7 Java 6+, unnötig zur Laufzeit
15 Beispiel JPA-Entity = "CUSTOMERS") public class Customer { public class CustomerDTO Long id; long id; long customerid; String customerid; String name; String Title title; getters and setters! Alle public-properties sollen gemappt werden (auch aus Oberklassen) String title; getters and setters!
16 Wünsch dir was! public interface CustomerMapper { CustomerDTO customer2dto(customer customer);
17 Wünsch dir = "cdi") public interface CustomerMapper { CustomerDTO customer2dto(customer private CustomerMapper mapper; CustomerDTO dto = mapper.customer2dto( customer );
18 Die Implementation generieren Wie erzeugen wir aus dem Interface die Mapping-Implementation? Speichern z.b. in Eclipse. Genauer: Compiler aufrufen (z.b. via Maven/Gradle) Annotationsprozessor erledigt den Rest! Live Demo
19 @Generated( value = "org.mapstruct.ap.mappingprocessor", date = " T16:41: ", Generierter Quelltext comments = "version: Beta3, compiler: Eclipse JDT (IDE)..." public class CustomerMapperImpl implements CustomerMapper public CustomerDTO customer2dto(customer customer) { if (customer == null) { return null; Thread-sicher. CustomerDTO customerdto = new CustomerDTO(); customerdto.setcustomerid(string.valueof(customer.getcustomerid())); if (customer.getid()!= null) { customerdto.setid(string.valueof(customer.getid())); Clean Code. Leicht zu lesen. customerdto.setname(customer.getname()); if (customer.gettitle()!= null) { return customerdto; sind optional
20 Kein Injection-Container? Kein public interface CustomerMapper { CustomerMapper INSTANCE = Mappers.getMapper( CustomerMapper.class ); CustomerDTO customer2dto(customer customer); CustomerDTO dto = CustomerMapper.INSTANCE.customer2DTO( customer );
21 Typ- (& Wert-) Sicherheit WARN / ERROR / IGNORE Policy global setzen oder pro Mapper (oder Default verwenden)
22 Grundlegende public interface dateformat="dd.mm.yyyy") ) CustomerDTO customer2dto(customer customer);
23 Enum-Werte public interface CustomerMapper source="<any_unmapped>") DtoTitle title2dtotitle(title title); CustomerDTO customer2dto(customer customer); Siehe MappingConstants
24 Viele implizite Umwandlungen Primitive Datentypen Wrapper (inkl. null-checks) Number-Typen (incl. Big ) andere Number-Typen & Präzisionen String so ziemlich alles (inkl. Enums & Date/Number-Formate) Date/Calendar Joda Java 8 Date/Time JAXB Elemente, Collections
25 public interface CustomerMapper { CustomerDTO customer2dto(customer public class Customer { Das ist alles! Address address; other properties getters and setters!
26 Referenz-Mapping public interface CustomerMapper { CustomerDTO customer2dto(customer customer); AddressDTO address2dto(address address);
27 Andere Mapper public interface CustomerMapper { CustomerDTO customer2dto(customer public interface AddressMapper { AddressDTO address2dto(address address);
28 Eigener public interface CustomerMapper { CustomerDTO customer2dto(customer customer); default AddressDTO address2dto(address address) { AdressDTO dto = new AddressDTO(); custom mapping code return dto; Alternativ mit einer abstrakten Klasse
29 Alten Mapping-Code public interface CustomerMapper { CustomerDTO customer2dto(customer customer); public class LegacyAddressMapper { public AddressDTO address2dto(address address) { custom mapping code return dto; Default Constructor oder statische Mapping- Methode nötig.
30 Mehrere public interface PrintLabelMapper source="address.city") PrintLabelDTO customeraddress2dto( Customer customer, Address address); Pfad-Ausdrücke können generell in "source" und "target" verwendet werden.
31 Updates & public interface CustomerMapper { CustomerDTO customer2dto(customer customer); Alternativ void updatecustomerdto(customer CustomerDTO dto); Target-Typ als Max. Rückgabe Customer dto2customer(customerdto dto);
32 Mappings public interface CustomerMapper ) CustomerDTO customer2dto(customer void updatecustomerdto(customer CustomerDTO Customer dto2customer(customerdto dto);
33 Context-Parameter Aufruf eigenem Code public interface CustomerMapper { CustomerDTO customer2dto(customer Locale locale); Wird in der generierten Implementation durchgereicht! AddressDTO address2dto(address Locale locale);
34 Eigene Mapper mit public class JpaEntityMapper private EntityManager manager; public <T extends BaseEntity> T resolve(long Class<T> entityclass) { return (id!= null)? manager.find(entityclass, id) : null;
35 Bean-Fabriken public class DtoFactory { public CustomerDTO createcustomerdto() { return new CustomerDTO(); public class EntityFactory { public <T extends BaseEntity> T createentity(@targettype Class<T> entityclass) { return entityclass.newinstance();
36 Streams & Collections von public interface CustomerMapper { CustomerDTO customer2dto(customer customer); List<CustomerDTO> list2list(list<customer> customer); List<CustomerDTO> array2list(customer[] customer); CustomerDTO[] set2array(set<customer> customer); List<CustomerDTO> stream2list(stream<customer> cust); Stream<CustomerDTO> set2stream(set<customer> cust);
37 Streams & Collections von public interface StreamCollectionMapper { Set<Long> int2long(stream<integer> stream); Stream<Long> int2long(list<integer> List<String> date2string(list<date> Map<String,String> map2map(map<long,date> map);
38 Exceptions Jede Checked Exception, die nicht an der Mapping-Methode deklariert ist, wird als RuntimeException weitergeworfen.
39 In Mapping-Aufrufe wird mitgeliefert aber besser CDI-Decorators verwenden.
40 MapStruct SPI Accessor Naming Strategy (Zugriffsmethoden) anpassen z.b. Fluent API statt Getter/Setter Mapping-Ausnahmen Bestimmte Typen vom automatischen Mapping ausschließen
41 Viele weitere Möglichkeiten Konstante Werte & Java-Ausdrücke als "source". Default-Werte, wenn die Quelle null ist. Reihenfolge von Setter-Aufrufen ("dependson"). Angepasste null-prüfungen & Default-null-Werte. Zentrale Mapping-Konfigurationen Auswahl mehrdeutiger Mapping-Methoden per Qualifier oder Name
42 Integration in Build-Tools javac SPI MapStruct einfach auf den Classpath packen! Maven, Ant, Gradle MapStruct-Dokumentation enthält (einfache) Setup-Anleitung: MapStruct-Dependency hinzufügen, Annotationsprozessor aktivieren.
43 Eclipse Plug-in Code Completion Quick Fixes
44 IntelliJ Plug-in Code Completion Goto Declaration Find Usages
45 Neu in MapStruct 1.2 Unterstützung für Java 8 Streams. Mappings für public-felder. Automatische Generierung von Sub-Mapping-Methoden. Integration mit Project Lombok. Unterstützung für Java 9 (experimentell).
46 Lombok vs. public interface CustomerMapper { CustomerDTO customer2dto(customer public class CustomerDTO { private long id; private String customerid; private = "CUSTOMERS") public class Customer Long id; private String title; Getter und Setter!
47 Lombok vs. public interface CustomerMapper { Manipuliert AST- Bytecode CustomerDTO customer2dto(customer customer); Generiert public class CustomerDTO { private long id; private String customerid; private String = "CUSTOMERS") public class Customer Long id; private String title; Getter und Setter!
48 MapStruct Fazit Hervorragend produktiv einsetzbar! Generierter Code ist schnell, einfach und lesbar. Flexible (Custom-)Mappings. Einfache Einbindung in div. Komponentenmodelle. Ausführliche und gut geschriebene Dokumentation.
49 Neugierig geworden?
50 Die Entwickler: Danke!
51 t Frankfurt am Main Vielen Dank! #ittage
Bean-Mapping mit MapStruct
Machst Du noch Reflection oder annotierst Du schon? Bean-Mapping mit MapStruct Thomas Much thomas@muchsoft.com www.muchsoft.com 1 20 Jahre Java, 18 Jahre Beans JavaBeans JAXBEntities 2015 2006 2005 2000
MehrWER ERZÄHLT DIE NÄCHSTEN 55+ MINUTEN ETWAS?
WER ERZÄHLT DIE NÄCHSTEN 55+ MINUTEN ETWAS? Gerrit Brehmer, Karlsruhe Auf der Arbeit: Software-Entwickler/Architekt ( / Projektleiter) bei der inovex GmbH In der Freizeit: Smart Home BEAN-MAPPING: EINSATZ
MehrBean-Mapping mit MapStruct
Bean-Mapping mit MapStruct Thomas Much @thmuch www.muchsoft.com www.jughh.de 1 Java und Beans, eine lange Geschichte 1995 Form Beans 1998 DTOs 1999 POJOs 2000 JPA- Entities 2006 Typsicheres, schnelles
MehrEnterprise 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.
MehrIntegration 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.
MehrII.4.5 Generische Datentypen - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.5 Generische Datentypen - 1 - Ähnliche
MehrÜbungsaufgabe Transaktion als Middleware
Übungsaufgabe Transaktion als Middleware und Java Persistence API Client/Server Abstraktes Komponentenmodell Entscheidende Punkte Erweiterung der Invoke-Methode Context-Verwaltung Transaktionsbehandlung
MehrOliver Paulus, oliver@code-project.org. 7. Februar 2006. Spring Framework Einführung. Oliver Paulus, oliver@codeproject.org. Was ist Spring?
oliver@code-project.org 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
MehrProgrammierung von Client/Server- Anwendungen
Programmierung von Client/Server- Anwendungen Komponenten des Web-Containers (Java EE) SoSe2015 Prof. Dr. Andreas Schmietendorf 1 Übersicht zur Vorlesung Entwicklung der Java Enterprise Edition Servlets,
MehrJava Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff
Java Reflection Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Die Java Reflection API liefert per Introspection Informationen über Klassen => Meta-Daten.
MehrAuszug aus JAX-WS Folien
Auszug aus JAXWS Folien Dieses Dokument ist ein Auszug aus unserem Skript zur Java Web Services Schulung. Es dient lediglich als Beispiel für unsere Kursunterlagen. Thomas Bayer Hauptstraße 33 75050 Gemmingen
MehrPersistenz. Ralf Gitzel
Persistenz Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Grundkonzepte Entity Beans Meine erste Entity Entity-Manager Lernziele Übungsaufgabe 3 Grundkonzepte
MehrAnalyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz
Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java Oliver Kalz Agenda Grundlagen Objektpersistenz Objektrelationales Mapping Performance Fazit
MehrMit Java von der Datenbank in den Browser Thomas Bröll Principal Consultant Trivadis GmbH, Stuttgart
Mit Java von der Datenbank in den Browser Thomas Bröll Principal Consultant Trivadis GmbH, Stuttgart BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH
MehrModulare Anwendungen und die Lookup API. Geertjan Wielenga NetBeans Team Deutschsprachige Überarbeitung, Aljoscha Rittner NetBeans Dream Team
Modulare Anwendungen und die Lookup API Geertjan Wielenga NetBeans Team Deutschsprachige Überarbeitung, Aljoscha Rittner NetBeans Dream Team Die Notwendigkeit modularer Anwendungen Die Notwendigkeit modularer
MehrÜbung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
MehrDas Build Tool Ant. Sebastian Mancke, mancke@mancke-software.de
Das Build Tool Ant Sebastian Mancke, mancke@mancke-software.de Grundlagen Motivation Bei der Übersetzung und Pflege von Software treten viele, gleich bleibende Arbeitsschritte auf. Übersetzen des Codes
MehrEclipse und EclipseLink
Eclipse und EclipseLink Johannes Michler Johannes.Michler@promatis.de PROMATIS, Ettlingen Zugriff auf Oracle Datenbanken aus Eclipse RCP Anwendungen via EclipseLink 18.09.2009 1 Gliederung Eclipse als
MehrJava Beans. http://java.sun.com/beans/
Java Beans http://java.sun.com/beans/ Software Komponenten Eine Software Komponente ist ein eigenständiges, flexibles und einfach wieder verwendbares Stück Software. In Java: + Plattformunabhängigkeit
MehrMethoden und Wrapperklassen
Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)
MehrJava-Schulung Grundlagen
Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings
MehrApplication Frameworks
Seminar Software Engineering 1 Grundlagen Agenda Spring Framework Dependency Injection Aspektorientierte Programmierung Datenbankanbindung Modell View Controller Sicherheit Spring vs. Java EE Zusammenfassung
MehrSoftware Engineering II
Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters
MehrGregor Raschke 2008 HIBERNATE. Eine Einführung
1 HIBERNATE Eine Einführung Inhalt 2 Einleitung Beispielkonfiguration Die hibernate.cfg.xml Eine Beispieltransaktion Abfragemöglichkeiten JPA und Hibernate Ressourcen und Quellen Einleitung (1) - Geschichtliches
MehrSchritt 4: Hallo Enterprise Bean
Prof. Dr. Th. Letschert FB MNI JEE Schritt 4: Hallo Enterprise Bean Einstieg: EJBs erzeugen und nutzen Meine erstes EJB Projekt Enterprise Beans sind eine Backend Technologie, die mit unterschiedlichen
MehrII.4.2 Abstrakte Klassen und Interfaces - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.2 Abstrakte Klassen und Interfaces - 1
MehrJavadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck
Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrRene Böing, Alexander Kuhn, Marc Wilmes Einführung in Spring und Hibernate
1 von 43 Rene Böing, Alexander Kuhn, Marc Wilmes Einführung in Spring und Hibernate 27.11.11 Agenda Einleitung Ist-Zustand Bookstore Was ist Hibernate? Wie funktioniert Hibernate? Was ist Spring? Architektur
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 13: Interfaces Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Interfaces Motivation Eigenschaften Besonderheiten Anonyme Klassen Lambda-Ausdrücke Praxis:
MehrProject Lombok in Action , Vitaly Markin
Project Lombok in Action 25.08.2012, Copyright 2012 2008 anderscore GmbH whoami Diplom-Informatiker (Uni Bonn) Seit > 12 Jahren Java-Programmierer Software Engineer bei anderscore GmbH Unternehmen mit
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MehrADT: Java Collections und ArrayList
ADT: Java Collections und ArrayList Überblick der Klassen Object File Collections Map List Set ArrayList LinkedList SortedSet HashSet SortedSet Methode ArrayList Klasse I Beschreibung void add(int position,
MehrRemote Method Invocation
Remote Method Invocation Spezielle Technik aus dem Java-Umfeld Ausführung von Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VMs Aufruf
MehrCodegeneratoren mit Xtend2. 11.04.2012, A. Arnold
Codegeneratoren mit Xtend2 11.04.2012, A. Arnold Copyright 2012 anderscore GmbH Inhalt 1. Was ist Xtend2? 2. Xtend2 Konzepte 3. Hands On! 3 4 8 20 2 Was ist Xtend2? Funktionale, objektorientierte Sprache
MehrMultimedia 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
MehrDominik Helleberg inovex GmbH. Auf Augenhöhe mit Android Studio und Gradle
Dominik Helleberg inovex GmbH Auf Augenhöhe mit Android Studio und Gradle Dominik Helleberg Mobile Development Android / Embedded Tools http://dominik-helleberg.de/+ The new Dream Team Gradle + Android
MehrErfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH
Erfahrungen und Erkenntnisse Klaus Richarz, HBT GmbH Java Enterprise Edition 5.0 JBoss Seam Konsequenzen für Realisierung Qualitätssicherung Build & Deployment Fazit & Empfehlungen JBoss Seam in Projekten,
MehrÜbung 1: Object Inspector
Übung 1: Object Inspector Es ist ein System zu entwickeln, mit dem man Objektstrukturen bezüglich ihrer Properties analysieren und dann in einem Tree Viewer (JTree) anzeigen und bearbeiten kann. Properties
MehrOperation am offenen Herzen
Operation am offenen Herzen Case Study zur erfolgreichen JEE-7 Migration Dirk Ehms, GameDuell GmbH GameDuell Plattform Topologie Classic Platform Social Platform 64x Frontend Server OpenMQ 16x Frontend
MehrEinführung in die Modelltransformation mit Xtend
Einführung in die Modelltransformation mit Xtend 12. Dezember 2012 Taentzer Modellgetriebene Softwareentwicklung 297 Überblick Xtend: Eine statisch getypte Sprache, die zur Modellzu-Text-Transformation
MehrProgrammentwicklung ohne BlueJ
Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie
MehrHandbuch für die Erweiterbarkeit
Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6
MehrEnterprise 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.
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen
MehrSoftware Engineering II
Software Engineering II Wintersemester 12/13 Fachgebiet Software Engineering Installation der MWE Plugins Von der Juno Update Site installieren (falls noch nicht vorhanden): MWE SDK Xpand SDK 2 TFD Projekt
MehrEclipse 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
MehrRAP vs. GWT vs. GAE/J + jquery. Web Technologien im Verlgeich
RAP vs. GWT vs. GAE/J + jquery Web Technologien im Verlgeich RAP vs GWT vs jquery Dominik Wißkirchen 30. Oktober 2010 Abkürzungen RAP AJAX RWT Rich AJAX Platform Asynchronous JavaScript and XML RAP Widget
MehrC++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11
C++ Teil 12 Sven Groß 18. Jan 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 12 18. Jan 2016 1 / 11 Themen der letzten Vorlesung Wiederholung aller bisherigen Themen: Datentypen und Variablen Operatoren Kontrollstrukturen
MehrValidation und Quick Fixing mit Xtend. 3. Dezember 2014
Validation und Quick Fixing mit Xtend 3. Dezember 2014 175 Überblick Tuning der Xtext-generierten Editoren Validierung mit OCL auf der abstrakten Syntax mit Xtend auf der konkreten Syntax Quick Fixes mit
MehrObjektorientierte 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
MehrProgrammieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek
Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es
MehrProgrammiermethodik 3. Klausur Lösung
Programmiermethodik 3. Klausur Lösung 9. 1. 2014 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 20 2 16 3 45 4 19 5 20 Gesamt 120 1 Seite 2 von 10 Aufgabe 1) Objekt-Orientierung und Vererbung
MehrModerne Web- Anwendungen mit
Moderne Web- Anwendungen mit Oliver.Damm@akquinet.de September 2013 Web- Anwendungen mit Vaadin???
MehrSpring Dynamic Modules for OSGi Service Platforms
Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick
MehrQuellcode-Repräsentation in Eclipse. Seminarvortrag PG Reclipse Jan Rieke
Quellcode-Repräsentation in Eclipse Seminarvortrag PG Reclipse Jan Rieke Gliederung Motivation Architektur von Eclipse Quelltext-Repräsentation in Eclipse Java-Modell Java DOM/AST Zusätzliche Konzepte
MehrKlausur Grundlagen der Programmierung
Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel
MehrCodegenerierung mit Xtend. 21. Januar 2015
Codegenerierung mit Xtend 21. Januar 2015 Überblick Xtend bietet einen Template-basierten Ansatz zur Codegenerierung Xtend enthält eine spezielle Template-Sprache. Das Modell kann beliebig benutzt werden,
MehrPoseidon for UML. Einführung. Andreas Blunk
Poseidon for UML Einführung Andreas Blunk Gliederung 1) Editionen/Lizenzen 2) Die Programmoberfläche 3) Modelle speichern 4) Einführung am lebenden Objekt 5) Generierung (Doc & Code) 6) Funktionsumfang
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber in den Übungen! Linux, OS X http://hhu-fscs.de/linux-install-party/
MehrPersistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)
Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) O/R Mapping - Objekte (Attribute) - 1:1, 1:n, n:m Beziehungen - Vererbungen (- Interfaces)
Mehr10. OLAPLINE-Anwendertreffen
10. OLAPLINE-Anwendertreffen 26. und 27. April 2017 Schloss Garath Düsseldorf Zwei Tage Weiterbildung und Networking integriert: Vorträge, Workshops und Erfahrungsaustausch rund um TM1 JAVA EXTENSIONS
Mehr1 Polymorphie (Vielgestaltigkeit)
1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen
MehrErste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013
GTUG Java Arbeitskreis Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung September 2013 Jürgen Depping CommitWork GmbH Seite 1 Info@CommitWork.de www.commitwork.de Agenda Was ist OmnivoBase?
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
MehrFlorian Rappl. TypeScript
Florian Rappl TypeScript Profil Freiberuflicher IT-Berater Doktorand Theoretische Physik Microsoft MVP für Visual C# CodeProject MVP Kurzer Abriss Aufschwung von JS Vielzahl von Bibliotheken / Code Größere
MehrÜberblick. Java 5. Java 6. Java 7. Referenzen. neue Sprachfeatures Erweiterungen Klassenbibliothek. Erweiterungen Klassenbibliothek
Neuerungen in Java 5/6/7 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen Klassenbibliothek Java 7 Java wird Open Source Referenzen Stefan Bühler für InfoPoint
MehrPolymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 / 20 Polymorphie/Späte Bindung Abstrakte Klassen Interfaces 2 / 20 Definition: Polymorphie Der Begriff Polymorphie (manchmal
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen
Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.
MehrProgrammieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik
Programmieren I Dokumentation mit javadoc Heusch 10.4 Ratz 4.1.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Automatische Dokumentation Java bietet standardmäßig das Dokumentationssystem
MehrInfo 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
MehrFeature-Komposition auf Bytecode-Ebene
Feature-Komposition auf Bytecode-Ebene Claus Hunsen Sergiy Kolesnikov Sven Apel FOSD-Treffen 2012 Feature-Komposition Quellcode-Komposition Feature-Module (Quellcode) ➊ Komposition Variante (Quellcode)
MehrArtem Eger. Build-Systeme in java Maven & ANT
Artem Eger Build-Systeme in java Maven & ANT Gliederung (1) Motivation und Überblick (2) Bauen mit Ant (3) Praxisbeispiel Ant (4) Bauen mit Maven (5) Praxisbeispiel Maven (6) Ausblick 2/31 (1) Motivation
Mehr1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
MehrInformatik II Übung 06. Benjamin Hepp 5 April 2017
Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.
MehrRapid Java wie mit Forms
DOAG Konferenz 2011 Rapid Java wie mit Forms Java aktuell: XDEV 3 ist die erste professionelle Java IDE für Rapid Application Development. Viele RAD-Funktionen und die Arbeitsweise damit erinnern sehr
MehrJava I Vorlesung 6 Referenz-Datentypen
Java I Vorlesung 6 Referenz-Datentypen 7.6.2004 Referenzen this, super und null Typkonvertierung von Referenztypen Finale Methoden und Klassen Datentypen in Java In Java gibt es zwei Arten von Datentypen:
Mehrals Alternative zu REST Manuel
als Alternative zu REST Manuel Mauky @manuel_mauky Single-Page-Apps und mobile Apps API Wie kommen die Daten zum Client? API? Klassisch: REST/Hypermedia zahlreiche Ressourcen, jeweils über URIs erreichbar
MehrProgrammieren I. Strategie zum Entwurf von Klassen. Vorlesung 5. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Objektorientierte Sichtweise: Mit welchen Objekten habe ich es in einem Programm
MehrWorkshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk
Workshop Java Webentwicklung Einführung in Hibernate Ulrich Stärk Ablauf Montag bis Donnerstag 09:00 Uhr s.t. Beginn, bis ca. 17:00 Uhr 1 Stunde Mittagspause Donnerstag Experiment Aufzeichnung der Programmiertätigkeit
Mehr14. Java Objektorientierung
Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen
MehrSoftware Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
Mehr1 Abstrakte Klassen, finale Klassen und Interfaces
1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrEinstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung
MehrDas Model View Controller (MVC) Konzept
Das Model View Controller (MVC) Konzept Ziel: Erhöhung der Flexibilität und Reduktion der Komplexität von GUI-Programmen durch Standard- Struktur (MVC-Pattern). Geht zurück auf Smalltalk. View 1 View 2
MehrHibernate und Elasticsearch Von 0 auf 100 in 40 Minuten
1 Hibernate und Elasticsearch Von 0 auf 100 in 40 Minuten Gunnar Morling, Red Hat 2 Gunnar Morling Opensource-Softwareentwickler bei Red Hat Div. Hibernate-Projekte Spec Lead für Bean Validation 2.0 Andere
MehrDennis Schulte / Tobias Flohre codecentric AG. Enterprise Java Batch mit Spring
Dennis Schulte / Tobias Flohre Enterprise Java Batch mit Spring Dennis Schulte Düsseldorf @denschu www.github.com/denschu blog.codecentric.de/author/dsc tel +49 (0) 1515 _ 288 2395 dennis.schulte@codecentric.de
MehrJava Einführung Vererbung und Polymorphie. Kapitel 13
Java Einführung Vererbung und Polymorphie Kapitel 13 Inhalt Klassifikation (UML) Implementierung von Vererbungshierarchien Überschreiben von Methoden Polymorphismus: Up-Casting und Dynamisches Binden Schlüsselwort
MehrGeschä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,
MehrEs wird das Struts <html:options> Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht.
Struts Code Peaces Element Es wird das Struts Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht. Allgemeines Autor: Sascha Wolski Sebastian Hennebrüder
MehrÜberblick. Klassen Optionale Typen DOM. Optionale Parameter Klassen. Einführung. 2 Motivation 3 Werkzeuge 4 Demonstration 5 Dart
Eine kurze Lehrstuhl für Datenmanagement und -exploration RWTH Aachen Proseminar SS 2012 1 / 17 Überblick 1 2 3 4 5 6 7 8 2 / 17 1 -basierte Programmiersprache für Webanwendungen Entwickelt von Google
MehrEinführung in Javadoc
Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:
Mehr1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
MehrWie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?
Generic Programming without Generics from JAVA5 Motivation Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen? Ein Bespiel: sie haben bereits eine Klasse zur Multiplikation von Matrizen
MehrJava für C++ Programmierer
Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?
MehrMarc Philipp. Senior Software Karlsruhe. JUnit Maintainer seit Web:
JUnit 5 Marc Philipp Senior Software Engineer @ Karlsruhe JUnit Maintainer seit 2012 Twitter: @marcphilipp Web: http://www.marcphilipp.de Programmiermodell DEMO Meta Annotations Annotationen können miteinander
MehrImplementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
MehrFragen Arthur Zaczek. Okt 2017
Arthur Zaczek Okt 2017 1 Ihre Fragen 2017 2 Allgemeines 2.1 Map vs. Dictionary Was ist der Unterschied zwischen einer Map und einer Dictionary? Laut Doku soll ein Dictionary typesafe sein, jedoch nahm
Mehr