跳到主要内容

# 如何开发单体应用

本文介绍如何基于盘古开发框架开发一个单体分层架构的应用。文中所述仅为搭建一个单体应用的基本框架，增加配置中心、数据持久化、缓存等能力请参考开发指南的相关章节。

## 背景​

软件架构的本质是一种在特定资源背景下折中平衡后追求业务增长的一门艺术。虽然盘古框架的标准姿势是分布式微服务架构开发，但决定技术开发架构选型的因素很多，单体应用依旧有很多应用场景。因此，盘古框架不会把用户绑定到一个固定的开发范式和架构上，而是支持随意组合、自动装配、灵活插拔。既能构建大并发高可用的分布式微服务架构也能搭建小巧的垂直单体分层架构。

## 安装相关盘古模块​

- 盘古 Parent
- 基础模块
- Web模块

    <parent>
        <groupId>com.gitee.pulanos.pangu</groupId>
        <artifactId>pangu-parent</artifactId>
        <version>latest.version.xxx</version>
        <relativePath/>
    </parent>

    <dependency>
        <groupId>com.gitee.pulanos.pangu</groupId>
        <artifactId>pangu-spring-boot-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>com.gitee.pulanos.pangu</groupId>
        <artifactId>pangu-web-spring-boot-starter</artifactId>
    </dependency>

说明

这里仅演示了最简模块组合。如果需要数据持久化、消息队列等功能，请根据开发指南相关章节继续安装相关模块依赖即可。

## 本地配置​

> 为便于理解，本文基于本地配置的方式编写。若改为标准的 Nacos 配置中心模式，请参阅：配置中心 章节。

    spring.application.name=pangu-examples-empty-web
    spring.jackson.time-zone=GMT+8

    logging.level.root=INFO
    logging.level.com.gitee.pulanos.pangu=INFO

## 启动入口​

    @SpringBootApplication
    public class EmptyWebPanguApplication {
        public static void main(String[] args) {
            PanGuApplicationBuilder.init(EmptyWebPanguApplication.class).run(args);
        }
    }

## 本文相关范例源码​

- pangu-examples-empty-web：单体分层Web应用范例

## 下一步​

继续阅读其它章节获取你想要的答案或通过我们的 开发者社区 寻求更多帮助。