[JAVA] Je veux utiliser @Autowired dans Servlet

Je pense qu'en principe, il devrait s'agir d'un "langage unique / cadre unique" lors de la création d'une application Web, mais en réalité, il y a des cas où cela n'est pas autorisé. En particulier, j'ai entendu dire que si vous êtes impliqué dans le développement de systèmes d'entreprise, vous pourriez être obligé de développer quelque chose comme un patchwork (des larmes sanglantes).

En prolongement de cela, il y avait un cas où une classe créée par Spring était utilisée dans Servlet, c'est-à-dire que @ Autowired devait être fait dans __Servlet. Je pensais que ce serait facile, mais j'étais vraiment dedans, alors je vais vous montrer un échantillon comme mémo.

@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();
	}
}

Le principe de Spring est de «laisser la génération et la disparition de divers beans à Spring», et «@ Autowired» peut être considéré comme un exemple typique. Inversement, pour utiliser @ Autowried dans un servlet en dehors de __Spring, il est nécessaire d'incorporer ce servlet dans le cycle de vie de Spring, en particulier la méthode ʻinit` remplacée. Le réglage est fait dans. __

Recommended Posts

Je veux utiliser @Autowired dans Servlet
Je souhaite également utiliser Combine dans UIKit.
Je souhaite utiliser les fonctions pratiques de Clojure dans Kotlin
Je veux aussi utiliser des coquillages à Laradock! !!
Je veux aussi utiliser ES2015 avec Java! → (´ ・ ω ・ `)
Je veux utiliser une petite icône dans Rails
Je souhaite cibler les champs statiques sur @Autowired
Je souhaite envoyer un e-mail en Java.
Je veux utiliser java8 forEach avec index
Je souhaite transmettre APP_HOME pour me connecter à Gradle
rsync4j --Je veux toucher rsync en Java.
Je veux être finalement même à kotlin
Je veux obtenir la valeur en Ruby
[Java Spring MVC] Je souhaite utiliser DI dans ma propre classe
Je veux faire quelque chose comme "cls" en Java
Je veux utiliser NetBeans sur Mac → Je peux l'utiliser!
Je veux intégrer n'importe quel TraceId dans le journal
Je veux convertir des caractères ...
Je souhaite définir une fonction dans la console Rails
[Android Studio] Je souhaite utiliser une bibliothèque Maven sur Android
Je veux arrêter les cas de serpent avec des définitions de table
Je veux cliquer sur une broche GoogleMap dans RSpec
Je souhaite utiliser PowerMock dans une classe qui combine des tests paramétrés et des tests ordinaires
[Débutant] Je souhaite modifier le fichier de migration-Comment utiliser la restauration-
Je veux trouver un chemin relatif dans une situation où Path est utilisé
Je souhaite effectuer une factorisation prime rapide avec Ruby (ABC177E)
Je souhaite utiliser l'API Java 8 DateTime lentement (maintenant)
Je souhaite utiliser la méthode de désinfection autre que View.
Raisons d'utiliser séparément Servlet et JSP dans le développement Java
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3
Je veux créer un fichier Parquet même en Ruby
Je souhaite passer au même écran dans l'état enregistré
Je souhaite utiliser FireBase pour afficher une chronologie comme Twitter
Je souhaite simplifier l'instruction if-else de la branche conditionnelle en Java
Comment utiliser Lombok au printemps
Comment utiliser scope (JSP & Servlet)
Comment utiliser InjectorHolder dans OpenAM
Comment utiliser les classes en Java?
Je souhaite utiliser le balayage arrière sur un écran qui utilise XLPagerTabStrip
J'ai essayé de configurer les débutants Java pour qu'ils utilisent des touches de raccourci dans eclipse
Je veux ajouter un appareil dans Rails, mais je ne peux pas grouper l'installation
Je veux supprimer la marge supérieure dans UITableView de Grouped (swift)
[Java] Je veux effectuer distinctement avec la clé dans l'objet
Je veux changer la valeur de l'attribut dans Selenium of Ruby
[Android] Je souhaite obtenir l'auditeur à partir du bouton de ListView
Je souhaite développer une application web!
Prise en charge multilingue de Java Comment utiliser les paramètres régionaux
Je veux écrire un joli build.gradle
Je souhaite éliminer les messages d'erreur en double
Comment utiliser le volume nommé dans docker-compose.yml
Je veux créer une application ios.android