• Link zu Xing
  • Link zu LinkedIn
  • Link zu X
  • Link zu Rss dieser Seite
  • Link zu GitHub
  • Newsletter
  • Kontaktieren Sie mich
Frank W. Rahn
  • Meine BlogbeiträgeZeigt meinen Blog an
  • RessourcenZeigt Ihnen eine Auswahl von Ressourcen
    • Franks aktueller IT-Werkzeugkasten
      • Diese Werkzeuge setze ich zur Zeit ein
    • Meine Präsentationen
      • Zeigt Ihnen meine Präsentationen
    • Weblinks
      • Meine Linksammlung
    • Buchtipps
      • Eine Liste von mir empfohlener Literatur
    • XML-Namespace
      • Zeigt meinem XML-Namespace
  • Franks aktueller IT-WerkzeugkastenDiese Werkzeuge setze ich zur Zeit ein
  • Meine PräsentationenZeigt Ihnen meine Präsentationen
  • WeblinksMeine Linksammlung
  • BuchtippsEine Liste von mir empfohlener Literatur
  • XML-NamespaceZeigt meinem XML-Namespace
  • Über mich …Die persönlichen Informationen über den Softwarearchitekt Frank Rahn
  • Click to open the search input field Click to open the search input field Suche
  • Menü Menü
Artikel, Beispiele und Vorträge

Einführung in das Spring Framework

Grobe Übersicht üder den Spring Framework Container

Zuletzt geändert oder ergänzt am 21.06.2026!

Auf den folgenden Seiten dieser (Tutorial-) Serie sind kleine einfache Beispiele als Einführung in das Spring Framework dargestellt.

Das Spring Framework ist ein Open Source Java Framework, welches einfache Java Objekte, sogenannte Plain-Old-Java-Objects (POJO), als Spring Beans verwaltet. Dabei stellt das Spring Framework einen Inversion of Control (IoC) Container zu Verfügung, der per Dependency Injection (DI) abhängige Spring Beans miteinander verknüpft und konfiguriert. Durch diese Technik können Objektnetze aufgebaut werden.

Inhaltsverzeichnis [verstecken]

  • Die Spring Framework Projekte (Spring IO Platform)
  • Informationen zur Implementierung bzw. zu den Requirements
  • Die Beiträge dieser Serie
  • Die Literaturempfehlungen

Die wesentlichen Funktionen des Spring Frameworks sind …

  • Plain-Old-Java-Objects (POJO) basierendes Programmiermodell.
  • Verknüpfungen durch Dependency Injection (DI) über den Inversion-of-Control Container (IoC).
  • Querschnittthemen werden durch Aspect oriented Programming (AOP) bereitgestellt.

Die Spring Framework Projekte (Spring IO Platform)

Eine unvollständige Liste von zusätzlichen Themen bzw. Technologien, die vom Spring Framework (Spring IO Platform) unterstützt werden …

Spring Beans und Spring Core

Die Basismodule des Spring Frameworks. Sie stellen den Inversion of Control (IoC) Container und die Funktionen für die Dependency Injection (DI) bereit.


Klassendiagramm dieses Beispiels

Spring an einem einfachem Beispiel
In diesem Beitrag werden die Grundlagen von Spring Framework wie die Definition von Spring Bean per XML Konfiguration und Annotationen, automatisches Dependency Injection (Autowired) und der Component scan vorgestellt.

Spring AOP und Spring Aspects (AspectJ)

Die Unterstützung der aspektorientierten Programmierung für das Spring Framework. Darunter befindet sich auch Unterstützung für AspectJ. Das Module spring-aspects bietet einige Implementierungen von Aspekten für querschnittliche Belange (Cross-Cutting Concerns) an.


Klassendiagramm dieses Beispiels

Spring mit AOP
In diesem Beitrag wird auf die aspektorientierte Programmierung unter dem Spring Framework mit Advices und Join Points eingegangen. Dazu kommt AspectJ und CGLIB zum Einsatz.

Spring Expression Language (SpEL)

Dieses Module stellt die Spring Expression Language (SpEL) zu Verfügung.

Spring Context und Spring Context Support

Diese beiden Module führen weitere Technologien (Cache, JMX, JNDI, Remoting, Scheduling, Scripting, Validation, Mail) in die Spring-Welt ein, die aus Java EE bekannt sind.


Der Service der Fahrerverwaltung

Spring mit einer Webanwendung mit JPA und Validierung
In diesem Beitrag werden die Technologien der beiden vorherigen Beiträgen kombiniert und um die Validierung nach JSR 303 erweitert.


Spring Boot Webanwendung

Spring Boot Webanwendung: Die ersten Schritte (Tutorial)
In diesem Beitrag zeige ich ein Beispiel mit einer Spring Boot Webanwendung. Diese Webanwendung ist eine einfache und unvollständige Wertpapierverwaltung mit Datenbankzugriffen (JPA) auf Basis von Spring Boot.

