1.1springboot 多模块项目开发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.1springboot 多模块项目开发相关的知识,希望对你有一定的参考价值。

参考技术A 云原生的微服务架构天然需要将应用拆分成松耦合的多模块,通过模块的组合实现各种微服务。本文讲述如何在springboot框架下开发多模块项目。

创建Springboot项目navlange作为多模块项目的父工程,删除不需要的文件和目录如下:

考虑到父工程不需要编译,修改配置文件pom.xml的packaging为pom如pom.xml低5行所示。

在父工程目录下新建Springboot项目auth(权限管理)作为navlange父项目的子模块,如下图所示:

Spring JPA 多模块项目

【中文标题】Spring JPA 多模块项目【英文标题】:Spring JPA multi module project 【发布时间】:2022-01-24 01:50:44 【问题描述】:

我正在尝试创建一个 Spring 多模块项目。 模块 1,处理应用程序启动和基本的 Web MVC 服务。 模块 2,适用于 MultiTentanted Jpa

模块 2,作为独立应用程序运行良好,但是当我将它作为依赖项包含在模块 1 中时,我收到以下错误,Caused by: org.springframework.data.mapping.MappingException: couldn' t 查找类型类 uk.rteksoft.tenantservices.tenant.model.Role 的 PersistentEntity! 我假设我在某处的配置 bean 中遗漏了一些东西,但无法找出我需要做些什么来完成这项工作。 我有一个包含模块 1 和模块 2 的父 pom。 请说我是否需要发布任何配置或其他文件。 谢谢 约翰

【问题讨论】:

【参考方案1】:

你需要从注入的模块中扫描基础包,否则spring不会为注入的模块创建任何bean,你将面临依赖错误。

在主应用的 SpringBootApplication 注解中使用 scanBasePackages 值(您可以根据需要扫描包数组)

例如:

@SpringBootApplication(scanBasePackages = "com.example.multimodule")

这是基于多个示例应用程序的示例link

ComponentScan 是另一种扫描多模块包的方法;

@ComponentScan(value = "com.example.multimodule")

还可以使用以下注释来扫描您的实体和存储库

@EntityScan("你的实体基础包")

@EnableJpaRepositories("你的仓库基础包")

【讨论】:

我已经尝试过@ComponentScan 并将scanBasePackages 添加到SpringBootApplication 注释以及所有相关的包名称,但仍然有相同的错误。 @JReynolds 使用 @EntityScan("你的实体包") @EnableJpaRepositories("你的存储库基础包") 我已经尝试了这两个注释,存储库和 EntityManagerFactories 正在正确初始化,为持久性单元“tenantdb-persistence-unit”初始化了 JPA EntityManagerFactory,它在模块中2

以上是关于1.1springboot 多模块项目开发的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot创建maven多模块项目

SpringBootWeb开发

第二章:springboot 整合JSP(打JAR针对多模块项目)

SpringBoot之多模块项目

spring boot 多模块在tomcat上运行

SpringBoot+Maven 多模块项目的构建运行打包