Suche senden
Hochladen
2009 03 17 Spring101
•
Als PPT, PDF herunterladen
•
0 gefällt mir
•
485 views
G
gueste4be40
Folgen
Technologie
Bildung
Melden
Teilen
Melden
Teilen
1 von 59
Jetzt herunterladen
Empfohlen
Android Development ...and the daily challenges
Android Development ...and the daily challenges
Dominik Helleberg
Legacy Code refaktorisieren
Legacy Code refaktorisieren
Hendrik Lösch
Unit testing mit Javascript
Unit testing mit Javascript
joergreichert
Iks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-Tests
Iks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-Tests
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
TYPO3 5.0 - Der aktuelle Stand der Zukunft
TYPO3 5.0 - Der aktuelle Stand der Zukunft
Jochen Rau
Objektvalidierung mit dem Bean Validation Api
Objektvalidierung mit dem Bean Validation Api
gunnarmorling
Dependency injection
Dependency injection
Mario Müller
AdvancedTdd
AdvancedTdd
jlink
Empfohlen
Android Development ...and the daily challenges
Android Development ...and the daily challenges
Dominik Helleberg
Legacy Code refaktorisieren
Legacy Code refaktorisieren
Hendrik Lösch
Unit testing mit Javascript
Unit testing mit Javascript
joergreichert
Iks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-Tests
Iks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-Tests
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
TYPO3 5.0 - Der aktuelle Stand der Zukunft
TYPO3 5.0 - Der aktuelle Stand der Zukunft
Jochen Rau
Objektvalidierung mit dem Bean Validation Api
Objektvalidierung mit dem Bean Validation Api
gunnarmorling
Dependency injection
Dependency injection
Mario Müller
AdvancedTdd
AdvancedTdd
jlink
Architektur einer Eclipse DLTK IDE für Clojure
Architektur einer Eclipse DLTK IDE für Clojure
Matthias Köster
javaPersistenceInActionFeaturesJenseitsDesEntryLevels
javaPersistenceInActionFeaturesJenseitsDesEntryLevels
gedoplan
Bkr Workflow Oeffentlich
Bkr Workflow Oeffentlich
Ralf Ruethlein
Codesmells
Codesmells
Hendrik Lösch
Automatisierungmit NANT
Automatisierungmit NANT
Klara-Oppenheimer-Schule
Ruby on Rails SS09 05
Ruby on Rails SS09 05
Daniel Dengler
주니어 개발자도 이해 할 수 있는 의존성 주입(Dependency Injection)
주니어 개발자도 이해 할 수 있는 의존성 주입(Dependency Injection)
Darion Kim
The Near Future of CSS
The Near Future of CSS
Rachel Andrew
The Presentation Come-Back Kid
The Presentation Come-Back Kid
Ethos3
Classroom Management Tips for Kids and Adolescents
Classroom Management Tips for Kids and Adolescents
Shelly Sanchez Terrell
Activism x Technology
Activism x Technology
WebVisions
How to Battle Bad Reviews
How to Battle Bad Reviews
Glassdoor
The Buyer's Journey - by Chris Lema
The Buyer's Journey - by Chris Lema
Chris Lema
Tech Talk Spring Framework
Tech Talk Spring Framework
Jens Rühmkorf
Go - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare Systeme
Frank Müller
MVVM mit WPF
MVVM mit WPF
Hendrik Lösch
Ionic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf Steroiden
Hendrik Lösch
Warum empfehle ich meinen Kunden das Spring Framework?
Warum empfehle ich meinen Kunden das Spring Framework?
Michael Plöd
Einsteiger Workshop
Einsteiger Workshop
FunThomas424242
Große Applikationen mit AngularJS
Große Applikationen mit AngularJS
Sebastian Springer
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
OPITZ CONSULTING Deutschland
Lightweight AOP with CDI and JPA
Lightweight AOP with CDI and JPA
mh0708
Weitere ähnliche Inhalte
Was ist angesagt?
Architektur einer Eclipse DLTK IDE für Clojure
Architektur einer Eclipse DLTK IDE für Clojure
Matthias Köster
javaPersistenceInActionFeaturesJenseitsDesEntryLevels
javaPersistenceInActionFeaturesJenseitsDesEntryLevels
gedoplan
Bkr Workflow Oeffentlich
Bkr Workflow Oeffentlich
Ralf Ruethlein
Codesmells
Codesmells
Hendrik Lösch
Automatisierungmit NANT
Automatisierungmit NANT
Klara-Oppenheimer-Schule
Ruby on Rails SS09 05
Ruby on Rails SS09 05
Daniel Dengler
Was ist angesagt?
(6)
Architektur einer Eclipse DLTK IDE für Clojure
Architektur einer Eclipse DLTK IDE für Clojure
javaPersistenceInActionFeaturesJenseitsDesEntryLevels
javaPersistenceInActionFeaturesJenseitsDesEntryLevels
Bkr Workflow Oeffentlich
Bkr Workflow Oeffentlich
Codesmells
Codesmells
Automatisierungmit NANT
Automatisierungmit NANT
Ruby on Rails SS09 05
Ruby on Rails SS09 05
Andere mochten auch
주니어 개발자도 이해 할 수 있는 의존성 주입(Dependency Injection)
주니어 개발자도 이해 할 수 있는 의존성 주입(Dependency Injection)
Darion Kim
The Near Future of CSS
The Near Future of CSS
Rachel Andrew
The Presentation Come-Back Kid
The Presentation Come-Back Kid
Ethos3
Classroom Management Tips for Kids and Adolescents
Classroom Management Tips for Kids and Adolescents
Shelly Sanchez Terrell
Activism x Technology
Activism x Technology
WebVisions
How to Battle Bad Reviews
How to Battle Bad Reviews
Glassdoor
The Buyer's Journey - by Chris Lema
The Buyer's Journey - by Chris Lema
Chris Lema
Andere mochten auch
(7)
주니어 개발자도 이해 할 수 있는 의존성 주입(Dependency Injection)
주니어 개발자도 이해 할 수 있는 의존성 주입(Dependency Injection)
The Near Future of CSS
The Near Future of CSS
The Presentation Come-Back Kid
The Presentation Come-Back Kid
Classroom Management Tips for Kids and Adolescents
Classroom Management Tips for Kids and Adolescents
Activism x Technology
Activism x Technology
How to Battle Bad Reviews
How to Battle Bad Reviews
The Buyer's Journey - by Chris Lema
The Buyer's Journey - by Chris Lema
Ähnlich wie 2009 03 17 Spring101
Tech Talk Spring Framework
Tech Talk Spring Framework
Jens Rühmkorf
Go - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare Systeme
Frank Müller
MVVM mit WPF
MVVM mit WPF
Hendrik Lösch
Ionic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf Steroiden
Hendrik Lösch
Warum empfehle ich meinen Kunden das Spring Framework?
Warum empfehle ich meinen Kunden das Spring Framework?
Michael Plöd
Einsteiger Workshop
Einsteiger Workshop
FunThomas424242
Große Applikationen mit AngularJS
Große Applikationen mit AngularJS
Sebastian Springer
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
OPITZ CONSULTING Deutschland
Lightweight AOP with CDI and JPA
Lightweight AOP with CDI and JPA
mh0708
GWT – Google Web Toolkit in der Praxis
GWT – Google Web Toolkit in der Praxis
Cenarion Information Systems GmbH
WPF Dos n Don'ts - der WPF Rundumschlag
WPF Dos n Don'ts - der WPF Rundumschlag
Hendrik Lösch
Workshop zu Hibernate 3.2.2 GA
Workshop zu Hibernate 3.2.2 GA
Oliver Belikan
Feature Flags mit Togglz
Feature Flags mit Togglz
Christian Kaltepoth
Feige sein! Testen im Java-EE-Umfeld
Feige sein! Testen im Java-EE-Umfeld
gedoplan
dotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile Services
Sascha Dittmann
MVVM Pattern
MVVM Pattern
.NET User Group Dresden
Automatischer Build mit Maven
Automatischer Build mit Maven
Stefan Scheidt
Sicherheit in Single-Page-Web-Anwendungen
Sicherheit in Single-Page-Web-Anwendungen
Philipp Burgmer
JavaScript: Von einfachen Scripten zu komplexen Anwendungen
JavaScript: Von einfachen Scripten zu komplexen Anwendungen
molily
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
GFU Cyrus AG
Ähnlich wie 2009 03 17 Spring101
(20)
Tech Talk Spring Framework
Tech Talk Spring Framework
Go - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare Systeme
MVVM mit WPF
MVVM mit WPF
Ionic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf Steroiden
Warum empfehle ich meinen Kunden das Spring Framework?
Warum empfehle ich meinen Kunden das Spring Framework?
Einsteiger Workshop
Einsteiger Workshop
Große Applikationen mit AngularJS
Große Applikationen mit AngularJS
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Lightweight AOP with CDI and JPA
Lightweight AOP with CDI and JPA
GWT – Google Web Toolkit in der Praxis
GWT – Google Web Toolkit in der Praxis
WPF Dos n Don'ts - der WPF Rundumschlag
WPF Dos n Don'ts - der WPF Rundumschlag
Workshop zu Hibernate 3.2.2 GA
Workshop zu Hibernate 3.2.2 GA
Feature Flags mit Togglz
Feature Flags mit Togglz
Feige sein! Testen im Java-EE-Umfeld
Feige sein! Testen im Java-EE-Umfeld
dotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile Services
MVVM Pattern
MVVM Pattern
Automatischer Build mit Maven
Automatischer Build mit Maven
Sicherheit in Single-Page-Web-Anwendungen
Sicherheit in Single-Page-Web-Anwendungen
JavaScript: Von einfachen Scripten zu komplexen Anwendungen
JavaScript: Von einfachen Scripten zu komplexen Anwendungen
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
2009 03 17 Spring101
1.
Spring Framework Jens
Rühmkorf Tech Talk, DLR Köln-Porz, 17. März 2009
2.
3.
Überblick und Einführung
4.
5.
6.
Übersicht des Spring
Frameworks http://static.springframework.org/spring/docs/2.5.x/reference/
7.
8.
9.
10.
11.
Grundlegende Prinzipien
12.
„ Separation of
Concerns “ (Dijkstra, 1974)
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Funktionsweise eines DI-Frameworks
am Beispiel
27.
28.
29.
30.
Reportgenerator (3) Schritt
1: Führe Container ein (cont‘d) public class Container { public static Container instance ; private Map<String, Object> components ; public Container() { components = new HashMap<String, Object>(); instance = this ; components .put( "reportGenerator" , new PdfReportGenerator()); components .put( "reportService" , new ReportService()); } public Object getComponent(String id) { return components .get(id); } }
31.
32.
Reportgenerator (5) Schritt
2: Verwende Service-Locator Pattern (cont‘d) public class ServiceLocator { private static Container container = Container. instance ; public static ReportGenerator getReportGenerator() { return (ReportGenerator) container .getComponent( "reportGenerator" ); } } public class ReportService { private ReportGenerator reportGenerator = ServiceLocator. getReportGenerator (); // Rest weggelassen }
33.
34.
Reportgenerator (7) Schritt
3: Realisiere DI via Reflection (cont‘d) public class Container { // Ausschnitt! private void processEntry(String key, String value) throws Exception { String[] parts = key.split( "." ); if (parts. length == 1) { // erzeuge Komponente Object component = Class. forName (value).newInstance(); components .put(parts[0], component); } else { // injiziere Dependency Object component = components .get(parts[0]); Object reference = components .get(value); PropertyUtils. setProperty (component, parts[1], reference); } } }
35.
36.
37.
Reportgenerator (10) Schritt
4: Konfiguration mit Spring Beans (cont‘d) import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext( "beans.xml" ); ReportService reportService = (ReportService) context.getBean( "reportService" ); reportService.generateAnnualReport(2008); } }
38.
Reportgenerator (10) Schritt
4: Konfiguration mit Spring Beans (cont‘d) <? xml version = "1.0" encoding = "UTF-8" ?> < beans xmlns = "http://www.springframework.org/schema/beans" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" > < bean id = "defaultGenerator" class = "de.dlr.spring101.report.step04.PdfReportGenerator" /> < bean id = "reportService" class = "de.dlr.spring101.report.step04.ReportService" > < property name = "reportGenerator" > < ref local = "defaultGenerator" /> </ property > </ bean > </ beans >
39.
Beans & ihre
Konfiguration in Spring
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
Zusammenfassung & Ressourcen
55.
56.
57.
58.
59.
Vielen Dank.
Jetzt herunterladen