servlet 上的 jhipster 注入

jhipster injection on servlet

我创建了一个 servlet,但无法注入存储库对象。有人遇到过这个问题吗?

我在 WebConfigurer 中的配置:

@Override
public void onStartup(ServletContext servletContext) throws ServletException {
    log.info("Web application configuration, using profiles: {}", Arrays.toString(env.getActiveProfiles()));
    // Create the dispatcher servlet's Spring application context
    AnnotationConfigWebApplicationContext dispatcherServlet = new AnnotationConfigWebApplicationContext();
    dispatcherServlet.register(WebMvcAutoConfiguration.class);

    // Register and map the dispatcher servlet
    ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher", new DispatcherServlet(dispatcherServlet));
    dispatcher.setLoadOnStartup(1);
    dispatcher.addMapping("/");

我的 servlet:

 @WebServlet(urlPatterns = "/servlet/preview")
    public class ServletPreViewHtml extends HttpServlet {
        private static final long serialVersionUID = 1L;

        @Autowired
        private PagecontentRepository pagecontentRepository;

        public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException{
            doGet(request,response);
        }
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException{
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            Pagecontent p = pagecontentRepository.getOne(2l); //line 34
            out.println(p.getFullHtml());

总是returns我出现以下错误:

java.lang.NullPointerException: null at br.com.dmsolutions.netfarmacontentmanager.web.rest.ServletPreViewHtml.doGet(ServletPreViewHtml.java:34)

NPE 行:pagecontentRepository.getOne(2L);

我宁愿使用 @Controller 而不是使用 @WebServlet,这样 Spring 就可以注入您的存储库。

我同意 Gaël Marziou 的观点,但您也可以使用 @ServletComponentScan,Spring Boot 1.3 的一部分。

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.3-Release-Notes#support-for-webservlet-webfilter-and-weblistener