30. Juni 2018
Dies ist eine sehr gute Frage!. Jetzt für die Antwort in der beste Weg, ich denke, dass ein wenig von der story hilft.
Der Frühling war geboren in der EJB-ära, in der alles konfiguriert wurde, im xml-und im Frühjahr war ursprünglich ein java-framework für die IOC-POJO-basiert. In dieser Zeit wurde ganz normal konfigurieren, unseren Antrag im xml-und im Frühjahr war eine gute Wahl, denn wir können die Vorteile des IOC, ohne die EJB-Komplexität und in einem vendor-freie Weise, EJB-ist nicht vollständig application server frei, weil einige Male der Kreditor-Implementierung, insbesondere für herstellerspezifische Konfiguration bringt die Anwendung nicht absolut tragbar, Frühjahr war ein gelungener Rahmen, da war eine Lösung für fast alle Probleme eine EJB-Anwendung. Dann wird der Erfolg der Rahmen bringt den Rahmen, um zu wachsen und auch andere Funktionen wie data access, web-integration und andere mehr integration und Möglichkeiten.
In diesem Jahre ist auch die Java ee wächst und in Java ee 6 wurde geboren CDI Frühjahr bieten ein xml, Annotations, java-config, groovy, kotlin dsl-bean-Konfiguration zu erreichen, um Flexibilität und eine komfortable Programmierung und Konfiguration Modell, denken Sie an all die Menschen, die kommen aus JabaEE 6+, die in der Regel durch die Verwendung von @Inject für DI. Jetzt sagte alle diese DI-Fähigkeit, um Ermessen des Entwicklers.
In meine Meinung mit @Autowired ist gefährlich, da dies bringt Sie die Feder für immer und viele Problem der DI kommt im Fall von mehr als einer bean konfiguriert sind. Zur Durchsetzung der Aufwand der Frühling-team, um Ihnen Komfort und freie Wahl der Konfiguration ab Frühjahr 4.3.x Sie können denken, wie
interface Vehicle {
}
class Car implements Vehicle {
}
class Example {
private final Vehicle vehicle;
Example(Vehicle vehicle) {
this.vehicle = vehicle;
}
}
@Configuration
class Config{
@Bean
public Car car(){
return new Car();
}
@Bean
public Example example(Vehicle car){
return new Example(car);
}
}
@RestController
class Enpoint{
private final Example example;
Enpoint(Example example) {
this.example = example;
}
die Ihre business code ist jetzt völlig frei von Frühling, auch den Konstruktor auf die rest-controller nicht erforderlich @Autowired annotation, natürlich müssen Sie es konfigurieren.
Am Ende kann ich sagen, dass Sie verwenden sollten, Spring nicht, weil Frühling bieten IOC, dies kann sein, dies in einer reinen Java-Weise, mit der Google-Saft, Frühling und viele andere IOC-framework, aber ich schlage vor, Sie nutzen Spring, für alle verwandten Projekt, das Ihnen viele Funktionen für die Produktion geeignet wie Spring web für blocking IO, Frühling WebFlux für nicht-blockin-IO -, Spring-Integration für EIP -, Spring batch für Enterprise-ready Batch, Spring Cloud für den Cloud-nativen Anwendung und mehr und mehr, die Kraft des Frühlings zu Tag ist die Flexibilität und Vollständigkeit, natürlich, das Gesetz der Spinne Mann gültig ist! von großen Kräften haben wir eine große Verantwortung.
Frühjahr geben Ihnen viele Möglichkeit, aber dann ist der Entwickler die Verantwortung, das beste zu wählen. Anmerkung geben Sie die Geschwindigkeit vor allem während der prototyping-dann aber ist zu starr.
Ich hoffe, dass diese lange Reflexion geben Ihnen eine Antwort auf Ihre Zweifel