Scharfe Anmerkungen für Java 6 mit Lombok

490 Aufrufe

Veröffentlicht am

Eher unbekannt ist die Pluggable Annotation Processing API von Java, welche erlaubt schon während des Compilerens Annotations zu nutzen. Das Projekt Lombok geht noch weiter und verändert sogar den annotierten Code selbst. Boilercode wie Getter/Setter und das Aufräumen von Ressourcen lassen sich somit durch knackige Annotations ersetzen. Wir betrachten am Livedemo Chance und Grenzen beider Ansätze.

Veröffentlicht in: Technologie, News & Politik
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
490
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
3
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Scharfe Anmerkungen für Java 6 mit Lombok

  1. 1. Benjamin Schmid 03.05.2011 | 16:45 - 17:45 Uhr Scharfe Anmerkungen für Java 6 mit Lombok
  2. 2. Überblick 2 | Scharfe Anmerkungen für Java 6
  3. 3. Schnelldurchlauf: Java Annotations * Auslesbar zur >> Laufzeit >> Compilezeit ! * Ideal für eigene Meta Modelle 3 | Scharfe Anmerkungen für Java 6
  4. 4. Demo happens here.. 4 | Scharfe Anmerkungen für Java 6
  5. 5. Schnelldurchlauf: Java Annotations 5 | Scharfe Anmerkungen für Java 6
  6. 6. Java Annotations : Auslesen zur Laufzeit 6 | Scharfe Anmerkungen für Java 6
  7. 7. JAR – Datei / Klassenpfad Pluggable Annotation Processing (JSR 269) META-INFservicesjavax[..]Processor + Eigene Annotation Processor Klasse 7 | Scharfe Anmerkungen für Java 6
  8. 8. 8 | Scharfe Anmerkungen für Java 6 Live Demo / Plugable Annotation Processor
  9. 9. Fazit : Annotations & Pluggable Annotations Processor PRO: Dead easy to make -> vgl. Beispiel Dead easy to use -> Klassenpfad aufnehmen Standard & Nahtlose Integration BEISPIEL: Hibernate Metamodell Generator CON: Kann nur Neues (Klahissen/Bytecode/.. ) nzufügen 9 | Scharfe Anmerkungen für Java 6
  10. 10. 10 | Scharfe Anmerkungen für Java 6
  11. 11. Standardproblem: Getter, Setter, toString() 11 | Scharfe Anmerkungen für Java 6
  12. 12. Demo happens here.. 12 | Scharfe Anmerkungen für Java 6
  13. 13. Lombok – Installation : Bin ich schon drin? 1. lombok.jar downloaden Instal ation in Eclipse: lombok.jar ausführen 2. 3. Aufnehmen im Projekt-Klassenpfad java –jar lombok.jar 13 | Scharfe Anmerkungen für Java 6
  14. 14. …mit Lombok 14 | Scharfe Anmerkungen für Java 6
  15. 15. Lombok @Getter / @Setter / @NonNull JavaBean Getter und Setter 15 | Scharfe Anmerkungen für Java 6
  16. 16. Lombok @Getter / @Setter / @NonNull Automatische Equals/Hashcode Implementierung 16 | Scharfe Anmerkungen für Java 6
  17. 17. @No/Required/AllArgsConstructor Konstruktoren generieren lassen 17 | Scharfe Anmerkungen für Java 6
  18. 18. @ToString Sprechende toString() Ausgaben 18 | Scharfe Anmerkungen für Java 6
  19. 19. @EqualsAndHashCode Objektvergleich auf Feldbasis 19 | Scharfe Anmerkungen für Java 6
  20. 20. @Data All-in-one Kommando für ein POJO 20 | Scharfe Anmerkungen für Java 6 @Dattears = Get ters + tSet ring() + hashCode() oSt + euqals() + Constructor + ------------POJO
  21. 21. That wasbut thpojsoeven ere‘ MORE 21 | Scharfe Anmerkungen für Java 6
  22. 22. @Cleanup Automatic Resource Mangement für Java 6 22 | Scharfe Anmerkungen für Java 6
  23. 23. Sahnehäubchen… 23 | Scharfe Anmerkungen für Java 6
  24. 24. Sahnehäubchen : val 24 | Scharfe Anmerkungen für Java 6
  25. 25. Weitere Features @SneakyThrows @Synchronized @Getter(lazy) Thread-safe, lazy init Felder @Log Angekündigt @Delegate 25 | Scharfe Anmerkungen für Java 6 Tol ! Delegieren per Annotation
  26. 26. Houston?! java -jar lombok.jar delombok src -d src-delombok Erzeugt aKopien derateien Jav -Quelld Ersetzt:-Tags -> Standard Java Lombok 26 | Scharfe Anmerkungen für Java 6
  27. 27. Behind the scenes Hängt sich via Pluggable Processing API ein Anstatt neuen Bytecode-Klassen zu erzeugen… … verändert es zur Compilezeit diesen über den aufgebauten AST (Abstract Syntax Tree) Nutzt dazu nicht-öffentliche API Zwei Implementierungen: Eclipse & Javac 27 | Scharfe Anmerkungen für Java 6
  28. 28. Fazit Lombok Lob Boilerplate-Buster Einfache Verwendung Kein Lock-in durch Delombok . . Kritik Es ist ein HACK! . Neue Sprachsemantik . Bislang nur in Eclipse sinnvoll Eigene Erweiterungen möglich . Kleinere Usability Glitches Java 7-like Features für Java 6 . . Namen & Umfang der Tags Spannende Ansätze! . 28 | Scharfe Anmerkungen für Java 6
  29. 29. Quellen & Referenzen Besuchen Sie uns auf unserem Stand! Project Lombok Website Vortragsvideos http://projectlombok.org/ http://parleys.com/d/1574 http://parleys.com/#st=5&id=2136 Bildquellen Illustrationen Zeichnungen http://www.sxc.hu/ Oliver Pehnke B.Schmid@exxcellent.de eXXcellent solutions gmbh Beim Alten Fritz 2 D-89075 Ulm Telefon: Telefax: Web: +49 (0) 731 - 550 26 – 0 +49 (0) 731 - 550 26 – 99 http://www.exxcellent.de Weiterführendes Material Annotation Pitfalls http://bit.ly/lcntFl Lombok & NetBeans http://wiki.netbeans.org/Lombok Eigene Tags schreiben http://www.ibm.com/developerworks/java/library/j-lombok/ 29 | Scharfe Anmerkungen für Java 6

×