Spring Boot 项目如何按模块进行拆分?( 三 )
DAO层项目中无非就是MApper映射的接口以及Mapper.xml文件,而数据库驱动在父项目已经引入了,所以我们只需要引入Model项目即可
yml配置spring:datasource:druid:username: usernamepassword: passworddriver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriverurl: databaseUrlinitial-size: 5min-idle: 5max-active: 20aop:auto: trueproxy-target-class: trueproject:version: '@project.version@'mybatis-plus:# resource目录 classpath:/mapper/*Mapper.xmlmapper-locations: classpath:/mapper/*Mapper.xml# 实体类 包扫描type-aliases-package: com.youxue.demo.modelglobal-config:db-config:db-type: sql_server#数据库大写下划线转换#capital-mode: trueconfiguration:# 数据库关闭缓存cache-enabled: false# 开启下划线转换驼峰命名 例 :(modelString userName, SQLselect user_name from userInfo)map-underscore-to-camel-case: truejdbc-type-for-null: 'null'# 开启控制台SQL打印log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
数据库相关配置完成之后我们直接创建Mapper接口就行了,如下:

文章插图
随后在service项目中创建对应的service以及impl:

文章插图
service层中我们需要依赖DAO层项目以及Model项目,并且可能会使用到一些工具类,所以还需要添加依赖:
<dependencies><dependency><groupId>com.youxue</groupId><artifactId>demo-common</artifactId><version>${project.version}</version></dependency><dependency><groupId>com.youxue</groupId><artifactId>demo-dao</artifactId><version>${project.version}</version></dependency><dependency><groupId>com.youxue</groupId><artifactId>demo-model</artifactId><version>${project.version}</version></dependency></dependencies>
因为我们的启动项目为Admin项目,所以我们所有的Controller都放在这个项目
文章插图
而Admin项目作为启动项目,接口调用的响应结果肯定需要依赖Model层以及Service层,所以我们把依赖加入进来
这里需要注意的是,Admin项目需要引入spring-boot-starter-Tomcat来提供访问支持
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency><dependency><groupId>com.youxue</groupId><artifactId>demo-model</artifactId><version>${project.version}</version></dependency><dependency><groupId>com.youxue</groupId><artifactId>demo-service</artifactId><version>${project.version}</version></dependency></dependencies>
重点来了!!!!启动项目(踩过的坑)@SpringBoot注解,@MapperScan注解 的包扫描机制
大家肯定都知道,需要写入对应的包路径,此时我的Application是这样的

文章插图
是不是看起来有模有样的,好像没啥问题子项目相互依赖,各方面的引入也没啥问题,然而启动后:

文章插图
啥玩意??? 数据库url属性没有配置?咱们可是在DAO项目中配置的好好的,可是为啥这里仿佛没有用?
其实是因为没有加载到DAO层项目的yml文件,导致了启动时无法识别到数据库相关配置导致Spring抛出了这个异常,那么怎么解决呢?
其实非常简单,我们都知道SpringBoot是支持多配置文件例如:application-dev.yml、application-prod.yml、application-local.yml
我们需要在Admin启动项目的配置文件中引入DAO层项目的数据库配置就行了

文章插图

文章插图
随即项目启动成功!是不是很棒,咱们来访问一下Controller层的接口查看一下效果

文章插图
访问时是不是感觉与单一架构差不多?然后我们其实已经将DAO、Service、Controller整个三层架构拆分为三个子项目,甚至将Model、Common都拆分为独立的子项目,作者当前公司就是拆分成这样的,是不是很细?
原文链接:
推荐阅读
- 有收入又高又靠谱的网络赚钱项目网络兼职吗?
- 6个农村养殖项目 农村养殖好项目
- 赫瑞瓦特大学战略项目管理专业课程设置及入学要求解析
- 赚钱好项目的判断方法
- 个人小本创业项目哪些前景发展比较好?
- 平昌冬奥会首金项目是什么
- 暴雪|微软加钱!暴雪《魔兽世界》手游项目复活?招聘角色概念美术师
- 最火的低成本创业项目,小成本创业好项目有哪些-
- 都有哪些致富项目值得推荐? 致富创业好项目
- 适合农村的项目有哪些,全程扶持创业!,农村适合那些创业项目-