Spring Boot+Jersey+Mybatis打包
2017-04-20 00:00
423 查看
最近有空将公司代码重构改成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的解析资源方式不支持压缩包内的资源,因此需采用如下编程扫描方式,代码如下:
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()));
相关文章推荐
- SpringBoot + Mybatis + RESTful(Jersey)
- springboot + mybatis从环境搭建到打包发布
- spring-boot整合mybatis打包war包
- SpringBoot + Mybatis + RESTful(Jersey)
- Spring Boot 集成MyBatis
- Spring Boot、Mybatis框架整合开发Java RESTful Web Service
- Spring Boot 让 MyBatis 打印日志的方法
- Spring boot Mybatis
- Spring-boot web 工程构建,并把maven子项目模块依赖jar打包,笔记
- jersey spring shiro mybatis mysql集成配置
- Spring+Jetty+Jersey+Mybatis整合教程 无web.xml 、webapp版
- [原创]Spring Boot + Mybatis 简易使用指南(二)多参数方法支持 与 Joda DateTime类型支持
- 第五章 springboot + mybatis
- Spring Boot Maven打包去掉不需要的文件
- Spring Boot + Mybatis + Log4j2开发环境搭建
- spring boot mybatis mysql
- MAVEN下实现spring boot打包成war包(spring boot 01)
- [原创]Spring Boot + Mybatis 简易使用指南(一)基础环境搭建
- Spring boot Mybatis
- Spring Boot MyBatis 通用Mapper插件集成