Ich habe einen Spring Boot, wo ich eine Router Bean automatisch konfiguriert habe. Das alles funktioniert perfekt, aber es wird zu einem Problem, wenn ich die Bohne in ein benutzerdefiniertes Servlet injizieren wollen:Spring Boot: Injection Bean in HttpServlet
public class MembraneServlet extends HttpServlet {
@Autowired
private Router router;
@Override
public void init() throws ServletException {
SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
new HttpServletHandler(req, resp, router.getTransport()).run();
}
}
Dies ist der Weg zu gehen sein sollte, aber
SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
wird das nicht autowire Router, weil WebapplicationContext
immer Null ist. Die Anwendung wird in einer MVC-Umgebung ausgeführt.
Ist Ihr httpservlet von Spring bo eingebettet ot? –
Ist das nicht ein Duplikat von https://stackoverflow.com/questions/18745770/spring-injection-into-servlet? –
Haben Sie erwogen, '@ Controller' oder' @ RestController' anstelle eines Servlets zu verwenden? Ich denke, es ist eine bessere Möglichkeit, Dinge im Frühjahr-Boot zu tun –