Spring TX (Transactions)

Die Infrastruktur für lokale und globale (verteilte, XA) Transaktionen mit Unterstützung für DAO, JTA und JCA.


Klassendiagramm dieses Beispiels

Spring mit JPA und Hibernate
In diesem Beitrag werden die abstrakten und generischen Datenzugriffsobjekte für das Spring Framework und der Umgang mit JPA Entitäten gezeigt.


Der Service der Fahrerverwaltung

Spring mit einer Webanwendung mit JPA und Validierung
In diesem Beitrag werden die Technologien der beiden vorherigen Beiträgen kombiniert und um die Validierung nach JSR 303 erweitert.

Spring JDBC

Die Unterstützung von nativen SQL Datenbankzugriffen, Stored Procedures / Functions sowie User-defined Types (UDT) auf Basis des JDBC Standards.


Die Stored Procedure "searchPersons" mit User-defined Types (UDT)

Spring und Stored Procedures mit User-defined Types
In diesem Beitrag wird mit Spring JDBC auf eine Stored Procedures zugegriffen. Dabei werden benutzerdefinierte strukturierte Datentypen, sogenannte User-definied Types (UDT), verwendet. Diese komplexen SQL-Typen sind mit der Version 2.1 zum JDBC Standard hinzugekommen.

Die zugehörigen Beispiele:

  1. Stored Procedure mit User-defined Types unter PostgreSQL
    In diesem Beitrag möchte ich zeigen, wie eine Stored Procedure mit User-defined Types (UDT) in einer PostgreSQL Datenbank programmiert wird. Im übergeordneten Beitrag Spring und Stored Procedure mit User-defined Types wird das Aufrufen dieser Stored Procedure aus Java heraus gezeigt.
  2. Stored Procedure mit User-defined Types unter Oracle
    In diesem Beitrag möchte ich zeigen, wie eine Stored Procedure mit User-defined Types (UDT) in einer Oracle Database programmiert wird. Im übergeordneten Beitrag Spring und Stored Procedure mit User-defined Types wird das Aufrufen dieser Stored Procedure aus Java heraus gezeigt.

Spring ORM (Object-Relational Mapping)

O/R (Object/Relational) Mapper mit direkte Unterstützung für Hibernate, JPA, JDO und iBatis.


Klassendiagramm dieses Beispiels

Spring mit JPA und Hibernate
In diesem Beitrag werden die abstrakten und generischen Datenzugriffsobjekte für das Spring Framework und der Umgang mit JPA Entitäten gezeigt.


Der Service der Fahrerverwaltung

Spring mit einer Webanwendung mit JPA und Validierung
In diesem Beitrag werden die Technologien der beiden vorherigen Beiträgen kombiniert und um die Validierung nach JSR 303 erweitert.

Spring OXM (Object-XML Mapping)

O/X (Object/XML) Mapper mit direkte Unterstützung für JAXB, JIBX, Castor XML, MIME, …

Spring LDAP

Dieses Module bietet ähnlichen Support, für den Zugriff auf ein LDAP-System, wie das JDBCTemplate.

Spring Messaging, Spring JMS (Java Message Service) und Spring AMQP (Advanced Message Queuing Protocol)

Diese Module bieten Unterstützung für Kommunikationen über TCP, Simple Message Protocol, STOMP und die asynchrone Kommunikation über Queues (JMS, AMQP).

Spring Web, Spring WebSocket, Spring Web MVC (Model View Controller) und Spring WebFlux

Das MVC Framework für Spring mit der Möglichkeit dynamische und REST-konforme Webanwendungen auf Basis der Servlet API umsetzen zu können. Dazu wird das MVC-Pattern und eine Reihe von View Technologien (Thymeleaf, JSP, JSTL, Feed, Freemarker, JSON, Tiles, Velocity, XML, XSLT, …) implementiert. Zusätzlich werden allgemeine Web-Technologien (HTTP, Servlet, WebSockets, CORS, …) zu Verfügung gestellt.


Die ApplicationContexte einer einfachen Spring Webanwendung

Spring mit einer einfachen Webanwendung
In diesem Beitrag wird das Spring MVC mit Masken (Views) und Steuerung (Controller) vorgestellt. Als View Technologien kommt JSP zum Einsatz.


Der Service der Fahrerverwaltung

Spring mit einer Webanwendung mit JPA und Validierung
In diesem Beitrag werden die Technologien der beiden vorherigen Beiträgen kombiniert und um die Validierung nach JSR 303 erweitert.


Die Anmeldemaske der Webanwendung

Spring Security mit einer Webanwendung
In diesem Beitrag wird die Webanwendung aus dem vorherigen Beitrag abgesichert. Dazu wird mit Spring Security eine Autorisierung (Berechtigung) von Services per Annotation vorgeführt. Die Authentifizierung (Anmeldung) per Kommandozeile und per Webseite (Login-Formular) durchgeführt.


