网络科技有限,东莞百度快速优化排名,wordpress 点餐主题,理财网站开发springboot基于mybatis扫描jar包中的controller、service、dao、xml
最近有这样的需求#xff0c;是将某个业务模块接口#xff0c;比如新闻的接口模块 作为一个公共固定的模块#xff0c;整个包括controller 、model 、mapper 、mapper .xml #xff0c;都通过jar 包的形…springboot基于mybatis扫描jar包中的controller、service、dao、xml
最近有这样的需求是将某个业务模块接口比如新闻的接口模块 作为一个公共固定的模块整个包括controller 、model 、mapper 、mapper .xml 都通过jar 包的形式引入到其他项目中。 如果能够实现这样避免了复制粘贴的繁琐只需要几步配置以及引入我们提前打包好的新闻模块 jar将表结构拷到新项目的数据库里即可调用里边的接口。
1、要引入的项目模块介绍
下边是我要做成 jar 包的小项目如下 其实主要就是含有controller 、model 、mapper 、mapper .xml 即我们调用接口需要的东西。 注意上边的controller 、serviceImpl 里的会有RestController 、RequestMapping 、Service 注解这些注解都需要引入spring 包才可以我直接是在pom.xml 里引入了如下的依赖
!--controller、service需要的注解--dependencygroupIdorg.springframework/groupIdartifactIdspring-web/artifactIdversion4.3.6.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion4.3.6.RELEASE/version/dependency!-- mybatis Mapper里需要它里边的一个注解--dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion${mybatis-spring-boot}/version/dependency!-- mybatis分页插件依赖 service实现类里用到了 --dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper/artifactIdversion4.1.0/version/dependency!--用到了一个它里边的方法--dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion3.4/version/dependency其实要做成的jar 包去掉关于数据库、mybatis等的配置即可只留下我说的那几个。
2、打包jar
我在idea 里通过clean install 打包的项目具体的再将打好的jar 包上传到你们的maven 私服里就不说了。
3、主项目引入jar需要做的配置
1pom里引入打包好的jar
比如下边是我打包好的jar包并上传到我们的maven私服上的依赖将它引入到项目里。
dependencygroupIdznxd.demo/groupIdartifactIdznxd-zlzs-demo/artifactIdversion1.2/version/dependency2springboot项目中application.properties添加配置
因为引入的jar 包的mapper xml 的路径需要指定一下 如下classpath\* 即是配置jar 包里的xml路径。locations 如果指定多个需要用, 分割。
mybatis.mapper-locationsclasspath:mapper/*/*Mapper.xml,classpath*:mapper/*/*Mapper.xml可能有人觉得还需要配置
mybatis.type-aliases-package但是我没有配置这个竟然也成功了。所以这里不写了
3springboot项目启动项加入扫描包位置
如下znxd.demo 是jar 包中的位置必须要让spring 扫描到它里边的controller 、service 等等。 另外znxd.demo.mapper 是jar 包里边的mapper 接口的位置也是需要添加到MapperScan 注解里边。
SpringBootApplication
EnableTransactionManagement
ComponentScan(basePackages{znxd.zlzs,znxd.demo})
MapperScan(basePackages {znxd.zlzs.mapper,znxd.demo.mapper})4数据库表结构
当然引入了jar包的项目但是它们对应的表也是需要导入到新库里否则查询会报失败的。
4、运行项目即可。