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