Die REST-API des Webservice der Fahrerverwaltung

Spring mit RESTful Webservice
In diesem Beitrag wird das Erstellen und Testen eines RESTful Webservices beschrieben. Dazu wird ein XML-Schemas mit JAXB definiert und das Serialisieren von Entitäten nach JSON und XML erläutert.


Spring Boot Webanwendung

Spring Boot Webanwendung: Die ersten Schritte (Tutorial)
In diesem Beitrag zeige ich ein Beispiel mit einer Spring Boot Webanwendung. Diese Webanwendung ist eine einfache und unvollständige Wertpapierverwaltung mit Datenbankzugriffen (JPA) auf Basis von Spring Boot.

Spring Web Flow

Dieses Module erweitert die Möglichkeiten von Spring MVC, um die Abbildung einer Abfolge von Webseiten (Page Flow).

Spring WS (Web Services)

Mit diesem Module können nach dem Contract-First Ansatz Webservice auf Basis von SOAP erstellt werden.

Spring Test

Das Testing und Mocking Framework für das Spring Framework auf Basis von JUnit.


In allen Beiträgen finden Sie Beispiele für JUnit Tests.

Spring Boot

Mit diesem Module können Self-Contained Anwendungen erstellt werden. Diese Art von Anwendungen werden in einem einzelnen JAR ausgeliefert und per Kommandozeile gestartet $ java -jar <jar-file>. Zusätzlich werden die Abhängigkeiten aller benötigten Bibliotheken durch Spring Boot verwaltet.


Spring Boot Webanwendung

Spring Boot Webanwendung: Die ersten Schritte (Tutorial)
In diesem Beitrag zeige ich ein Beispiel mit einer Spring Boot Webanwendung. Diese Webanwendung ist eine einfache und unvollständige Wertpapierverwaltung mit Datenbankzugriffen (JPA) auf Basis von Spring Boot.

Spring Initializr

Ist ein Online-Dienst für das Erstellen eines Gradle- oder Maven-Projektes für Spring Boot. In einem Wizard kann das Projekt komfortabel zusammengestellt werden.

Spring Initializr - Eine Abhängigkeit auswählen
Spring Initializr - Eine Abhängigkeit auswählen
Spring Initializr - Die Projektinformationen zusammengestellt
Spring Initializr - Die Projektinformationen zusammengestellt
Spring Initializr - Der Download des Projektes
Spring Initializr - Der Download des Projektes


Spring Boot Webanwendung

Spring Boot Webanwendung: Die ersten Schritte (Tutorial)
In diesem Beitrag zeige ich ein Beispiel mit einer Spring Boot Webanwendung. Diese Webanwendung ist eine einfache und unvollständige Wertpapierverwaltung mit Datenbankzugriffen (JPA) auf Basis von Spring Boot.

Spring Data

Bietet Zugriff auf die verschiedensten relationalen (JPA) und NoSQL-Datenbanken (KeyValue, VMware Tanzu GemFire, MongoDB, Apache Solr, …) für das Spring Framework.


Spring Boot Webanwendung

Spring Boot Webanwendung: Die ersten Schritte (Tutorial)
In diesem Beitrag zeige ich ein Beispiel mit einer Spring Boot Webanwendung. Diese Webanwendung ist eine einfache und unvollständige Wertpapierverwaltung mit Datenbankzugriffen (JPA) auf Basis von Spring Boot.

Spring Cloud Sleuth

Bietet Tracing in einem verteilten System. Dazu wird bei Spring Cloud Sleuth wird eine traceId (Correlation-ID) und eine spanId vergeben. Die Correlation-ID wird in allen Logdateien geschrieben – so kann dann der Aufruf über mehrere verteilte Systeme verfolgt werden. Diese ID wird im HTTP-Header mit dem Name X-B3-TraceId abgelegt. B3 steht hier für BigBrotherBird.

Spring Security

Bietet die Authentifizierung und die Autorisierung für Java- und Webanwendungen mit dem Spring Framework.


Die Anmeldemaske der Webanwendung

Spring Security mit einer Webanwendung
In diesem Beitrag wird die Webanwendung aus dem vorherigen Beitrag abgesichert. Dazu wird mit Spring Security eine Autorisierung (Berechtigung) von Services per Annotation vorgeführt. Die Authentifizierung (Anmeldung) per Kommandozeile und per Webseite (Login-Formular) durchgeführt.

Spring Batch

Die Infrastruktur für die Paket- bzw. Stapelverarbeitungen in Java mit Wiederanlauffähigkeit, Optimierungen für Transaktionen und Logging, allerdings ohne das Scheduling von Jobs.

Spring Integration

