Das Spring Framework ist ein quelloffenes Framework für [[coding:java|Java]], welches **oft für Webanwendungen verwendet** wird. Ziel des Spring Frameworks ist es, die Entwicklung mit Java/Java EE zu vereinfachen und gute Programmierpraktiken zu fördern. Spring bietet mit einem breiten Spektrum an Funktionalität eine ganzheitliche Lösung zur Entwicklung von Anwendungen und deren Geschäftslogiken (siehe [[bpm|BPM]]); dabei steht die Entkopplung der Applikationskomponenten im Vordergrund. Das Framework basiert auf den in Rod Johnsons Buch **Expert One-On-One J2EE Design and Development** vorgestellten Prinzipien: * **Dependency Injection**: Den Objekten werden die benötigten Ressourcen und Objekte zugewiesen. Sie müssen sie nicht selbst suchen. * **Aspektorientierte Programmierung** (AOP): Dadurch kann der Programmierer vor allem technische Aspekte wie Transaktionen oder Sicherheit isolieren und den eigentlichen Programmcode davon frei halten. Spring bringt dabei neben Spring AOP eine gute Unterstützung für AspectJ und dessen Pointcut Expression Language mit. * **Vorlagen** dienen dazu, die Arbeit mit einigen Programmierschnittstellen (APIs) zu vereinfachen, indem Ressourcen automatisch aufgeräumt sowie Fehlersituationen einheitlich behandelt werden. Dadurch wird ein POJO-basiertes (Plain old Java Object) Programmiermodell möglich, bei dem die POJOs zusätzlich in verschiedenen Umgebungen (auf einem Server oder in einer Client-Anwendung) lauffähig sind. =====Links===== * [[https://spring.io/|Homepage]] * [[https://www.youtube.com/watch?v=YDRNMAJo0MA|10 minute Getting started tutorial]] * [[https://www.youtube.com/watch?v=vtPkZShrvXQ|Advanced beginner tutorial]]