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 多模块项目开发的主要内容,如果未能解决你的问题,请参考以下文章