Bietet einfache Abstraktionen bzw. Implementationen der Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions (*) für das Spring Framework.

Spring Social

Dieses Module stellt Spring Connectors für die APIs der bedeutesten Social Medien Anbieter bereit.

Spring Tools Suite 4 (STS) ehemals Spring IDE (Integrated Development Environment)

Spring Tools Suite ist ein Eclipse Plugin. Spring IDE ist ein Eclipse Plugin. Es stellt Funktionen für die Spring IO Platform bereit. Zusätzlich sind in diesem Plugin Editoren, Views, Validatoren, usw. enthalten.

Informationen zur Implementierung bzw. zu den Requirements

Alle Beispiele wurden mit folgenden Frameworks bzw. Werkzeugen erstellt:

  • Spring Framework
  • Eclipse IDE
  • OpenJDK
  • Apache Tomcat
  • Ubuntu
  • Git bei GitHub

Die genauen Versionen bitte der pom.xml der einzelnen Projekte entnehmen.

Alle alten Eclipse Projekte haben folgende Verzeichnisstruktur (Source-Folder):

  • src/java für den produktiven Java Sourcecode
  • src/test für den Sourcecode der Testfälle
  • src/web für die Ressourcen der Webanwendung (Bilder, Javascript, JSP, HTML, usw.)

Alle neueren Eclipse Projekte haben folgende Verzeichnisstruktur (Source-Folder), die der Vorgabe von Apache Maven entspricht:

  • src/main/java für den produktiven Java Sourcecode
  • src/main/test für den Sourcecode der Testfälle
  • src/main/resources/templates für die dynamischen Ressourcen der Webanwendung (HTML5)
  • src/main/resources/static für die statischen Ressourcen der Webanwendung (Bilder, JavaScript, CSS)

Die Beiträge dieser Serie

Klassendiagramm dieses Beispiels

Spring an einem einfachem Beispiel
In diesem Beitrag werden die Grundlagen von Spring Framework wie die Definition von Spring Bean per XML Konfiguration und Annotationen, automatisches Dependency Injection (Autowired) und der Component scan vorgestellt.

Klassendiagramm dieses Beispiels

Spring mit AOP
In diesem Beitrag wird auf die aspektorientierte Programmierung unter dem Spring Framework mit Advices und Join Points eingegangen. Dazu kommt AspectJ und CGLIB zum Einsatz.

Klassendiagramm dieses Beispiels

Spring mit JPA und Hibernate
In diesem Beitrag werden die abstrakten und generischen Datenzugriffsobjekte für das Spring Framework und der Umgang mit JPA Entitäten gezeigt.

Die ApplicationContexte einer einfachen Spring Webanwendung

Spring mit einer einfachen Webanwendung
In diesem Beitrag wird das Spring MVC mit Masken (Views) und Steuerung (Controller) vorgestellt. Als View Technologien kommt JSP zum Einsatz.

Der Service der Fahrerverwaltung

Spring mit einer Webanwendung mit JPA und Validierung
In diesem Beitrag werden die Technologien der beiden vorherigen Beiträgen kombiniert und um die Validierung nach JSR 303 erweitert.

Die Anmeldemaske der Webanwendung

Spring Security mit einer Webanwendung
In diesem Beitrag wird die Webanwendung aus dem vorherigen Beitrag abgesichert. Dazu wird mit Spring Security eine Autorisierung (Berechtigung) von Services per Annotation vorgeführt. Die Authentifizierung (Anmeldung) per Kommandozeile und per Webseite (Login-Formular) durchgeführt.

Die REST-API des Webservice der Fahrerverwaltung

Spring mit RESTful Webservice
In diesem Beitrag wird das Erstellen und Testen eines RESTful Webservices beschrieben. Dazu wird ein XML-Schemas mit JAXB definiert und das Serialisieren von Entitäten nach JSON und XML erläutert.

Die Stored Procedure "searchPersons" mit User-defined Types (UDT)

Spring und Stored Procedures mit User-defined Types
In diesem Beitrag wird mit Spring JDBC auf eine Stored Procedures zugegriffen. Dabei werden benutzerdefinierte strukturierte Datentypen, sogenannte User-definied Types (UDT), verwendet. Diese komplexen SQL-Typen sind mit der Version 2.1 zum JDBC Standard hinzugekommen.

Die zugehörigen Beispiele:

  1. Stored Procedure mit User-defined Types unter PostgreSQL
    In diesem Beitrag möchte ich zeigen, wie eine Stored Procedure mit User-defined Types (UDT) in einer PostgreSQL Datenbank programmiert wird. Im übergeordneten Beitrag Spring und Stored Procedure mit User-defined Types wird das Aufrufen dieser Stored Procedure aus Java heraus gezeigt.
  2. Stored Procedure mit User-defined Types unter Oracle
    In diesem Beitrag möchte ich zeigen, wie eine Stored Procedure mit User-defined Types (UDT) in einer Oracle Database programmiert wird. Im übergeordneten Beitrag Spring und Stored Procedure mit User-defined Types wird das Aufrufen dieser Stored Procedure aus Java heraus gezeigt.
