springboot基于mybatis扫描jar包中的controller、service、dao、xml
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需要的注解--><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.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、运行项目即可。
springboot基于mybatis扫描jar包中的controller、service、dao、xml相关推荐
- Spring Boot 引入jar 包中的 controller
[问题] Spring Boot 引入jar 包中的 controller [解决] 默认情况下 Spring Boot 在启动时, 只会扫描启动类对应的包以及子包进行装配, 因此jar包中的cont ...
- springboot 扫描jar包中bean_详解Spring Boot的Component Scan原理
本文将帮助您了解Spring中最重要的概念 - 组件扫描.Spring Boot在组件扫描方面做了一些魔术 @ComponentScan 如果你了解组件扫描,你就会理解Spring.Spring是一个 ...
- Struts2不扫描jar包中的action
今天在做一个二开的项目,将struts打成jar包放在WEB-INF的目录下却扫描不到指定的路径,也就是http访问访问不到我们指定的action,其他代码可以正常使用,就是访问不到action.st ...
- maven springboot 除去指定的jar包_SpringBoot的运行机制
SpringBoot打包机制 先看一眼spring-boot的maven插件打包后的target目录: 其中有一个.jar.original的文件,一个.jar文件,其中.jar.original才是 ...
- 记录springBoot项目使用jar包中的mapper报错问题
记录springBoot项目使用jar包中的mapper报错问题 背景 双数据源的实现 启动时报找不到对应的service 启动报mapper找不到 启动报no sqlsessionfactory 启 ...
- 解决springboot读取jar包中文件的问题
解决springboot读取jar包中文件的问题 参考文章: (1)解决springboot读取jar包中文件的问题 (2)https://www.cnblogs.com/songxiaotong/p ...
- java原生和SpringBoot读取jar包中MANIFEST.MF的方式
我们经常看到java的一些jar包META-INF目录下包含一个MANIFEST.MF文件,里面包含一些版本信息,标题,实现组织,很多第三方的jar包还会自定义一个属性. 本文讲解如何读取jar包中M ...
- maven springboot 除去指定的jar包_1. Spring Boot概述
1.1 Spring Boot理解 Spring Boot来简化Spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用 背景 J2EE笨重的开发.繁多的配置. ...
- spring无法扫描jar包的问题
在日常开发中往往会对公共的模块打包发布,然后调用公共包的内容.然而,最近对公司的公共模块进行整理发布后.spring却无法扫描到相应的bean.折腾了好久,最终发现是认识上的误区. 2015-11-1 ...
最新文章
- iOS7修改UISearchBar的Cancel按钮的颜色和文字
- sql server2005 通用分页方法
- yolov3的缺点_YOLOv3:训练自己的数据(附优化与问题总结)
- 瑞星linux u盘引导盘杀毒教程,瑞星杀毒U盘怎样用U盘启动电脑
- 音视频技术在云会议场景的拓展和未来
- 100万并发连接服务器笔记之Erlang完成1M并发连接目标
- 面料正反、倒顺、经纬判别方法
- gdb 调试打印完整字符串
- 微信小程序自动定位城市
- 微信小程序如何使用阿里巴巴矢量图标库彩色图标
- WordPress使用domain/wp-json/api/v1/test 无法到接口可能的原因
- filco圣手二代蓝牙连接win10系统(华硕笔记本)
- centeros 卸载mysql_如何卸载数据库centeros
- 2020python二级考试时间_2020年计算机二级考试时间及考试科目
- 少侠1216资源共享
- html有序列表序号字体大小,css – 对不同字体大小的排序列表编号进行样式化
- Python基础1——导入文件数据
- Vivado、modelsim、VHDL错误集锦
- 同ip网站查询,同服务器网站查询,利用bing查询同一服务器IP下的所有网站 -
- 制作原生的Win7 PE by AIK
热门文章
- Java Vector setElementAt()方法与示例
- java日历类add方法_Java日历computeTime()方法及示例
- 计算机选配 注意事项,选择鼠标注意事项有哪些
- easyui的textbox实现编辑保存_第80讲:工作表数据与UserForm窗口的交互,记录的编辑和保存...
- python上传本地文件到ftp_python实现的简单FTP上传下载文件实例
- duration java_Java Duration类| toMinutes()方法与示例
- Java Integer类toString()方法与示例
- notepad++ 偶数行_C ++程序查找前N个偶数的立方和
- 为什么阿里内部不允许用Executors创建线程池?
- 绝了,几款主流的 JSON 库性能对比!