[JAVA] Ich möchte @Autowired in Servlet verwenden

Ich denke, dass es im Prinzip eine "einzelne Sprache / ein einzelnes Framework" sein sollte, wenn eine Webanwendung erstellt wird, aber in Wirklichkeit ist dies in einigen Fällen nicht zulässig. Insbesondere höre ich, dass Sie, wenn Sie an der Entwicklung von Geschäftssystemen beteiligt sind, möglicherweise gezwungen sind, so etwas wie Patchwork (blutige Tränen) zu entwickeln.

Als Erweiterung gab es einen Fall, in dem eine von Spring erstellte Klasse in Servlet verwendet wurde, dh "@ Autowired" musste in __Servlet ausgeführt werden. Ich dachte, es wäre einfach, aber ich war wirklich begeistert, also zeige ich Ihnen ein Beispiel als Memo.

@WebServlet("/hoge")
public class HogeServlet extends HttpServlet {
	
    @Autowired private HogeService hogeService;
    
	@Override
	protected void init(ServletConfig config) throws ServletException {
		super.init(config);
		SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext());
	}
    
    @Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException {
		hogeService.doSomething();
	}
}

Das Prinzip des Frühlings besteht darin, "die Erzeugung und das Verschwinden verschiedener Bohnen dem Frühling zu überlassen", und "@ Autowired" kann als typisches Beispiel bezeichnet werden. Umgekehrt ist es zur Verwendung von "@ Autowried" in einem Servlet außerhalb von "__Spring" erforderlich, dieses Servlet in den Spring-Lebenszyklus einzubeziehen, insbesondere die überschriebene "init" -Methode. Die Einstellung erfolgt in. __ __

Recommended Posts

Ich möchte @Autowired in Servlet verwenden
Ich möchte Combine auch in UIKit verwenden.
Ich möchte die praktischen Funktionen von Clojure in Kotlin nutzen
Ich möchte auch in Laradock Fischschalen verwenden! !!
Ich möchte ES2015 auch in Java verwenden! → (´ ・ ω ・ `)
Ich möchte ein kleines Symbol in Rails verwenden
Ich möchte statische Felder auf @Autowired ausrichten
Ich möchte eine E-Mail in Java senden.
Ich möchte Java8 für jeden mit Index verwenden
Ich möchte APP_HOME an Logback in Gradle übergeben
rsync4j - Ich möchte rsync in Java berühren.
Ich möchte irgendwann sogar in Kotlin sein
Ich möchte den Wert in Ruby erhalten
[Java Spring MVC] Ich möchte DI in meiner eigenen Klasse verwenden
Ich möchte so etwas wie "cls" in Java machen
Ich möchte NetBeans auf einem Mac verwenden → Ich kann es verwenden!
Ich möchte eine TraceId in das Protokoll einbetten
Ich möchte Zeichen konvertieren ...
Ich möchte eine Funktion in der Rails Console definieren
[Android Studio] Ich möchte eine Maven-Bibliothek unter Android verwenden
Ich möchte Schlangenfälle mit Tabellendefinitionen stoppen
Ich möchte in RSpec auf einen GoogleMap-Pin klicken
Ich möchte PowerMock in einer Klasse verwenden, die parametrisierte Tests und gewöhnliche Tests kombiniert
[Anfänger] Ich möchte die Migrationsdatei ändern.
Ich möchte einen relativen Pfad in einer Situation finden, in der Pfad verwendet wird
Ich möchte mit Ruby (ABC177E) eine schnelle Primfaktorisierung durchführen.
Ich möchte die Java 8 DateTime-API (jetzt) langsam verwenden.
Ich möchte eine andere Desinfektionsmethode als Ansicht verwenden.
Gründe, Servlet und JSP in der Java-Entwicklung getrennt zu verwenden
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben
Ich möchte eine Parkettdatei auch in Ruby erstellen
Ich möchte im gespeicherten Zustand zum selben Bildschirm wechseln
Ich möchte FireBase verwenden, um eine Zeitleiste wie Twitter anzuzeigen
Ich möchte die if-else-Anweisung für bedingte Verzweigungen in Java vereinfachen
Wie man Lombok im Frühling benutzt
Verwendung des Bereichs (JSP & Servlet)
Verwendung von InjectorHolder in OpenAM
Wie verwende ich Klassen in Java?
Ich möchte Swipeback auf einem Bildschirm verwenden, der XLPagerTabStrip verwendet
Ich habe versucht, Java-Anfänger so einzustellen, dass sie Tastenkombinationen in Eclipse verwenden
Ich möchte Geräte in Rails hinzufügen, kann die Installation jedoch nicht bündeln
Ich möchte den oberen Rand in der UITableView von Grouped entfernen (schnell)
[Java] Ich möchte mit dem Schlüssel im Objekt eindeutig arbeiten
Ich möchte den Wert von Attribute in Selenium of Ruby ändern
[Android] Ich möchte den Listener über die Schaltfläche in ListView abrufen
Ich möchte eine Webanwendung entwickeln!
Mehrsprachige Unterstützung für Java Verwendung des Gebietsschemas
Ich möchte ein schönes build.gradle schreiben
Ich möchte doppelte Fehlermeldungen beseitigen
Verwendung des benannten Volumes in docker-compose.yml
Ich möchte eine ios.android App machen