Spring Boot Webanwendung

Spring Boot Webanwendung: Die ersten Schritte (Tutorial)
In diesem Beitrag zeige ich ein Beispiel mit einer Spring Boot Webanwendung. Diese Webanwendung ist eine einfache und unvollständige Wertpapierverwaltung mit Datenbankzugriffen (JPA) auf Basis von Spring Boot.

Die Literaturempfehlungen

  • Referenzdokumentation Spring Framework
  • Spring 3: Framework für die Java-Entwicklung (*)
  • Pro Spring Boot (*)
  • Spring Boot in Action (*)
  • Domain-Driven Design: Tackling Complexity in the Heart of Software (*) von Eric J. Evans
  • Core J2ee Patterns: Best Practices and Design Strategies (*)

1tes Update

Es wurden folgende Änderungen an allen Projekten vorgenommen.

  1. Die Projekte wurden aus meinem lokalen Apache Subversion Repository in meine öffentlichen GitHub Repositories verschoben.
    • Projekt test-spring-simple
    • Projekt test-spring-jpa
    • Projekt test-spring-web
  2. Die folgenden typischen Anpassungen an Git wurden an allen Projekten durchgeführt.
    • .directory gelöscht
    • .gitignore hinzugefügt
    • README.md hinzugefügt
    • COPYRIGHT.md hinzugefügt
    • In jedem Repository wurde für jeden Beitrag der Serie ein Branch angelegt.
      • develop-spring-an-einem-einfachen-beispiel
      • develop-spring-mit-aop
      • develop-spring-mit-jpa-und-hibernate
      • develop-spring-mit-einer-einfachen-webanwendung
      • develop-spring-mit-einer-webanwendung-mit-jpa-und-validierung
      • develop-spring-security-mit-einer-webanwendung
      • develop-spring-mit-restful-webservice

2tes Update

Es wurden folgende Änderungen an allen Projekten vorgenommen.

  1. Aktualisierung des OpenJDK auf die Version 1.7.0.
  2. Aktualisierung der Entwicklungsumgebung Eclipse auf die Version 4.2.1.
    Die benötigten Plugins aus dem Eclipse Marketplace:

    • EGit – Git Team Provider, Version 2.1.0
    • GitHub Mylyn Connector, Version 2.0
    • Eclipse m2e – Maven support in Eclipse IDE
    • Spring IDE, Version 3.0.0.RELEASE
    • AspectJ Development Tools (AJDT), Version 2.2.0
    • Markdown Text Editor, Version 0.9.0
  3. Aktualisierung der Datei pom.xml:
    • Anpassungen an die OpenJDK Version
    • GitHub Einträge (SCM und URL) hinzugefügt
    • Aktualisierung der Libraries auf aktuellerer Versionen (z. B. Spring Version 3.1.2.RELEASE, Hibernate Version 4.1.7.Final, JUnit Version 4.10, mockito Version 1.9.0, …)
      Die genaueren Versionen bitte aus den jeweiligen pom.xml auf GitHub entnehmen.
  • Über
  • Letzte Artikel
Frank Rahn
Frank Rahn
Frank Rahn ist Softwarearchitekt. Er unterstützt bei der Konzeption von Softwarearchitekturen mit Java-Technologie. Folge Sie ihm auf Facebook oder Twitter.

Benötigen Sie Unterstützung? Kontaktieren Sie ihn.

Hat Ihnen dieser Beitrag gefallen? Wir würden uns über Ihren Kommentar freuen! Bitte verwenden Sie Ihren bürgerlichen Namen.
Frank Rahn
Letzte Artikel von Frank Rahn (Alle anzeigen)
  • Wer ist der optimale Java Bean Mapper? - Freitag, 22. September 2023
  • Spring Boot Webanwendung: Die ersten Schritte (Tutorial) - Montag, 28. März 2016
  • Mainframe-Zugriff via Java - Sonntag, 04. Mai 2014
6 Kommentare/von Frank Rahn
Schlagworte: AOP, Architektur, Authentifizierung, Autorisierung, DAO, DI, IoC, Java, Java SE, JCA, JDO, JPA, MVC, Open Source Software, POJO, Self-contained Systems, Spring, SQL
Eintrag teilen
  • Teilen auf X
  • Teilen auf WhatsApp
  • Teilen auf LinkedIn
  • Per E-Mail teilen
  • Teilen auf Xing
