美文网首页Spring-Boot架构师java大搜罗
记 从零搭建一个spring boot 多模块(models)

记 从零搭建一个spring boot 多模块(models)

作者: 大傻妹么么哒 | 来源:发表于2018-12-12 17:35 被阅读12次

项目基础结构(项目地址 :https://gitee.com/luocaca/boot-models.git

--

开局一张图。内容全靠编,bug全靠踩...


1.最原始spring boot 项目结构。如下

  现需要将commom   entity  mapper  service 抽出来,成立单独 的model

  抽出model 格式如下 (删除api内 commom   entity  mapper  service包 )

 新建   commom   entity  mapper  service 4大model

 api 依赖 4大model 

拆分后第一个问题

来来来。运行一下,看下会爆什么错。别他坑一波。肯定要看清楚(找不到类)

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'otherservice.PersonService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

-解决方法

在 model-service.src.main.java 下面新建 me.luocaca.model.service包,然后把PersonService拖过去

拖之前 拖之后

修改后,重新运行 ,ok

访问一下

数据库长这样,需要自己建一张

2.接下来介绍一下打包流程,以及将

打包结构要从最底层开始打包

也就是依赖关系过来一个一个model进行打包

本项目依赖关系梳理一下(models为最上层  打包方式为 pom )

由于本项目由2个可独立打包运行的web项目(api +web) 

+

 多个依赖(service mapper entity commom)项目组成

让我们简单粗暴的看一下依赖关系(一图堪比千言万语)

依赖关系图

看清楚没有 

依赖关系


api  —>  service  —>  mapper(dao)  —> entity  —>  commom( 最底层,不依赖上层 ) 

打包流程

commom —>entity  —> mapper(dao)  —> service  —> api  



先简单说明一下 什么是打包,再来说为什么要反着打包


install之后看看效果(找到maven仓库,看看文件结构)


可以看出,maven 打包的时候,会将第三方model 全部导入到jar包,而第三方的库都是网上下载到repository ,然后从仓库

中找到 .jar  .pom  .war  各种项目包,拷贝到 自己项目的  exec.jar 包里面,

→_→ 让我们看一下对比一下.jar 与  exec.jar的结构图 



.jar图


exec.jar图

看明白没。哈哈。exec.jar里面很多jar包。


看到自己写的model打包后的库没有

这里因为我已经打包过 commom  entity  mapper service 4个库,并且install 到maven 仓库,api才能被打包成功 


现在可以解释什么叫方向打包。从最底层,打包完整之后。再打包上层 model 

打包流程

commom —>entity  —> mapper(dao)  —> service  —> api  

假如 service 没有   package + install  直接  pai 进行 package +install ,会出现 找不到 model-service.0.0.1-SNAPSHOT.jar 

因为在我们新建一个model 的时候。maven里面是没有我们 service的包的。只有打包 并 install 之后,model-service.0.0.1-SNAPSHOT.jar 包


打包之前


打包之后

其他 mapper entity commom 同理。。。。。。。。。自己体会。先这样。。。。。不说了。下次说说jsp ,很多细节bug。要点出。

大神勿喷。

项目地址:https://gitee.com/luocaca/boot-models.git


应为篇幅原因,这里主要讲api项目创建到打包发布过程,等下会在独立一批文章,记录web项目引入jsp与打包发布流程的采坑过程。


相关文章

网友评论

    本文标题:记 从零搭建一个spring boot 多模块(models)

    本文链接:https://www.haomeiwen.com/subject/hvouhqtx.html