博客信息

springboot监听类war形式部署问题

发布时间:『 2019-03-07 21:51』  博客类别:SpringBoot  阅读(981)

本人在以war包形式部署springboot项目的时候踩到的一个坑

问题说明:

springboot项目在开发环境启动时是毫无问题的,然而一打war包,tomcat控制台一直报错,监听类中的service始终是null,也就是说@autowise注解失效了。

通过查找资料,解决方法如下

@WebListener
public class InitDataListener implements ServletContextListener {
    @Autowired
    private TechnologysService technologysService;
    @Autowired
    private TechnologysTypeService technologysTypeService;
    @Autowired
    private LinkService linkService;
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("-------------------------初始化数据-------------------------");
        ServletContext servletContext = sce.getServletContext();
//        打war包的时候是无法将service给注入进来的
        WebApplicationContextUtils.getRequiredWebApplicationContext(sce.getServletContext())
                .getAutowireCapableBeanFactory().autowireBean(this);

//        技术类别列表(导航条)
        servletContext.setAttribute("technologysTypeList", technologysTypeService.listPager(null,null));

    }

启动类需要加的注解也一并copy了

@EnableTransactionManagement
@MapperScan(value = "com.javaxl.p4.mapper")
@ServletComponentScan(value= "com.javaxl.p4.listener")
@SpringBootApplication
public class P4Application extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(P4Application.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(P4Application.class, args);
    }

}


然后打war包,这个就上篇博客有所介绍了,不再多说废话了。最终含有监听类的springboot项目就可以发布成功了。

小李飞刀_springboot小李飞刀_springboot小李飞刀_springboot



关键字:     springboot  

备案号:湘ICP备19000029号

Copyright © 2018-2019 javaxl晓码阁 版权所有