Upload
thorsten-kamann
View
1.820
Download
0
Embed Size (px)
DESCRIPTION
Einführung in die neuen Features Spring 2. Es wurden die neuesten Features und Verbesserungen vorgestellt.
Citation preview
Copyright 2006 Thorsten Kamann 1
Spring 2.0 – Spring 2.0 – Frühlingsgefühle für EntwicklerFrühlingsgefühle für Entwickler
von und mit Thorsten Kamann
Copyright 2006 Thorsten Kamann 2
InhaltInhalt
EinführungEinführung KonfigurationKonfiguration AOPAOP DatenzugriffsschichtDatenzugriffsschicht WebWeb SonstigesSonstiges
Unterstützung dynamischer SprachenUnterstützung dynamischer Sprachen JMXJMX Task SchedulerTask Scheduler Java5 SupportJava5 Support
ZusammenfassungZusammenfassung LinksLinks
Copyright 2006 Thorsten Kamann 3
EinführungEinführung
Copyright 2006 Thorsten Kamann 4
Einführung: Was ist Spring?Einführung: Was ist Spring?
Spring ist eine Ansammlung von API's, die die Entwicklung mit der J2EE Spring ist eine Ansammlung von API's, die die Entwicklung mit der J2EE vereinfachtvereinfacht
Spring ist ein Dependency Injection ContainerSpring ist ein Dependency Injection Container Spring ist ein Programmiermodell für die Entwicklung Spring ist ein Programmiermodell für die Entwicklung
leichtgewichtiger Komponentenleichtgewichtiger Komponenten lose gekoppelter Komponentenlose gekoppelter Komponenten vom Framework unabhängiger Komponentenvom Framework unabhängiger Komponenten testbarer Komponententestbarer Komponenten
Spring konkurriert mit keinem bestehenden Framework, bietet allerdings eine Spring konkurriert mit keinem bestehenden Framework, bietet allerdings eine Integration anIntegration an
Copyright 2006 Thorsten Kamann 5
Einführung: Leitsprüche Einführung: Leitsprüche
J2EE soll einfacher zu benutzen seinJ2EE soll einfacher zu benutzen sein Es ist besser gegen Interfaces zu programmieren als gegen konkrete KlassenEs ist besser gegen Interfaces zu programmieren als gegen konkrete Klassen JavaBeans bieten eine hervorragende Möglichkeit Anwendungen zu JavaBeans bieten eine hervorragende Möglichkeit Anwendungen zu
konfigurierenkonfigurieren OO-Design ist wichtiger als jede Implementierungstechnologie (z.B. J2EE)OO-Design ist wichtiger als jede Implementierungstechnologie (z.B. J2EE) Checked Exceptions werden in der J2EE zu häufig verwendet. Ein Framework Checked Exceptions werden in der J2EE zu häufig verwendet. Ein Framework
sollte den Entwickler nicht zwingen Exceptions zu behandeln, da er sollte den Entwickler nicht zwingen Exceptions zu behandeln, da er wahrscheinlich nichts konkretes damit anfangen kannwahrscheinlich nichts konkretes damit anfangen kann
Testing ist essenziell. Ein Framework sollte dem Entwickler das Testen so Testing ist essenziell. Ein Framework sollte dem Entwickler das Testen so einfach wie möglich macheneinfach wie möglich machen
Copyright 2006 Thorsten Kamann 6
Einführung: ZieleEinführung: Ziele
Spring soll Spaß machenSpring soll Spaß machen
Der Anwendungscode soll nicht von Spring abhängig seinDer Anwendungscode soll nicht von Spring abhängig sein
Spring soll nicht mit bestehenden Frameworks konkurrieren, sondern eine Spring soll nicht mit bestehenden Frameworks konkurrieren, sondern eine Integration anbieten (z.B. JDO, Toplink und Hibernate)Integration anbieten (z.B. JDO, Toplink und Hibernate)
Copyright 2006 Thorsten Kamann 7
Einführung: FeaturesEinführung: Features
Leichtgewichtiger ContainerLeichtgewichtiger Container
Zentralisierte und automatisierte Konfiguration und Verdrahtung der Zentralisierte und automatisierte Konfiguration und Verdrahtung der AnwendungsobjekteAnwendungsobjekte
Nicht invasivNicht invasiv Fügt lose gekoppelte Komponenten (POJO's) zu komplexen Systemen Fügt lose gekoppelte Komponenten (POJO's) zu komplexen Systemen
zusammenzusammen SkalierbarSkalierbar Verbessert die Testbarkeit der Komponenten, indem sie zuerst unabhängig Verbessert die Testbarkeit der Komponenten, indem sie zuerst unabhängig
von der Serverinfrastruktur getestet werden könnenvon der Serverinfrastruktur getestet werden können
Copyright 2006 Thorsten Kamann 8
Einführung: FeaturesEinführung: Features
Abstraktionsschicht für Transaktions-ManagementAbstraktionsschicht für Transaktions-Management
Erweiterbares Transaktions-ManagementErweiterbares Transaktions-Management Deklarative Konfiguration der Transaktionen ohne tief in das entsprechende Deklarative Konfiguration der Transaktionen ohne tief in das entsprechende
Framework einzusteigenFramework einzusteigen Generische Strategien für JTA und einfachen JDBC DataSource sind bereits Generische Strategien für JTA und einfachen JDBC DataSource sind bereits
enthaltenenthalten Im Gegensatz zu reinem JTA oder EJB CMP ist dieses Transaktions-Im Gegensatz zu reinem JTA oder EJB CMP ist dieses Transaktions-
Management nicht auf J2EE-Umgebungen beschränktManagement nicht auf J2EE-Umgebungen beschränkt
Copyright 2006 Thorsten Kamann 9
Einführung: FeaturesEinführung: Features
Abstraktionsschicht für reines JDBCAbstraktionsschicht für reines JDBC
Reduziert den Code für auf JDBC-basierte AnwendungenReduziert den Code für auf JDBC-basierte Anwendungen Vereinfacht die FehlerbehandlungVereinfacht die Fehlerbehandlung Bietet eine aussagekräftige Exception-Hierarchie (herstellerunabhängig)Bietet eine aussagekräftige Exception-Hierarchie (herstellerunabhängig) Exceptions basieren auf der DAO-Exception-HierarchieExceptions basieren auf der DAO-Exception-Hierarchie
Copyright 2006 Thorsten Kamann 10
Einführung: FeaturesEinführung: Features
Integration von populären O/R-MappernIntegration von populären O/R-Mappern
Unterstützung von Hibernate, Toplink, JDO und iBATIS SQL MapsUnterstützung von Hibernate, Toplink, JDO und iBATIS SQL Maps Vereinfacht die Entwicklung mit diesen O/R-MappernVereinfacht die Entwicklung mit diesen O/R-Mappern Unterstützung von TransaktionenUnterstützung von Transaktionen Unterstützung des DAO-PatternsUnterstützung des DAO-Patterns
Copyright 2006 Thorsten Kamann 11
Einführung: FeaturesEinführung: Features
AOP FunktionalitätAOP Funktionalität
Basiert auf AspectJBasiert auf AspectJ Vollständig integriert in das Spring Konfigurations-ManagementVollständig integriert in das Spring Konfigurations-Management Transaktions-Management basiert auf AOPTransaktions-Management basiert auf AOP Jedes Objekt in Spring kann mittels AOP gemanaged werdenJedes Objekt in Spring kann mittels AOP gemanaged werden
Copyright 2006 Thorsten Kamann 12
Einführung: FeaturesEinführung: Features
Flexibles MVC-Webapplication FrameworkFlexibles MVC-Webapplication Framework
Benutzt die Spring-Core FunktionalitätenBenutzt die Spring-Core Funktionalitäten Sehr konfigurierbar durch verschiedene Strategie-InterfacesSehr konfigurierbar durch verschiedene Strategie-Interfaces Kombinierbar mit den verschiedensten Viewtechnologien:Kombinierbar mit den verschiedensten Viewtechnologien:
JSPJSP VelocityVelocity TilesTiles iTextiText POIPOI
Copyright 2006 Thorsten Kamann 13
Einführung: FeaturesEinführung: Features
Alle Features von Spring können sowohl innerhalb als auch außerhalb eines Alle Features von Spring können sowohl innerhalb als auch außerhalb eines J2EE-Container ausgeführt werdenJ2EE-Container ausgeführt werden
Ein zentraler Fokus von Spring ist es, Business-Komponenten und DAO's die keine Ein zentraler Fokus von Spring ist es, Business-Komponenten und DAO's die keine spezifischen Services der J2EE verwenden, auch ohne J2EE-Container spezifischen Services der J2EE verwenden, auch ohne J2EE-Container verwenden zu könnenverwenden zu können
Die Architektur von Spring ist sehr flexibel und sehr Low-Level angesiedeltDie Architektur von Spring ist sehr flexibel und sehr Low-Level angesiedelt Die JavaBeans-Konfiguration kann ohne AOP und MVC-Framework benutzt Die JavaBeans-Konfiguration kann ohne AOP und MVC-Framework benutzt
werdenwerden Dagegen benutzt das MVC-Framework die JavaBeans-KonfigurationDagegen benutzt das MVC-Framework die JavaBeans-Konfiguration
Spring ist lauffähig ab Java 1.3. Erweiterte Funktionen, wie z.B. AOP und Spring ist lauffähig ab Java 1.3. Erweiterte Funktionen, wie z.B. AOP und Annotation erwarten eine höhere Java VersionAnnotation erwarten eine höhere Java Version
Copyright 2006 Thorsten Kamann 14
KonfigurationKonfiguration
Copyright 2006 Thorsten Kamann 15
Konfiguration: XML-SchemasKonfiguration: XML-Schemas
Spring Konfigurationen basieren auf XML-SchemaSpring Konfigurationen basieren auf XML-Schema Aber es gibt immer noch eine DTDAber es gibt immer noch eine DTD
Durch XML-Schema ist eine direktere Konfiguration möglichDurch XML-Schema ist eine direktere Konfiguration möglich alt:alt:<bean id="simple" class="o.s.jndi.JndiObjectFactoryBean"><property name="jndiName" value="jdbc/MyDataSource"/>
</bean> neu:neu:<jee:jndi-lookup id="simple" jndi-name="jdbc/MyDataSource"/>
Dadurch kürzere und eindeutigere Konfigurationen Dadurch kürzere und eindeutigere Konfigurationen
Copyright 2006 Thorsten Kamann 16
Konfiguration: Modularisierung der KonfigurationKonfiguration: Modularisierung der Konfiguration
Konfiguration wurde in verschiedene Module aufgeteiltKonfiguration wurde in verschiedene Module aufgeteilt Beans – Konfiguration von Spring-BeansBeans – Konfiguration von Spring-Beans Utils – Utilities wie Maps, Lists, Static FieldsUtils – Utilities wie Maps, Lists, Static Fields JEE – J2EE Konfiguration, wie EJB, JNDIJEE – J2EE Konfiguration, wie EJB, JNDI Lang – Konfigurationen in anderen Sprachen (Groovy, JRuby, BeanShell)Lang – Konfigurationen in anderen Sprachen (Groovy, JRuby, BeanShell) Tx - TransaktionenTx - Transaktionen Aop - AspekteAop - Aspekte Tool – Schema für die Anbindung von 3Tool – Schema für die Anbindung von 3rdrd Party Erweiterungen Party Erweiterungen
Jedes Schema besitzt einen eindeutigen NamensraumJedes Schema besitzt einen eindeutigen Namensraum
Copyright 2006 Thorsten Kamann 17
Konfiguration: ErweiterungenKonfiguration: Erweiterungen
Konfiguration ist erweiterbar, z.B. fürKonfiguration ist erweiterbar, z.B. für 33rdrd Party Erweiterungen Party Erweiterungen Domänen spezifische KonfigurationsdialekteDomänen spezifische Konfigurationsdialekte
Tools-Schema unterstützt die Erstellung von ErweiterungenTools-Schema unterstützt die Erstellung von Erweiterungen Einfaches Deployment mittels JAREinfaches Deployment mittels JAR
Copyright 2006 Thorsten Kamann 18
Konfiguration: Neue Bean ScopesKonfiguration: Neue Bean Scopes
Spring unterstützt 5 Bean Scopes Spring unterstützt 5 Bean Scopes SingletonSingleton PrototypePrototype RequestRequest SessionSession Global SessionGlobal Session
Request und Session sind nur bei Webanwendungen verfügbarRequest und Session sind nur bei Webanwendungen verfügbar Global Session ist nur bei Portal Anwendungen verfügbarGlobal Session ist nur bei Portal Anwendungen verfügbar
Copyright 2006 Thorsten Kamann 19
AOPAOP
Copyright 2006 Thorsten Kamann 20
AOPAOP
Spring hat 2 AOP-Implementation: SpringAOP und AspectJSpring hat 2 AOP-Implementation: SpringAOP und AspectJ SpringAOP ist einfacher und kann mit einfachen Beans arbeitenSpringAOP ist einfacher und kann mit einfachen Beans arbeiten AspectJ wird vollständig unterstützt und kann auch auf nicht-SpringBeans AspectJ wird vollständig unterstützt und kann auch auf nicht-SpringBeans
angewandt werdenangewandt werden SpringAOP unterstützt zur Zeit nur Methoden-basierte Join PointsSpringAOP unterstützt zur Zeit nur Methoden-basierte Join Points AOP-Autoproxies (default) oder CGLIB-Proxies können benutzen werdenAOP-Autoproxies (default) oder CGLIB-Proxies können benutzen werden Konfiguration von AOP kann mit Annotations (@AspectJ) oder XML-basiert Konfiguration von AOP kann mit Annotations (@AspectJ) oder XML-basiert
erfolgenerfolgen Aktivierung von @AspectJ erfolgt mit einem Aktivierung von @AspectJ erfolgt mit einem <aop:aspectj-autoproxy/> Pointcuts können mit der AspectJ-typischen Expression-Sprache definiert Pointcuts können mit der AspectJ-typischen Expression-Sprache definiert
werdenwerden
Copyright 2006 Thorsten Kamann 21
AOP: Schema-basierter AOP SupportAOP: Schema-basierter AOP Support
Bietet eine Alternative zu der Annotation-basierten Konfiguration, wenn kein Bietet eine Alternative zu der Annotation-basierten Konfiguration, wenn kein Java5 verwendet werden kannJava5 verwendet werden kann
Das AOP XML-Schema bietet XML-basierte Konfiguration von Aspekten, Advices Das AOP XML-Schema bietet XML-basierte Konfiguration von Aspekten, Advices und Pointcutsund Pointcuts
Expression-Sprache ist die gleiche wie bei den AnnotationsExpression-Sprache ist die gleiche wie bei den Annotations<aop:config>
<aop:pointcut id="dataAccessOperation" expression="execution (* com.xyz.myapp.dao.*.*(..))"/>
<aop:aspect id="beforeExample" ref="aBean"><aop:before pointcut-ref="dataAccessOperation"
method="doCheck"/></aop:aspect>
</aop:config>
Copyright 2006 Thorsten Kamann 22
DatenzugriffsschichtDatenzugriffsschicht
Copyright 2006 Thorsten Kamann 23
Datenzugriffsschicht: TransaktionskonfigurationDatenzugriffsschicht: Transaktionskonfiguration
Stellt ein konsistentes Programmiermodell für verschiedene Transaktions-API's Stellt ein konsistentes Programmiermodell für verschiedene Transaktions-API's wie JPA, JTA, JDO, Hibernate, Toplink zur Verfügungwie JPA, JTA, JDO, Hibernate, Toplink zur Verfügung
Unterstützt eine programmatische und deklarative TransaktionskonfigurationUnterstützt eine programmatische und deklarative Transaktionskonfiguration Bietet ein vereinfachtes API für die programmatische TransaktionskonfigurationBietet ein vereinfachtes API für die programmatische Transaktionskonfiguration Deklarative Transaktionskonfiguration benutzt ein eigenes XML-Schema mit dem Deklarative Transaktionskonfiguration benutzt ein eigenes XML-Schema mit dem
Namensraum Namensraum tx Die eigentliche Konfiguration der Transaktionsregeln erfolgt mit AOPDie eigentliche Konfiguration der Transaktionsregeln erfolgt mit AOP Dadurch können beliebige Objekte in die Transaktionsklammer aufgenommen Dadurch können beliebige Objekte in die Transaktionsklammer aufgenommen
werden, auch nicht von Spring verwaltete Objektewerden, auch nicht von Spring verwaltete Objekte Spring unterstützt keine Remote-TransaktionenSpring unterstützt keine Remote-Transaktionen
Copyright 2006 Thorsten Kamann 24
Datenzugriffsschicht: Transaktionskonfiguration (Beispiel)Datenzugriffsschicht: Transaktionskonfiguration (Beispiel)
<beans ... xsi:schemaLocation="..."><bean id="fService" class="DefaultFooService"/> <bean id="txManager".../> <tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes> <tx:method name="get*" read-only="true"/> <tx:method name="*"/> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="fS" expression="execution(*FooService.*(..))"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="fs"/> </aop:config> </beans>
Copyright 2006 Thorsten Kamann 25
Datenzugriffsschicht: Sonstige NeuerungenDatenzugriffsschicht: Sonstige Neuerungen
Spring 2.0 besitzt eine Java Persistence API (JPA) Abstraktionsschicht. So ist es Spring 2.0 besitzt eine Java Persistence API (JPA) Abstraktionsschicht. So ist es einfach, eine beliebige JPA-Implementierung einzubindeneinfach, eine beliebige JPA-Implementierung einzubinden
JPATemplate und JPADaoSupport arbeiten gegen die „Plain JPA-API“JPATemplate und JPADaoSupport arbeiten gegen die „Plain JPA-API“
Spring JMS unterstützt jetzt das Empfangen von asynchronen NachrichtenSpring JMS unterstützt jetzt das Empfangen von asynchronen Nachrichten
Für JDBC bietet Spring ein Für JDBC bietet Spring ein NamedParameterTemplate. So können sprechende . So können sprechende Parameternamen in SQL-Abfragen anstatt der Parameternamen in SQL-Abfragen anstatt der ? benutzt werden benutzt werden
Für die Arbeit mit Java5 gibt es ein Für die Arbeit mit Java5 gibt es ein SimpleJdbcTemplate, das die Arbeit mit , das die Arbeit mit dem dem JdbcTemplate wesentlich vereinfacht wesentlich vereinfacht
Copyright 2006 Thorsten Kamann 26
WEBWEB
Copyright 2006 Thorsten Kamann 27
Web: Spring Web MVCWeb: Spring Web MVC
Es gibt eine neue Form-Taglibrary, mit der die Entwicklung von JSPs gegen das Es gibt eine neue Form-Taglibrary, mit der die Entwicklung von JSPs gegen das Spring Web MVC wesentlich vereinfacht wirdSpring Web MVC wesentlich vereinfacht wird
Das erzeugte HTML ist HTML 4.01/XHTML 1.0Das erzeugte HTML ist HTML 4.01/XHTML 1.0 Die Tags bekommen Zugriff auf das Command-Objekt und die Daten, mit Die Tags bekommen Zugriff auf das Command-Objekt und die Daten, mit
denen der Controller arbeitetdenen der Controller arbeitet Die JSPs werden dadurch wesentlich schlanker und besser wartbarDie JSPs werden dadurch wesentlich schlanker und besser wartbar Beispiel:Beispiel:<form:form><td><form:input path="firstName" /></td>
</form:form>ergibtergibt<td><input type=“text“ value=“Karl Karlson" /></td>
Copyright 2006 Thorsten Kamann 28
Web: Spring Web MVCWeb: Spring Web MVC
Convention over ConfigurationConvention over Configuration Name des Controllers wird auf die Request-URL gemapptName des Controllers wird auf die Request-URL gemappt
WelcomeController --> --> /welcome* Name der Modelelemente werden automatisch ermittelt und an die View Name der Modelelemente werden automatisch ermittelt und an die View
übergebenübergebenx.y.User --> --> user
Automatisches Mapping der request-URL auf die logische ViewAutomatisches Mapping der request-URL auf die logische Viewhttp://localhost/register.jsp --> --> /WEB-INF/jsps/register.jsp
Copyright 2006 Thorsten Kamann 29
Unterstützung dynamischer SprachenUnterstützung dynamischer Sprachen
Unterstützt werden Groovy, JRuby und BeanShellUnterstützt werden Groovy, JRuby und BeanShell Für den Support von dynamischen Sprachen gibt es ein eigenes XML-Schema mit Für den Support von dynamischen Sprachen gibt es ein eigenes XML-Schema mit
dem Namensraum dem Namensraum lang Jede unterstützte Sprache hat ein eigenes ElementJede unterstützte Sprache hat ein eigenes Element
<lang:jruby/> <lang:groovy/> <lang:bsh/>
Beans, die mit einer dieser Sprachen erstellt wurden, können automatisch Beans, die mit einer dieser Sprachen erstellt wurden, können automatisch refreshed werden (Attribute refreshed werden (Attribute refresh-check-delay="TIME_IN_MSEC")="TIME_IN_MSEC")
Inline-Scripts können direkt in der Spring-Konfigurationsdatei hinterlegt werdenInline-Scripts können direkt in der Spring-Konfigurationsdatei hinterlegt werden
Copyright 2006 Thorsten Kamann 30
Unterstützung dynamischer Sprachen - SzenariosUnterstützung dynamischer Sprachen - Szenarios
Scriptable Controller im Spring Web MVCScriptable Controller im Spring Web MVC User-spezifische Controller während der Laufzeit erstellenUser-spezifische Controller während der Laufzeit erstellen Schnell anpassbarer Code, da nur eine Textdatei geändert werden mussSchnell anpassbarer Code, da nur eine Textdatei geändert werden muss
Scripted ValidatorsScripted Validators Flexiblere Validatoren mit ungetypten SprachenFlexiblere Validatoren mit ungetypten Sprachen Schnell anpassbarer CodeSchnell anpassbarer Code
Ruby on RailsRuby on Rails Groovy on Rails (GRails)Groovy on Rails (GRails)
Copyright 2006 Thorsten Kamann 31
JMXJMX
Copyright 2006 Thorsten Kamann 32
JMXJMX
Spring JMX unterstützt einen Notification MechanismusSpring JMX unterstützt einen Notification Mechanismus Eine beliebige Anzahl von Eine beliebige Anzahl von NotificationListener für eine beliebige Anzahl für eine beliebige Anzahl
von von MBeans sind konfigurierbar sind konfigurierbar Ein von Spring-MBean kann bei dem Ein von Spring-MBean kann bei dem NotificationPublisher registriert registriert
werden werden
Bessere Kontrolle des Verhaltens bei der Registrierung im MbeanServerBessere Kontrolle des Verhaltens bei der Registrierung im MbeanServer REGISTRATION_FAIL_ON_EXISTING REGISTRATION_IGNORE_EXISTING REGISTRATION_REPLACE_EXISTING
Copyright 2006 Thorsten Kamann 33
Task SchedulerTask Scheduler
Copyright 2006 Thorsten Kamann 34
Task SchedulerTask Scheduler
Der Task Scheduler bietet eine Abstraktionsschicht für das Konzept der Der Task Scheduler bietet eine Abstraktionsschicht für das Konzept der Executors (Thread Pools in Java 5)Executors (Thread Pools in Java 5)
Er stellt dieses Konzept auch für Umgebungen mit Java 1.3 und Java 1.4 zur Er stellt dieses Konzept auch für Umgebungen mit Java 1.3 und Java 1.4 zur Verfügung und versteckt dabei die Implementierungsdetails zwischen den Verfügung und versteckt dabei die Implementierungsdetails zwischen den einzelnen JDKseinzelnen JDKs
Es werden synchrone, asynchrone und zeitgesteuerte Tasks unterstütztEs werden synchrone, asynchrone und zeitgesteuerte Tasks unterstützt Konfiguration erfolgt über einfache BeandefinitionenKonfiguration erfolgt über einfache Beandefinitionen<bean id="taskExecutor" class="org.sprin...ThreadPoolTaskExecutor">
...</bean><bean ...>
<constructor-arg ref="taskExecutor" /></bean>
Copyright 2006 Thorsten Kamann 35
Java5 SupportJava5 Support
Copyright 2006 Thorsten Kamann 36
Java5 SupportJava5 Support
Es können Javav5 Annotations verwendet werden, um die XML-Konfiguration Es können Javav5 Annotations verwendet werden, um die XML-Konfiguration schlank zu haltenschlank zu halten
Es gibt zur Zeit nur einige Annotations:Es gibt zur Zeit nur einige Annotations: @Transactional@Transactional @AspectJ@AspectJ @required@required
Wird eine Klasse mit @Transactional gekennzeichnet, verkürzt sich die Wird eine Klasse mit @Transactional gekennzeichnet, verkürzt sich die Konfiguration der Transaktionen, da sämtliche Informationen aus den Klassen Konfiguration der Transaktionen, da sämtliche Informationen aus den Klassen ausgelesen werden:ausgelesen werden:<tx:annotation-driven transaction-manager="txManager"/>
Copyright 2006 Thorsten Kamann 37
ZusammenfassungZusammenfassung
Copyright 2006 Thorsten Kamann 38
ZusammenfassungZusammenfassung
Spring 2.0 ist vollständig abwärtskompatibel. Alte Konfigurationen können Spring 2.0 ist vollständig abwärtskompatibel. Alte Konfigurationen können weiter verwendet werdenweiter verwendet werden
Die grössten Änderungen in Spring 2.0 betreffen die KonfigurationDie grössten Änderungen in Spring 2.0 betreffen die Konfiguration XML-Schema und die Aufteilung in verschiedene Module vereinfacht das XML-Schema und die Aufteilung in verschiedene Module vereinfacht das
Handling mit der grossen Menge an KonfigurationsmöglichkeitenHandling mit der grossen Menge an Konfigurationsmöglichkeiten Das voll integrierte AspectJ ist eine sehr mächtige Komponente, um Software-Das voll integrierte AspectJ ist eine sehr mächtige Komponente, um Software-
Systeme zu instrumentierenSysteme zu instrumentieren Der Support für dynamische Sprachen ermöglicht es, schnell und einfach Der Support für dynamische Sprachen ermöglicht es, schnell und einfach
Anwendungen zu erweitern und „dynamischer“ zu machenAnwendungen zu erweitern und „dynamischer“ zu machen Der Task-Scheduler bietet eine gute Alternative zum komplexeren JMS-Support Der Task-Scheduler bietet eine gute Alternative zum komplexeren JMS-Support
(allerdings nur, wenn JMS dazu benutzt wird bestimmte Tasks anzustoßen)(allerdings nur, wenn JMS dazu benutzt wird bestimmte Tasks anzustoßen) Der Java5-Support bietet mit seinen Annotations eine schöne Möglichkeit, Der Java5-Support bietet mit seinen Annotations eine schöne Möglichkeit,
spezifische Konfigurationen zurück in den Java-Code zu bringenspezifische Konfigurationen zurück in den Java-Code zu bringen
Copyright 2006 Thorsten Kamann 39
LinksLinks
Copyright 2006 Thorsten Kamann 40
LinksLinks
Homepage des SpringframeworksHomepage des Springframeworkshttp://www.springframework.org/
Dokumentation Spring 2.0Dokumentation Spring 2.0http://static.springframework.org/spring/docs/2.0.x/reference/index.html
MyEclipse bietet eine sehr gute Spring-Integration (zur Zeit allerdings nur Spring MyEclipse bietet eine sehr gute Spring-Integration (zur Zeit allerdings nur Spring 1.3.3)1.3.3)http://www.myeclipse.org/
Spezialisten für Spring finden Sie unterSpezialisten für Spring finden Sie unterhttp://www.itemis.de
Webseite des Autors (mit Blog und Wiki)Webseite des Autors (mit Blog und Wiki)http://www.planetes.de/thorsten-kamann/
Beispielanwendung mit Spring2, Hibernate und AOPBeispielanwendung mit Spring2, Hibernate und AOPhttp://thorque.wiki.com/Spring_2.0/Getting_Started_mit_Spring2_und_Hibernate