# basic_template_not_login_back 开发基本模版——后端 # basic_template_not_login_back ## 项目介绍 `basic_template_not_login_back` 是一个包含后端的基础开发模板,旨在为快速搭建Web应用提供完整的技术栈支持。项目后端基于Spring Boot 3 + MyBatis + PostgreSQL构建,集成了国密算法(SM2/SM3/SM4)加解密功能、动态数据源、Redis缓存等核心功能,可直接作为中小型Web项目的开发起点。 ## 目录结构 ``` basic_template_not_login_back ├── bin # 批处理脚本 │ └── package.bat # 打包脚本 ├── src │ ├── main │ │ ├── java/com/gis/basic_template_not_login_back │ │ │ ├── config # 配置类 │ │ │ │ ├── CryptoProperties.java # 加解密配置属性 │ │ │ │ ├── DataSource.java # 数据源注解 │ │ │ │ ├── DataSourceAspect.java # 数据源切面 │ │ │ │ ├── DataSourceConfig.java # 数据源配置 │ │ │ │ ├── DataSourceContextHolder.java # 数据源上下文 │ │ │ │ ├── DynamicDataSource.java # 动态数据源 │ │ │ │ └── RedisConfig.java # Redis配置 │ │ │ ├── controller # 控制器层 │ │ │ │ ├── BaseController.java # 基础控制器 │ │ │ │ └── CryptoController.java # 加解密控制器 │ │ │ ├── domain # 领域对象 │ │ │ │ └── ApiResponse.java # 统一响应类 │ │ │ ├── filter # 过滤器 │ │ │ │ └── DecryptFilter.java # 解密过滤器 │ │ │ ├── mapper # MyBatis Mapper接口 │ │ │ ├── service/ex # 服务层异常 │ │ │ │ └── ServiceException.java # 业务异常类 │ │ │ ├── utils/safety # 安全工具类 │ │ │ │ ├── SM2Utils.java # SM2非对称加密工具 │ │ │ │ ├── SM3Utils.java # SM3摘要算法工具 │ │ │ │ └── SM4Utils.java # SM4对称加密工具 │ │ │ ├── vo # 视图对象 │ │ │ ├── wrapper # 请求响应包装 │ │ │ │ ├── DecryptRequestWrapper.java # 解密请求包装器 │ │ │ │ ├── EncryptResponseAdvice.java # 加密响应通知 │ │ │ │ └── Sm4KeyHolder.java # SM4密钥持有者 │ │ │ └── BasicTemplateNotLoginBackApplication.java # 启动类 │ │ └── resources # 资源文件 │ │ ├── application-database-dev.yml # 开发环境数据库配置 │ │ ├── application-database-prod.yml # 生产环境数据库配置 │ │ ├── application-dev.yml # 开发环境配置 │ │ ├── application-prod.yml # 生产环境配置 │ │ └── application.yml # 主配置文件 ├── LICENSE # 许可证 └── README.md # 介绍文件 ``` ### 环境要求 - JDK 17+ - Maven 3.6+ - PostgreSQL 数据库 - Redis 服务器 ### 项目克隆 ```bash git clone https://github.com/wzy-warehouse/basic_template_not_login_back.git cd basic_template_not_login_back ``` ### 配置说明 1. **数据库配置**: 修改 `src/main/resources/application-database-dev.yml` 中的数据库连接信息 2. **Redis配置**: 修改 `src/main/resources/application.yml` 中的Redis连接信息 3. **端口配置**: 在 `application.yml` 中修改 `server.port`(默认8080) ### 启动方式 #### 方式一:Maven命令启动 ```bash # 开发环境(默认) mvn spring-boot:run # 生产环境 mvn spring-boot:run -Pprod ``` #### 方式二:打包后运行 ```bash # 开发环境打包 mvn clean package # 生产环境打包 mvn clean package -Pprod # 运行jar包 java -jar target/basic_template_not_login_back.jar ``` #### 方式三:使用批处理脚本 ```bash # Windows系统 bin\package.bat ``` ## 配置文件说明 - `application.yml`: 主配置文件,公共配置 - `application-dev.yml`: 开发环境特定配置 - `application-prod.yml`: 生产环境特定配置 - `application-database-dev.yml`: 开发环境数据库配置 - `application-database-prod.yml`: 生产环境数据库配置 # geo_server相关说明 1. 版本:2.28.3 2. 安装: ``` docker pull docker.osgeo.org/geoserver:2.28.3 docker run -d \ --log-driver none \ --name geoserver \ -p 8080:4020 \ -e GEOSERVER_ADMIN_USER=admin \ -e GEOSERVER_ADMIN_PASSWORD=geoserver \ -v /mydata/geoserver/data_dir:/data_dir \ kartoza/geoserver ``` ## 许可证 本项目基于 [MIT License](LICENSE) 开源,详情请查看LICENSE文件。