https://www.frank-rahn.de/wp-content/uploads/Spring-Framework.png 762 1220 Frank Rahn /wp-content/uploads/logo.png Frank Rahn2011-05-01 18:30:582026-06-21 17:49:27Einführung in das Spring Framework
Das könnte Dich auch interessieren
Klassendiagramm dieses Beispiels Spring mit AOP (Tutorial)
Historisierung von Daten in der Versicherungswirtschaft Historisierung von Daten in der Versicherungswirtschaft
Die Stored Procedure "searchPersons" mit User-defined Types (UDT) Stored Procedure mit User-defined Types unter Oracle
Klassendiagramm dieses Beispiels Spring an einem einfachem Beispiel (Tutorial)
Die ApplicationContexte einer einfachen Spring Webanwendung Spring mit einer einfachen Webanwendung (Tutorial)
Die Anmeldemaske der Webanwendung Spring Security mit einer Webanwendung (Tutorial)
6 Kommentare
  1. Hans-Christian Mai
    Hans-Christian Mai sagte:
    Sonntag, 24. September 2017 um 17:31 Uhr

    Hallo Herr Rahn,
    tolle Seite. Auch wenn sich seid 2012 einiges getan hat, finde ich die Darstellung gelungen. Wird es eine Aktualisierung geben?
    Mit freundlichem Gruß
    Hans-Christian Mai

    Antworten
    • Frank Rahn
      Frank Rahn sagte:
      Dienstag, 26. September 2017 um 22:13 Uhr

      Hallo Herr Mai,

      vielen Dank. Wie genau meinen Sie dass mit der Aktualisierung?
      Seit dem Erscheinungsjahr dieser Seite sind ja einige Beiträge hinzugekommen.

      Viele Grüße
      Frank Rahn

      Antworten
  2. Michael K.
    Michael K. sagte:
    Montag, 05. März 2012 um 9:19 Uhr

    Sehr geehrter Herr Rahn,

    zunächst einmal möchte ich mich bei Ihnen für die äußerst guten Spring-Beispiele bedanken! Ich war schon lange auf der Suche nach vollständigen und nicht fehlerhaften Beispielen mit JPA/Hibernate + Maven 😉

    Auf Ihrer Seite habe ich diese nun endlich gefunden!

    Ich hätte noch zwei kleine Fragen an Sie und würde mich sehr freuen, wenn Sie sich für diese Zeit nehmen könnten!

    @REST: Realisieren Sie dies mittels Spring oder verwenden Sie ein anderes Framework wie z.B. Jersey? Ich habe die Erfahrung gemacht, dass hierfür Spring ungeeignet ist, da man nicht alle HTTP-Methoden nutzen kann und bevorzuge somit Jersey.

    Haben Sie evtl. noch vor ein kleines Beispiel online zu stellen? Ich würde mich sehr freuen!

    @Controller vs. @Service: Ich kann diese beiden Begriffe schwer abgrenzen bzw. sehe die Unterschiede nicht. Könnten Sie mir die Begriffe anhand eines Beispiels helfen abzugrenzen?

    Über eine Antwort würde ich mich freuen!

    Vielen Dank und viele Grüße
    Michael K.

    Antworten
    • Frank Rahn
      Frank Rahn sagte:
      Montag, 05. März 2012 um 17:43 Uhr

      Sehr geehrter Herr Michael K.,

      vielen Dank, das ihnen meine Seite gefällt.

      Zu: @REST
      Ich verwende im beruflichen Umfeld häufig Apache CXF. Dieses Framework ist zwar Hauptsächlich ein Webservice (JAX-WS) Framework hat aber auch eine gute JAX-RS Unterstützung und basiert auf Spring.

      Allerdings verwende ich dieses Framework beim Kunden immer mit dem Gedanken es auch für JAX-WS einzusetzen, was bisher auch immer genutzt werden musste (irgendein Webservice gibt es immer 🙂 ).

      Was spricht gegen Spring? In der Enum RequestMethod werden zu mindestens alle HTTP-Methoden angeboten.

      Hm ein Beispiel … mal sehen 😯

      Zu: @Controller vs. @Service
      Zunächst sind die Annotationen <@Controller, @Service und @Repository alle eine bestimmte Form der Annotation @Component. Mit dieser Annotation werden grundsätzlich Spring Beans definiert, die durch einen Component-Scan (<context:component-scan base-package="de.rahn..." />) erzeugt werden. Durch die erweiterten Formen der @Component werden zusätzlichen Funktionalitäten aktiviert:

      • @Repository
        Diese Annotation ermöglicht es die Verwendung der @PersistenceUnit bzw. @PersistenceContext. Zusätzlich können Exception aus DB Subsystem (z. B. JPA) in die Spring-spezifischen DataAccessException übersetzt werden.
        Repository ist ein Begriff aus dem Domain-Driven Design: Tackling Complexity in the Heart of Software(*) von Eric J. Evans und abstrahieren die Persistierung von den Entities.
      • @Controller
        Diese Annotation kennzeichnet Spring Beans, die vom DispatcherServlet angesprochen werden. Der Name leitet sich aus dem MVC-Pattern ab. An diesen Beans werden die Request/Response-Bindings berücksichtigt (z. B. @RequestMapping).
      • @Service
        Diese Annoation kennzeichnet ein Spring Bean als Business Service Facade (Core J2ee Patterns: Best Practices and Design Strategies(*)). Also eine Schnittstelle zu einem fachlichen Subsystem oder auch Komponente. Auch dieser Begriff stammt aus dem Domain-Driven Design: Tackling Complexity in the Heart of Software(*) von Eric J. Evans. Diese Spring Beans sind typischerweise Zustandslos.

      Diese Annotationen sind eher zum Markieren von Spring Beans gedacht, als das wirkliche Funktionalität dahinter liegt.

      Ich hoffe Ihnen damit geholfen zu haben.

      Mit freundlichen Grüßen / Best regards
         Frank W. Rahn

      Antworten
      • Michael K.
        Michael K. sagte:
        Donnerstag, 08. März 2012 um 13:50 Uhr

        Guten Tag,

        vielen Dank für Ihre Antwort! Die RequestMethod umfasst zwar alle HTTP-Methoden, jedoch geben diese folgende Fehlermeldung: HTTP Status 405 – Request method ‚DELETE‘ not supported dies trifft auch bei PUT zu. Ich meine gelesen zu haben, dass dies mit einer zusätzlichen Konfiguration zu lösen ist, welche bei Jersey nicht nötig ist.

        Viele Grüße
        Michi

        Antworten
        • Frank Rahn
          Frank Rahn sagte:
          Donnerstag, 08. März 2012 um 14:51 Uhr

          Hallo Michael,

          bei Gelegenheit werde ich das mal ausprobieren.

          Viele Grüße
          Frank

          UPDATE (22.04.2012):
          Ich habe den Beitrag Spring mit Spring mit RESTful Webservice erstellt.

          Antworten

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar Antwort abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Ihre E-Mail-Adresse wird nicht veröffentlicht. Ihr Kommentar wird verschlüsselt an meinen Server gesendet. Erforderliche Felder sind mit * markiert.

