源码结构

1. 源码结构

.
├─common
│   ├─src
│   │   └─main
│   │       └─java
│   │           └─com.acrel  
│   │               ├─api         
│   │               ├─entity      
│   │               ├─enums       
│   │               ├─exceptions  
│   │               └─utils       
│   └─pom.xml  ①
├─service-system
│   ├─src
│   │   ├─main
│   │   │   └─java
│   │   │       └─com.acrel
│   │   │           ├─sys
│   │   │           └─ServiceSystemApplication
│   │   └─resources  
│   │       ├─mybatis
│   │       ├─application.yml  ④
│   │       └─bootstrap.yml    ⑤
│   └─pom.xml  ②
└─pom.xml      ③

2. pom.xml

整体源码结构如上图所示,可以看到其中包含了①②③共3处pom.xml,说明这整体是一个maven工程,其中包含2个子模块common和service-system,也都是maven工程。

其中的③对整个项目依赖的maven包的版本进行了统一管理

<properties>
    <acrel-basic.version>2.0.30</acrel-basic.version>
    ...
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.acrel</groupId>
            <artifactId>acrel-basic</artifactId>
            <version>${acrel-basic.version}</version>
        </dependency>
    </dependencies>
    ...
</dependencyManagement>

注:artifactId: acrel-basic是对业务类应用开发所需要用到的常见实体、通用接口、注解、工具类等进行的封装,开发时可以直接调用其中的类和接口,提高开发效率。

①②根据模块的具体需要,声明了依赖的maven包,因为继承了③,此处直接③中声明的版本,无需再次声明。

<dependencies>
    <dependency>
        <groupId>com.acrel</groupId>
        <artifactId>acrel-basic</artifactId>
    </dependency>
    ...
</dependencies>

3. common 和 service-system

之所以要将项目拆分为common和service-system两个模块,是因为需要同时兼顾单节点应用和分布式应用的开发。

从 pom.xml② 中可以看到,service-system模块将common模块作为依赖引入。当开发单应用时,只需要基于service-system模块进行开发;而当需要进行分布式开发时,只需要在项目中新开一个模块(例如:service-charging)即可,然后通过feign进行模块间的服务访问。

4. 配置文件

项目包含2个配置文件,bootstrap.ymlapplication.yml

当进行单应用开发时,使用application.yml,进行分布式开发时,使用bootstrap.yml,然后将application.yml中的内容配置到nacos中,并且删除application.yml,否则项目仍旧会以本地的application.yml文件启动。

results matching ""

    No results matching ""