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

2022-07-09 10:09:18
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 包的mapperxml 的路径需要指定一下:
  如下,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、运行项目即可。

  • 作者:茁壮成长的凌大大
  • 原文链接:https://blog.csdn.net/wohaqiyi/article/details/82226097
    更新时间:2022-07-09 10:09:18