Ich lerne gerade das Spring Framework kennen und natürlich Spring Boot, hier mal meine ersten Notizen.
Spring Framework Überblick
Welche Ziele hat Spring:
- Leicht entwicklung von Java POJOs (Plain Old Java Objects)
- Dependency injection
- minimierung von sich wiederholenden Code (Boilerplate)
Vorteile von Spring Boot
- Macht es einfach eine Spring Anwendung zu entwickeln
- Minimalisiert die Konfiguration
- Perform Auto Konfigurationen basierend auf den Eigenschaften des JAR Classpath
- hilft Abhängigkeit Konflikte zu lösen
- Bereitstellung eines eingebetteten HTTP-Servers um schnell zu starten
- Tomcat, Jetty, Undertow,
Was macht Spring Initializr
Es gibt Spring Initializr, dieser hilft uns ein Spring Projekt zu erstellen und zu konfigurieren.
Der große Vorteil: Wir wählen unsere Abhängigkeiten selbst nutzen also nur was wir brauchen, Build-Tools und können alles direkt in unsere IDE importieren.
Schichten vom Spring Framework
- Core Container: Diese Schicht bildet das Herzstück des Spring Frameworks. Sie bietet die grundlegenden Funktionen für die Verwaltung von Abhängigkeiten, die Konfiguration von Anwendungen und die Erstellung und Verwaltung von Java-Objekten (Beans). Hierzu gehören auch Funktionen wie Dependency Injection und Inversion of Control (IoC).
- AOP (Aspect-Oriented Programming): AOP ist eine Technik, die es ermöglicht, Querschnittsbedenken wie Logging, Transaktionsverwaltung und Sicherheitsaspekte in einem separaten Modul zu behandeln. Spring bietet ein leistungsfähiges AOP-Modul, das die Trennung von Anliegen erleichtert und die Modulartigkeit der Anwendung fördert.
- Data Access / JDBC: Diese Schicht erleichtert den Zugriff auf Datenbanken und die Verwaltung von Datenbanktransaktionen. Spring bietet eine umfassende Unterstützung für verschiedene Datenzugriffstechnologien, einschließlich JDBC, JPA, Hibernate und mehr.
- Transaction Management: Spring bietet eine abstrakte Transaktionsmanagement-Schnittstelle, die es ermöglicht, Transaktionen in verschiedenen Umgebungen zu verwalten, einschließlich JDBC, JPA, JMS und JTA. Dies erleichtert die konsistente Handhabung von Transaktionen in verteilten Anwendungen.
- Model-View-Controller (MVC): Spring MVC ist ein Webframework, das auf dem Model-View-Controller-Muster basiert und die Entwicklung von Webanwendungen erleichtert. Es bietet Funktionen wie HandlerMapping, ViewResolver und verschiedene Annotationen zur Vereinfachung der Controller-Konfiguration.
- Security: Spring Security ist ein leistungsstarkes Framework zur Authentifizierung, Autorisierung und zum Schutz von Webanwendungen. Es bietet eine Vielzahl von Funktionen zur Sicherung von Anwendungen, einschließlich Benutzerauthentifizierung, Rollenbasierte Zugriffskontrolle, Schutz vor CSRF-Angriffen und vieles mehr.
Diese Schichten sind nur ein Auszug aus den vielen Funktionen und Modulen, die das Spring Framework bietet. Sie ermöglichen eine effiziente und modulare Entwicklung von Java-Anwendungen für verschiedene Anwendungsfälle.