Weitere Informationen und Widerrufshinweise finden Sie in meiner Datenschutzerklärung.

Wollen Sie kein neuen Beiträge mehr verpassen?
Dann abonnieren Sie bitte meinen Newsletter.
Meinen Newsletter abonnieren

Themen

  • Wer ist der optimale Java Bean Mapper?
  • Einführung in das Spring Framework, Boot, Batch, Data, REST, Security, Web, …
  • Franks aktueller IT-Werkzeugkasten
  • Git, GitHub, EGit, …

Navigation

  • Buchtipps
  • Newsletter
  • Weblinks
Search Search

Werbung

  • JProfiler
Beliebt
  • Das Klassendiagramm für den Java Bean Mapper Test am Beispiel "ByHand"
    Wer ist der optimale Java Bean Mapper?Freitag, 22. September 2023 - 20:59 Uhr
  • Das offizielle Logo von EGit
    GitHub mit Eclipse (EGit)Freitag, 26. Oktober 2012 - 16:15 Uhr
  • Grobe Übersicht üder den Spring Framework Container
    Einführung in das Spring FrameworkSonntag, 01. Mai 2011 - 18:30 Uhr
  • Die Stored Procedure "searchPersons" mit User-defined Types (UDT)
    Spring und Stored Procedure mit User-defined Types (Tut...Freitag, 26. Oktober 2012 - 21:45 Uhr
  • Spring Boot Webanwendung
    Spring Boot Webanwendung: Die ersten Schritte (Tutorial...Montag, 28. März 2016 - 16:29 Uhr
Schlagworte
Annotations AOP Architektur Autorisierung Cookies CRUD DAO DI Git HTML HTTP IoC Java Java EE Java SE JPA JSR Linux MVC Open Source Software PDF POJO REST (RESTful) ROCA Self-contained Systems Serviceorientierte Shell Sicherheit (Security) SOAP Spring SQL SVN Test Toolchain URI URL URN User-defined Type Versionsverwaltung VPN Webservice WS-* WSDL XML XML-Schema

Blogarchiv

Links

Mastodon
Twitter
LinkedIn
Xing
GitHub

Lizenz

Creative Commons Lizenzvertrag Die Texte (nicht Bilder) von Frank Rahn stehen unter einer Creative Commons Namensnennung - Keine Bearbeitungen 4.0 Deutschland Lizenz.

Affiliate-Links

Die mit (*) gekennzeichnete Links sind sogenannte Affiliate-Links. Kommt über einen solchen Link ein Einkauf zustande, werde ich mit einer Provision beteiligt. Für Sie entstehen dabei keine Mehrkosten. Wo, wann und wie Sie ein Produkt kaufen, bleibt natürlich Ihnen überlassen.

Blogkategorien

Copyright © Frank W. Rahn
  • Impressum / HaftungsausschlussDie notwendigen gesetzlichen Angaben dieser Webseite von Frank Rahn
  • DatenschutzerklärungDie Datenschutzerklärung von Frank Rahn
  • NewsletterKeine neuen Beiträge mehr verpassen!
  • BildnachweisDer komplette Bildnachweis von Frank Rahn
Link to: Historisierung von Daten in der Versicherungswirtschaft Link to: Historisierung von Daten in der Versicherungswirtschaft Historisierung von Daten in der VersicherungswirtschaftHistorisierung von Daten in der Versicherungswirtschaft Link to: Spring an einem einfachem Beispiel (Tutorial) Link to: Spring an einem einfachem Beispiel (Tutorial) Klassendiagramm dieses BeispielsSpring an einem einfachem Beispiel (Tutorial)
Nach oben scrollen Nach oben scrollen Nach oben scrollen

Wir setzen auf unserer Webseite verschiedene Arten von Cookies ein, die auf Ihrem Gerät gespeichert werden. Einige dieser Cookies sind für die einwandfreie Funktion der Webseite notwendig, während andere Cookies Ihnen ein besseres Besuchererlebnis bieten.

DatenschutzerklärungImpressumAlle Cookies akzeptierenKeine Cookies akzeptierenIndividuelle Cookie-Einstellungen vornehmen

Cookie- und Datenschutzeinstellungen



Wie wir Cookies verwenden

Wir setzen auf unserer Webseite verschiedene Arten von Cookies ein, die auf Ihrem Gerät gespeichert werden.

Einige dieser Cookies sind für die einwandfreie Funktion der Webseite notwendig, während andere Cookies Ihnen ein besseres Besuchererlebnis bieten.

Klicken Sie links auf die verschiedenen Reitern, um mehr zu erfahren. Sie können auch einige Cookie-Einstellungen individuell anpassen. Beachten Sie, dass das Blockieren einiger Cookies die einwandfreie Funktion unserer Webseite beeinträchtigt.

Technisch notwendige Cookies

Diese Cookies sind unbedingt erforderlich, denn sie ermöglichen grundlegende Funktionen und sind für die einwandfreie Funktion der Webseite erforderlich.

Sie können diese Cookies jederzeit blockieren oder löschen, indem Sie Ihre Browsereinstellungen ändern und die Blockierung aller Cookies auf dieser Webseite erzwingen. Leider werden Sie dann immer wieder gefragt, ob Sie Cookies akzeptieren oder ablehnen wollen, wenn Sie unsere Webseite erneut besuchen.

Wir setzen die Cookies aviaPrivacyEssentialCookiesEnabled, aviaPrivacyMustOptInSetting, aviaPrivacyRefuseCookiesHideBar und aviaCookieConsent ein, um Ihre individuellen Cookie-Einstellungen zu speichern. Diese Informationen geben wir an keinen Drittanbietern weiter.

Diese Cookies haben eine Laufzeit von einem Jahr, dann müssen Sie die Einstellungen wiederholen.

Die VG WORT setzt das Sitzungscookie srp zur Messung von Zugriffen auf Texten, um die Kopierwahrscheinlichkeit des Textes zu erfassen. Damit partizipieren ich an den Ausschüttungen der VG WORT, welche die gesetzliche Vergütung für die Nutzungen urheberrechtlich geschützter Werke gemäß § 53 UrhG sicherstellen. Das Cookie wird dazu verwendet, um den Nutzer zu identifizieren und ggf. Daten mehrerer Aufrufe von Texten miteinander verknüpfen zu können.

Nach Angaben der VG WORT stellt das eingesetzte Verfahren sicher, dass einzelne Nutzer oder ihr Leseverhalten nicht ermittelbar sind, wenn die Anzahl der Textaufrufe gezählt wird. Alle von der VG Wort erfassten Daten werden sofort sicher verschlüsselt. Der Einsatz des Zählpixels wurde durch das Bayerische Landesamt für Datenschutzaufsicht begutachtet und als datenschutzkonform bewertet.

Datenschutzerklärung der VG WORT

Marketing-Cookies

Die Marketing-Cookies werden von Drittanbietern oder Publishern, wie z. B. Google Analytics, verwendet, um personalisierte Werbung anzuzeigen. Sie tun dies, indem sie Besucher über Webseiten hinweg verfolgen (Tracking).

Wir setzen keine Marketing-Cookies ein.

Datenschutzbestimmungen

Sie können unsere Cookies und Datenschutzeinstellungen im Detail in unserer Datenschutzerklärung nachlesen.

Cookie-Einstellungen übernehmenKeine Cookies akzeptieren
Nachrichtenleiste öffnen Nachrichtenleiste öffnen Nachrichtenleiste öffnen