SpringBoot使用Maven建立多模块工程(二)

简介: SpringBoot使用Maven建立多模块工程(二)

项目多模块似乎已经很常见了,这里分享一下多模块构建过程。

环境:idea+SpringBoot2.0。

目标:父工程(打包pom),子工程(api-jar包,让web工程依赖)、子工程(hh-pojo-jar,让web工程依赖)以及web主工程(打war包)。

基本上本篇博客是在上一篇博文的基础上继续进行拓展。


【1】创建hh-pojo项目

步骤:父工程右键 – new Module – Maven 不使用模板(这个自行斟酌)。

创建后项目如下:



父工程的pom文件会自动添加module依赖:


添加pojo、dao和mapper.xml,如下图所示


【2】修改主项目hh-core

① 修改pom文件添加hh-pojo依赖

<!--引入api-->
<dependency>
    <groupId>com.jane</groupId>
    <artifactId>hh-api</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>
<!--引入pojo-->
<dependency>
    <groupId>com.jane</groupId>
    <artifactId>hh-pojo</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

② 主程序类添加注解@MapperScan({“com.jane.dao”})

@SpringBootApplication
@MapperScan({"com.jane.dao"})
public class HhCoreApplication {
    public static void main(String[] args) {
        SpringApplication.run(HhCoreApplication.class, args);
    }
}

③ yml添加配置

# 配置mybatis
mybatis:
  config-location: classpath:mybatis/mybatis-config.xml
  mapper-locations: classpath*:mybatis/mapper/*.xml

这里简要讲述一下classpath :

classpath:/xxx 和 classpath:xxx是一样的 。

.

classpath:xxx 和 classpath*:xxx是不一样的,前者表示引入一个,后者表示引入多个。

.

而且classpath*不仅包含class路径,还包括jar文件中(class路径)进行查找。

.

classpath:mapper/**/*.xml:查找类路径下mapper包下面所有子包中的所有xml。


④ hh-core项目添加自己的dao和mapper.xml



⑤ controller中编写代码测试两个到

@RestController
public class HelloController {
    @Autowired
    SysApkMapper apkMapper;
    @Autowired
    ISysApkExtendDao apkExtendDao;
    @RequestMapping("/hello")
    public Object hello(){
        String source = "janus";
        if (ToolUtils.isEmpty(source)){
           System.out.println("true");
        }
        SysApk sysApk = apkMapper.selectByPrimaryKey(1L);
        SysApk sysApkByType = apkExtendDao.getSysApkByType(1);
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("apkMapper",sysApk);
        jsonObject.put("apkExtendDao",sysApkByType);
        return jsonObject;
    }
}

⑥ 使用浏览器进行测试

如下图所示,可以完美从两个不同项目不同dao中拿到数据:

【3】out目录是个什么鬼

out存放的是该项目下所有Module(模块)的编译结果。 target存放的是单个Module的编译结果。

如果为某个Module指定了编译结果的路径,则不会再输出到out文件夹中了。

在Project Structure中的Project选项卡中可以设置Project compiler output的目录。

在Modules中选择某一个模块后,在右侧的Paths选项卡中可以设置该模块的Compiler output目录。



目录
相关文章
|
2月前
|
Java 关系型数据库 MySQL
Maven——创建 Spring Boot项目
Maven 是一个项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,简化了项目的构建和管理过程。其核心功能包括项目构建和依赖管理,支持创建、编译、测试、打包和发布项目。Maven 仓库分为本地仓库和远程仓库,远程仓库包括中央仓库、私服和其他公共库。此外,文档还介绍了如何创建第一个 SpringBoot 项目并实现简单的 HTTP 请求响应。
188 1
Maven——创建 Spring Boot项目
|
2月前
|
Java 关系型数据库 MySQL
如何使用 maven 创建一个 Spring Boot项目
Maven 是一个强大的项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,提高开发效率。其核心功能包括项目构建和依赖管理。项目构建支持编译、测试、打包和发布等流程,而依赖管理则通过中央仓库、本地仓库和私有服务器获取和管理项目依赖。示例中展示了如何创建第一个 SpringBoot 项目并实现简单接口。
55 1
如何使用 maven 创建一个 Spring Boot项目
|
2月前
|
Java 应用服务中间件 Maven
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
368 0
|
4月前
|
Java Maven Spring
SpringBoot 系列之 Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resource
这篇文章描述了在使用Maven构建Spring Boot项目时遇到的`maven-resources-plugin`插件版本问题导致的编译失败,并提供了通过修改插件版本至3.1.0来解决这个问题的方法。
SpringBoot 系列之 Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resource
|
2月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
186 1
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
118 62
|
12天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
72 13
|
20天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,帮助开发者提高开发效率和应用的可维护性。
92 2