springboot基于mybatis扫描jar包中的controller、service、dao、xml

最近有这样的需求,是将某个业务模块接口,比如新闻的接口模块 作为一个公共固定的模块,整个包括controllermodelmappermapper .xml ,都通过jar 包的形式引入到其他项目中。
如果能够实现,这样避免了复制粘贴的繁琐,只需要几步配置,以及引入我们提前打包好的新闻模块 jar,将表结构拷到新项目的数据库里,即可调用里边的接口。

1、要引入的项目模块介绍

下边是我要做成 jar 包的小项目,如下:
其实主要就是含有controllermodelmappermapper .xml ,即我们调用接口需要的东西。

注意上边的controllerserviceImpl 里的会有@RestController@RequestMapping@Service 注解,这些注解都需要引入spring 包才可以,我直接是在pom.xml 里引入了如下的依赖:

<!--controller、service需要的注解--><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>4.3.6.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.6.RELEASE</version></dependency><!-- mybatis Mapper里需要它里边的一个注解--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis-spring-boot}</version></dependency><!-- mybatis分页插件依赖 service实现类里用到了 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>4.1.0</version></dependency><!--用到了一个它里边的方法--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.4</version></dependency>

其实要做成的jar 包,去掉关于数据库、mybatis等的配置即可,只留下我说的那几个。

2、打包jar

我在idea 里通过clean install 打包的项目,具体的再将打好的jar 包上传到你们的maven 私服里,就不说了。

3、主项目引入jar需要做的配置

(1)pom里引入打包好的jar

比如下边是我打包好的jar包,并上传到我们的maven私服上的依赖,将它引入到项目里。

<dependency><groupId>znxd.demo</groupId><artifactId>znxd-zlzs-demo</artifactId><version>1.2</version></dependency>
(2)springboot项目中application.properties添加配置

因为引入的jar 包的mapper xml 的路径需要指定一下:
如下,classpath\* 即是配置jar 包里的xml路径locations 如果指定多个需要用, 分割。

mybatis.mapper-locations=classpath:mapper/*/*Mapper.xml,classpath*:mapper/*/*Mapper.xml

可能有人觉得还需要配置:

mybatis.type-aliases-package=

但是我没有配置这个,竟然也成功了。所以这里不写了

(3)springboot项目启动项加入扫描包位置

如下,znxd.demojar 包中的位置,必须要让spring 扫描到它里边的controllerservice 等等。
另外,znxd.demo.mapperjar 包里边的mapper 接口的位置,也是需要添加到MapperScan 注解里边。

@SpringBootApplication
@EnableTransactionManagement
@ComponentScan(basePackages={"znxd.zlzs","znxd.demo"})
@MapperScan(basePackages = {"znxd.zlzs.mapper","znxd.demo.mapper"})
(4)数据库表结构

当然引入了jar包的项目,但是它们对应的表,也是需要导入到新库里,否则查询会报失败的。

4、运行项目即可。

springboot基于mybatis扫描jar包中的controller、service、dao、xml相关推荐

  1. Spring Boot 引入jar 包中的 controller

    [问题] Spring Boot 引入jar 包中的 controller [解决] 默认情况下 Spring Boot 在启动时, 只会扫描启动类对应的包以及子包进行装配, 因此jar包中的cont ...

  2. springboot 扫描jar包中bean_详解Spring Boot的Component Scan原理

    本文将帮助您了解Spring中最重要的概念 - 组件扫描.Spring Boot在组件扫描方面做了一些魔术 @ComponentScan 如果你了解组件扫描,你就会理解Spring.Spring是一个 ...

  3. Struts2不扫描jar包中的action

    今天在做一个二开的项目,将struts打成jar包放在WEB-INF的目录下却扫描不到指定的路径,也就是http访问访问不到我们指定的action,其他代码可以正常使用,就是访问不到action.st ...

  4. maven springboot 除去指定的jar包_SpringBoot的运行机制

    SpringBoot打包机制 先看一眼spring-boot的maven插件打包后的target目录: 其中有一个.jar.original的文件,一个.jar文件,其中.jar.original才是 ...

  5. 记录springBoot项目使用jar包中的mapper报错问题

    记录springBoot项目使用jar包中的mapper报错问题 背景 双数据源的实现 启动时报找不到对应的service 启动报mapper找不到 启动报no sqlsessionfactory 启 ...

  6. 解决springboot读取jar包中文件的问题

    解决springboot读取jar包中文件的问题 参考文章: (1)解决springboot读取jar包中文件的问题 (2)https://www.cnblogs.com/songxiaotong/p ...

  7. java原生和SpringBoot读取jar包中MANIFEST.MF的方式

    我们经常看到java的一些jar包META-INF目录下包含一个MANIFEST.MF文件,里面包含一些版本信息,标题,实现组织,很多第三方的jar包还会自定义一个属性. 本文讲解如何读取jar包中M ...

  8. maven springboot 除去指定的jar包_1. Spring Boot概述

    1.1 Spring Boot理解 Spring Boot来简化Spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用 背景 J2EE笨重的开发.繁多的配置. ...

  9. spring无法扫描jar包的问题

    在日常开发中往往会对公共的模块打包发布,然后调用公共包的内容.然而,最近对公司的公共模块进行整理发布后.spring却无法扫描到相应的bean.折腾了好久,最终发现是认识上的误区. 2015-11-1 ...

最新文章

  1. iOS7修改UISearchBar的Cancel按钮的颜色和文字
  2. sql server2005 通用分页方法
  3. yolov3的缺点_YOLOv3:训练自己的数据(附优化与问题总结)
  4. 瑞星linux u盘引导盘杀毒教程,瑞星杀毒U盘怎样用U盘启动电脑
  5. 音视频技术在云会议场景的拓展和未来
  6. 100万并发连接服务器笔记之Erlang完成1M并发连接目标
  7. 面料正反、倒顺、经纬判别方法
  8. gdb 调试打印完整字符串
  9. 微信小程序自动定位城市
  10. 微信小程序如何使用阿里巴巴矢量图标库彩色图标
  11. WordPress使用domain/wp-json/api/v1/test 无法到接口可能的原因
  12. filco圣手二代蓝牙连接win10系统(华硕笔记本)
  13. centeros 卸载mysql_如何卸载数据库centeros
  14. 2020python二级考试时间_2020年计算机二级考试时间及考试科目
  15. 少侠1216资源共享
  16. html有序列表序号字体大小,css – 对不同字体大小的排序列表编号进行样式化
  17. Python基础1——导入文件数据
  18. Vivado、modelsim、VHDL错误集锦
  19. 同ip网站查询,同服务器网站查询,利用bing查询同一服务器IP下的所有网站 -
  20. 制作原生的Win7 PE by AIK

热门文章

  1. Java Vector setElementAt()方法与示例
  2. java日历类add方法_Java日历computeTime()方法及示例
  3. 计算机选配 注意事项,选择鼠标注意事项有哪些
  4. easyui的textbox实现编辑保存_第80讲:工作表数据与UserForm窗口的交互,记录的编辑和保存...
  5. python上传本地文件到ftp_python实现的简单FTP上传下载文件实例
  6. duration java_Java Duration类| toMinutes()方法与示例
  7. Java Integer类toString()方法与示例
  8. notepad++ 偶数行_C ++程序查找前N个偶数的立方和
  9. 为什么阿里内部不允许用Executors创建线程池?
  10. 绝了,几款主流的 JSON 库性能对比!