Spring Boot+Jersey+Mybatis打包

最近有空将公司代码重构改成Spring Boot+Jersey+Mybatis的模式,在打包的过程中遇到不少问题,现将经验教训分享出来。

SpringBoot一般可直接通过Application.run来执行,如果要上线部署,可以jar包运行,或者war包放在web容器运行。

如果要打war包,用原生maven打war包插件便能打包成功,只是这样的war包缺少web.xml启动,因此需要Application继承SpringBootServletInitializer来替代web.xml的作用。同时pom依赖得屏蔽自带的tomcat依次来依赖外部的web服务器。

接着打jar包,也是本次分享的重点,笔者在这遇到不少坑,建议采用官方推荐spring-boot-maven-plugin打包,如果采用maven-jar-plugin打包,会和原生springboot启动流程冲突,如果采用maven-shade-plugi打包则可能会解析不了springboot原生jar包。当打包运行时会发现其实仍然有问题,其实就是jersey的解析资源方式不支持压缩包内的资源,因此需采用如下编程扫描方式,代码如下:

ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(false);
        scanner.addIncludeFilter(new AnnotationTypeFilter(Path.class));
        scanner.addIncludeFilter(new AnnotationTypeFilter(Provider.class));
        this.registerClasses(scanner.findCandidateComponents("com.retail.mtapp.controller").stream()
                .map(beanDefinition -> ClassUtils
                        .resolveClassName(beanDefinition.getBeanClassName(), this.getClassLoader()))
                .collect(Collectors.toSet()));

转载于:https://my.oschina.net/u/2265861/blog/883767

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值