当前位置: 首页 > 知识库问答 >
问题:

使用Spring数据的Spring boot maven多模块项目

解宏扬
2023-03-14
parent project
|---pom.xml  -> This is a parent pom.
|---common
    |---pom.xml
    |---src
|---model
    |---pom.xml
    |---src
|---service(Interface only)
    |---pom.xml
    |---src
|---service Impl(Implementations only)
    |---pom.xml
    |---src
|---repository(Spring Data)
    |---pom.xml
    |---src
|---web
    |---pom.xml
    |---src

我的父pom.xml如下所示:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                             http://maven.apache.org/maven-v4_0_0.xsd">

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.3.RELEASE</version>
        <relativePath />
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.test</groupId>
    <artifactId>test-parent</artifactId>
    <packaging>pom</packaging>
    <version>1.0.0-SNAPSHOT</version>
    <name>Test Project</name>
    <description>Test components</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>      
        <version.spring.boot>1.4.3.RELEASE</version.spring.boot>
        <version.mysql.connector>6.0.5</version.mysql.connector>
        <version.slf4j>1.7.21</version.slf4j>

    </properties>

    <dependencyManagement>
        <dependencies>
            <!-- Spring -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
                <version>${version.spring.boot}</version>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${version.slf4j}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <modules>
    <module>cc-model</module>
    <module>cc-common</module>
    <module>cc-dbrepo</module>
    <module>cc-dbservice</module>
    <module>cc-dbserviceimpl</module>
    <module>cc-web</module>
</modules>

</project>

Web中的Application.java:

@SpringBootApplication(scanBasePackages = 
            { "com.test.dbrepo.service.impl", "com.test.db.service", "com.test.dbrepo.repository" })
public class DialerApplication {

web pom.xml:

<dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>

       <dependency>
        <groupId>com.cc.dialer</groupId>
        <artifactId>cc-dbservice</artifactId>
        <version>${project.version}</version>
    </dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

启动时未发现服务impl模块中的bean。

谢谢

共有1个答案

万俟棋
2023-03-14

未根据您的配置扫描包com.cc.test.db.service。

加进去。

您的注释应该如下所示:

@SpringBootApplication(scanBasePackages = 
            { "com.test.dbrepo.service.impl", "com.test.db.service", "com.test.dbrepo.repository", "com.cc.test.db.service" })
 类似资料:
  • 我有以下Maven项目结构: i、 e.Project1、Project2和Project3在目录结构上是对等的,它们都是Spring Boot应用程序(JAR)。我想将Project2和Project3视为Project1的子项,而不改变目录结构。当我在父项目上执行相同的maven命令时,我需要在子项目上过渡地执行所有maven命令。而且最重要的是,我应该能够将它们打包到一个JAR文件中。我在谷

  • 我对Java没有太多的经验,特别是多模块项目,所以我不能从多模块项目中创建数据流模板。 要从Dataflow模板生成模板,必须使用如下内容: 这对我来说在一个简单的Java项目中工作得很好,但目前我需要在一个具有以下简化结构的项目中使用以下内容: 我已执行mvn包,没有任何错误,输出如下: 我有以下错误: 如果我从根目录执行它: 我还试着用: 我应该执行哪个命令来构建模板? 主pom.xml文件

  • 我正在尝试创建一个多模块的项目,包含两个模块,核心和Web。它们都是我在Spring Initialzer上生成的Spring Boot项目。我设置了Maven POM文件,但在部署它时遇到了问题。然而,我很困惑配置是如何工作的。 核心模块将包含域对象/实体、Spring数据JPA存储库、服务,并将打包为一个JAR。Web模块将具有Spring Security、控制器和视图。它将被包装成一场战争

  • 我已经找了很长时间的答案,但并没有运气,所以我决定张贴它。最近,我尝试用父pom制作一些简单的应用程序,以轻松管理我的依赖项版本。因此,我在我的父母pom中添加了依赖项,添加了第一个简单的依赖项,我得出了: 然后我做了第一个孩子项目: 我确实试着建造,但最终 现在我不明白为什么Spring Boot依赖项被正确地提取出来,但spring cloud不是,如果我将dependencymanageme

  • 我设计了一个maven多模块项目,就像下面这个帖子的第一个答案:Multi-module maven with Spring Boot 现在我想要一个通用的maven模块,它可以包含一些供多个微服务使用的模型。如果我将这个公共项目作为第一级父pom的子项目(这样所有由引导注入的依赖项(如jpa、jackson等)都可用于公共项目),那么STS/Spring将它检测为引导应用程序,并抱怨maven

  • 我正在尝试创建一个多模块spring boot项目(Struts2/Ibatis项目的重写),我希望如下所示: 我如何设置每个pom,以便: 非常感谢。