657 Stimmen

Wofür genau ist Spring Framework gedacht?

Ich höre viel über Frühling Überall im Web wird gesagt, dass Spring ein gutes Framework für die Webentwicklung ist. Wofür genau ist Spring Framework in einer Nussschale? Warum sollte ich es statt einfachem Java verwenden?

15 Stimmen

Ich verstehe, dass die Frage sehr weit gefasst ist, aber ich denke, dass die Frage in diesem speziellen Fall sehr wichtig für Junion-Entwickler ist, die oft von Leuten über Spring gesprochen werden, die davon ausgehen, dass es so populär ist, dass man nicht einmal sagen muss, was es tut. Heben Sie doch mal die Hand, wenn Sie noch nie von Instagram gehört haben und was dessen Zweck ist.... (Geständnis: Ich habe Insta nie benutzt)

2 Stimmen

Die Frage wurde vor 10 Jahren gestellt, und damals war Spring noch etwas kleiner als heute mit all seinen Unterprojekten wie Spring Boot, Spring Data, Spring Rest usw. Und eigentlich ist das der Grund, warum es vor einem Jahr näher war, wegen der Breite dieser Frage. Zu der Zeit, als ich diese Frage stellte, wollte ich einfach nur DI verstehen und warum es benötigt wird.

5voto

Die akzeptierte Antwort bezieht sich nicht auf die Verwendung von Annotationen, da Spring Unterstützung für verschiedene Annotationen für die Konfiguration eingeführt hat.

Spring Annotations Ansatz (Dependency Injection)

Neben der Verwendung einer XML-Datei gibt es eine weitere Möglichkeit, die Klassen zu verdrahten: die Annotationen. Nehmen wir das Beispiel aus der akzeptierten Antwort und registrieren wir die Bean direkt in der Klasse mit einer der Annotationen @Component , @Service , @Repository ou @Configuration :

@Component
public class UserListerDB implements UserLister {
    public List<User> getUsers() {
        // DB access code here
    }
}

Auf diese Weise, wenn die Ansicht erstellt wird es magisch haben eine UserLister bereit zu arbeiten.

Die obige Aussage ist gültig mit dem kleinen Bonus, dass keine XML-Datei verwendet werden muss und die Verdrahtung mit einer weiteren Anmerkung @Autowired der eine relevante Implementierung findet und sie einfügt.

@Autowired
private UserLister userLister;

Verwenden Sie die @Bean Annotation auf eine Methode, die verwendet wird, um die Bean-Implementierung zu injizieren.

4voto

Premraj Punkte 65511
  • Spring ist im Vergleich zu J2EE ein leichtgewichtiges und flexibles Framework.
  • Federbehälter wirken wie eine Umkehrung der Kontrolle.
  • Spring verwendet AOP, d.h. Proxies und die Entwurfsmuster Singleton, Factory und Template Method.
  • Mehrstufige Architekturen: Trennung von Belangen, wiederverwendbare Schichten und einfache Wartung.

enter image description here

3voto

fastcodejava Punkte 37539

Frühling ist eine gute Alternative zu Enterprise JavaBeans (EJB) Technologie. Es hat auch Web-Framework und Web-Services-Framework-Komponente.

1voto

Jacek Cz Punkte 1824

Spring war in den Anfängen Dependency Injection, dann fügen Sie König von Wrappern für fast alles (Wrapper über JPA-Implementierungen usw.).

Lange Geschichte ... die meisten Teile von Spring bevorzugen XML-Lösungen (XML-Skripting-Engine ... brrrr), so dass für DI Ich benutze Guice

Gute Bibliothek, aber mit wachsender Abhängigkeit, zum Beispiel Frühling JDBC (vielleicht eine Java jdbc Lösung mit echten Namensparametern) von maven 4-5 übernehmen.

Mit Spring MVC (Teil der "großen Frühling") für die Web-Entwicklung ... es ist "Anfrage-basierte" Rahmen, gibt es heiligen Krieg "Anfrage gegen Komponente" ... bis zu Ihnen

1voto

Pablojim Punkte 8312

Spring war anfangs ein recht einfaches System zur Injektion von Abhängigkeiten. Jetzt ist es riesig und hat alles drin (außer dem sprichwörtlichen Spülbecken).

Aber keine Angst, es ist modular aufgebaut, so dass Sie genau die Teile verwenden können, die Sie brauchen.

Um zu sehen, wo alles begann, versuchen Sie es:

http://www.amazon.com/Expert-One-Design-Development-Programmer/dp/0764543857/ref=sr_1_1?ie=UTF8&s=books&qid=1246374863&sr=1-1

Es mag zwar alt sein, aber es ist ein ausgezeichnetes Buch.

Ein weiteres gutes Buch, das diesmal ausschließlich dem Frühling gewidmet ist, finden Sie hier:

http://www.amazon.com/Professional-Java-Development-Spring-Framework/dp/0764574833/ref=sr_1_2?ie=UTF8&s=books&qid=1246374863&sr=1-2

Sie bezieht sich auch auf ältere Versionen von Spring, ist aber auf jeden Fall einen Blick wert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X