Stove 开源项目使用教程
1. 项目的目录结构及介绍
Stove 项目的目录结构如下:
stove/
├── src/
│ ├── main/
│ │ ├── kotlin/
│ │ │ ├── com/
│ │ │ │ ├── trendyol/
│ │ │ │ │ ├── stove/
│ │ │ │ │ │ ├── application/
│ │ │ │ │ │ ├── domain/
│ │ │ │ │ │ ├── infrastructure/
│ │ │ │ │ │ ├── presentation/
│ │ │ │ │ │ └── StoveApplication.kt
│ │ └── resources/
│ │ ├── application.yml
│ │ └── logback.xml
│ └── test/
│ ├── kotlin/
│ │ ├── com/
│ │ │ ├── trendyol/
│ │ │ │ ├── stove/
│ │ │ │ │ ├── integration/
│ │ │ │ │ └── unit/
│ └── resources/
│ └── application-test.yml
├── build.gradle.kts
├── settings.gradle.kts
└── README.md
目录结构介绍
-
src/main/kotlin/com/trendyol/stove/
: 主要代码目录,包含应用程序的核心逻辑。application/
: 应用程序层,处理业务逻辑。domain/
: 领域层,包含领域模型和业务规则。infrastructure/
: 基础设施层,处理外部依赖和持久化。presentation/
: 表示层,处理用户界面和API接口。StoveApplication.kt
: 应用程序的启动文件。
-
src/main/resources/
: 配置文件目录。application.yml
: 主配置文件。logback.xml
: 日志配置文件。
-
src/test/
: 测试代码目录。integration/
: 集成测试目录。unit/
: 单元测试目录。application-test.yml
: 测试配置文件。
-
build.gradle.kts
: 构建脚本。 -
settings.gradle.kts
: 项目设置文件。 -
README.md
: 项目说明文档。
2. 项目的启动文件介绍
StoveApplication.kt
是 Stove 项目的启动文件,位于 src/main/kotlin/com/trendyol/stove/
目录下。该文件包含应用程序的主类和启动逻辑。
package com.trendyol.stove
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
@SpringBootApplication
class StoveApplication
fun main(args: Array<String>) {
runApplication<StoveApplication>(*args)
}
启动文件介绍
@SpringBootApplication
: 这是一个组合注解,包含了@Configuration
,@EnableAutoConfiguration
, 和@ComponentScan
注解,用于自动配置和扫描组件。runApplication<StoveApplication>(*args)
: 启动 Spring Boot 应用程序。
3. 项目的配置文件介绍
Stove 项目的配置文件主要位于 src/main/resources/
目录下,包括 application.yml
和 logback.xml
。
application.yml
application.yml
是主配置文件,包含应用程序的配置信息,如数据库连接、服务器端口等。
server:
port: 8080
spring:
datasource:
url: jdbc:postgresql://localhost:5432/stove
username: postgres
password: password
logging:
level:
root: INFO
com.trendyol.stove: DEBUG
logback.xml
logback.xml
是日志配置文件,用于配置日志的输出格式和级别。
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">