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

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等的配置即可,只留下我说的那几个,如果还不能理解,看我留下的这个链接吧。 打包项目的demo

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、运行项目即可。
  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茁壮成长的凌大大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值