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目录。



目录
相关文章
|
10天前
|
Java Maven
SpringBoot用maven打出的jar只有几kb解决
SpringBoot用maven打出的jar只有几kb解决
82 0
|
9天前
|
Java Maven
SpringBoot项目的用maven插件打包报Test错误
SpringBoot项目的用maven插件打包报Test错误
|
3天前
|
Java Maven Windows
小唐开始学 Spring Boot——(1)IDEA 2021.3.2和Maven的安装配置
小唐开始学 Spring Boot——(1)IDEA 2021.3.2和Maven的安装配置
|
4天前
|
安全 JavaScript Java
装饰工程|装饰工程管理系统-项目立项子系统的设计与实现|基于Springboot的装饰工程管理系统设计与实现(源码+数据库+文档)
装饰工程|装饰工程管理系统-项目立项子系统的设计与实现|基于Springboot的装饰工程管理系统设计与实现(源码+数据库+文档)
13 0
|
10天前
|
Java Maven Kotlin
[AIGC] 请你写一遍博客介绍 “使用idea+kotinlin+springboot+maven 结合开发一个简单的接口“,输出markdown格式,用中文回答,请尽可能详细
[AIGC] 请你写一遍博客介绍 “使用idea+kotinlin+springboot+maven 结合开发一个简单的接口“,输出markdown格式,用中文回答,请尽可能详细
178 0
|
10天前
|
SQL Java 数据库连接
一文带你快速学会SpringBoot工程下MaBatis对数据的增删改查功能!
在SpringBoot项目中,已配置好Mybatis和Lombok,数据库tb_user有四条初始数据。需求是按ID删除用户。首先在UserMapper接口添加@Delete注解的删除方法,然后在单元测试类中测试此方法,成功删除ID为4的用户。删除方法可选返回影响的记录数,此处用void。参数名在#{...}内可自定义。通过配置mybatis日志在控制台显示SQL操作。
|
8天前
|
Java Apache Maven
Maven 项目文档
在C:/MVN下,使用命令`mvn archetype:generate -DgroupId=com.companyname.bank -DartifactId=consumerBanking -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false`创建Maven Java项目。确保`pom.xml`包含`maven-site-plugin`和`maven-project-info-reports-plugin`配置,版本分别至少为3.3和2.7,以避免`NoClassDefFoundError`。
|
7天前
|
Java Maven
Maven 构建 Java 项目
使用 Maven 的 archetype:generate 命令创建 Java 项目,如 `mvn archetype:generate` -DgroupId=com.companyname.bank -DartifactId=consumerBanking -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false,在 C:\MVN 下生成基于 maven 的 consumerBanking 项目。
|
10天前
|
Java Apache Maven
Maven 项目文档
在 `C:/MVN` 目录下创建 Maven 项目 `consumerBanking` 使用命令:`mvn archetype:generate -DgroupId=com.companyname.bank -DartifactId=consumerBanking -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false`。为解决 `mvn site` 命令执行时的 `NoClassDefFoundError`
|
1天前
|
Java 应用服务中间件 Apache
Tomcat的基本使用,如何用Maven创建Web项目、开发完成部署的Web项目
Tomcat的基本使用,如何用Maven创建Web项目、开发完成部署的Web项目
9 1

推荐镜像

更多