Mittwoch, 17. November 2010

Tag 3: 16:40 - 17:40: Spring 3.1: Themes and Trends

Jürgen Hoeller stellte auf bewährte Weise bekanntes und neues rund um Spring 3 dem zahlreich erschienenen Publikum vor.

Er begann mit einem "Rückblick" auf Spring 3.0 (aus unserer Sicht ist das sowas wie Zurück in die Zukunft). Der große Schwerpunkt: Annotations für alles und nichts.
  • @Value("#{aBean.aProperty}") als Fallback, wenn für annotierte Methode keine externe Konfiguration vorliegt.
  • Standard-Annotations: @ManagedBean, @Inject, @TransactionAttribute
  • REST-Support: @RequestMapping, @PathVariable
  • Portlet 2.0 Support: @Controller, @RequestMapping, @ActionMapping, @EventMapping
  • Declarative model validation (JSR-303): @NotNull, @Past (bei Date!), @Valid
  • Annotation-driven number/date formatting and parsing
  • Scheduling: @Scheduled(cron="0 0 12 * * ?") auf Methode (!), @Async
Hinzu kommen die Unterstützung von JEE 6 (speziell für JPA 2) sowie JavaConfig (für spezielle Konfigurationsaspekte, die nicht über die Standard-Spring-Konfiguration lösbar sind).

Dann kam er Blick nach vorne, auch wenn das meiste noch in Arbeit sei.

Und gleich mit dem ersten Punkt sprach mir Jürgen aus dem Herzen: Environment profiles for beans. Hierhinter verbirgt sich die Möglichkeit Bean-Definitionen zu grupperien und einem bestimmten Profil zuordnen zu können. Mögliche Profile sind

  • Development, Testing, Produktion
  • Unterschiedliche Deployment-Umgebungen
Dies ist sowohl über die Annotation @Profile oder in der XML-Konfiguration <beans profile="..."> möglich. Aktiviert wird ein Profil beispielsweise beim Starten der JVM mittels -DspringProfile=...

Mit @Connfiguration wird Javas-basierte Konfiguration unterstützt. Typische Einsatzgebiete sind

  • AOP-Konfiguration
  • Transaktionen
  • Scheduling
Die Abstraktion des Cachings wird nun mit Leben gefüllt, damit über ein einheitliches Modell auch verteilte Caches angesteuert werden können. Das Caching wird über die Annotationen @Cacheable und @CacheEvict konfiguriert und über <cache:annotation-driven> aktiviert.


Das Session-Management wird ebenfalls renoviert. Hier sollen Lifecycle und Speicheroptionen flexibilisiert werden (Stichwort: Conversation)

Früher oder später werden wir die Version 3.1 auch verwenden. Bis dahin müssen wir uins in Geduld üben, zumal das Datum der Veröffentlichung noch nicht klar scheint.

2 Kommentare:

  1. Profiling ist ja eine tolle Idee. Im Zusammenspiel mit Maven2 (unterstützt auch Profiling im Build-Prozess) hätte man eine Menge Vorteile.

    AntwortenLöschen
  2. Zu Info: Ab Version 3.x von Spring können wir das Zusammenspiel mit Clife vergessen. Allein schon wegen dem neuen RESTful-Ansatz bei Spring MVC, die sich gar nicht verträgt mit dem SimpleFormController, die bei Clife überall zum Einsatz kommt.

    AntwortenLöschen