# test2 **Repository Path**: ruirain/test2 ## Basic Information - **Project Name**: test2 - **Description**: springboot课程作业2 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-14 - **Last Updated**: 2026-06-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring Boot 配置管理演示项目 ## 项目简介 本项目是一个用于展示Spring Boot配置文件与配置注入的演示项目,帮助开发者掌握Spring Boot配置管理机制。 ## 功能特性 - **配置文件管理**:支持YAML和Properties两种格式的配置文件 - **配置注入展示**:展示@Value、@ConfigurationProperties、Environment三种配置注入方式 - **多环境配置**:支持dev和prod多环境配置,展示环境切换和配置差异 - **随机值配置**:展示配置文件中使用${random.*}语法生成随机值 - **Web页面验证**:通过Thymeleaf页面展示配置注入结果 ## 技术栈 - **框架**:Spring Boot 3.5.11 - **编程语言**:Java 17 - **构建工具**:Maven 3.9.6+ - **模板引擎**:Thymeleaf - **其他**:Lombok、Spring Boot Actuator ## 项目结构 ``` src/ ├── main/ │ ├── java/com/example/configdemo/ │ │ ├── ConfigDemoApplication.java # 主应用类 │ │ ├── controller/ # 控制器层 │ │ │ ├── ConfigController.java # 配置展示控制器 │ │ │ ├── EnvironmentController.java # 环境管理控制器 │ │ │ └── WebController.java # Web页面控制器 │ │ ├── service/ # 服务层 │ │ │ ├── ConfigService.java # 配置管理服务 │ │ │ └── EnvironmentService.java # 环境管理服务 │ │ ├── config/ # 配置类 │ │ │ ├── AppConfig.java # 应用配置类(@ConfigurationProperties) │ │ │ ├── DatabaseConfig.java # 数据库配置类(@Value) │ │ │ └── RandomConfig.java # 随机值配置类 │ │ ├── model/ # 数据模型 │ │ │ ├── ConfigProperty.java # 配置属性模型 │ │ │ └── EnvironmentInfo.java # 环境信息模型 │ │ └── util/ # 工具类 │ │ └── ConfigUtils.java # 配置工具类 │ └── resources/ │ ├── application.yml # 主配置文件(YAML) │ ├── application-dev.yml # 开发环境配置 │ ├── application-prod.yml # 生产环境配置 │ ├── config/ │ │ ├── app-config.yml # 应用配置 │ │ └── database-config.properties # 数据库配置(Properties) │ └── templates/ │ ├── index.html # 主页 │ ├── config-display.html # 配置展示页 │ ├── environment-switch.html # 环境切换页 │ └── random-display.html # 随机值展示页 └── test/ └── java/com/example/configdemo/ ├── ConfigDemoApplicationTests.java └── service/ ├── ConfigServiceTest.java └── EnvironmentServiceTest.java ``` ## 快速开始 ### 环境要求 - JDK 17+ - Maven 3.9.6+ ### 编译项目 ```bash mvn clean compile ``` ### 运行测试 ```bash mvn test ``` ### 启动应用 ```bash mvn spring-boot:run ``` 应用启动后,访问 http://localhost:8080/ 查看演示页面。 ## 功能演示 ### 1. 配置注入方式 #### @ConfigurationProperties(批量注入) ```java @Data @Configuration @ConfigurationProperties(prefix = "app") public class AppConfig { private String name; private String version; private String description; private ServerConfig server; } ``` #### @Value(单个注入) ```java @Data @Configuration public class DatabaseConfig { @Value("${database.url}") private String url; @Value("${database.timeout:30000}") private int timeout; } ``` #### Environment(动态获取) ```java @Service public class ConfigService { @Autowired private Environment environment; public String getProperty(String key) { return environment.getProperty(key); } } ``` ### 2. 多环境配置 在 `application.yml` 中激活环境: ```yaml spring: profiles: active: dev ``` 或通过命令行参数: ```bash mvn spring-boot:run -Dspring-boot.run.profiles=prod ``` ### 3. 随机值配置 ```yaml app: random: value: ${random.value} # 随机字符串 int: ${random.int} # 随机整数 long: ${random.long} # 随机长整数 uuid: ${random.uuid} # 随机UUID range: ${random.int[100,999]} # 指定范围随机数 ``` ## API接口 ### 配置相关接口 - `GET /api/config/properties` - 获取所有配置属性 - `GET /api/config/properties/{key}` - 根据键获取配置属性 - `GET /api/config/random` - 获取随机值配置 - `GET /api/config/environment` - 获取环境信息 ### 环境相关接口 - `GET /api/environment/current` - 获取当前环境信息 - `GET /api/environment/config` - 获取环境配置 - `GET /api/environment/differences` - 获取环境配置差异 - `GET /api/environment/switch-instructions` - 获取环境切换说明 ### Web页面 - `GET /` - 主页 - `GET /config` - 配置展示页面 - `GET /environment` - 环境切换页面 - `GET /random` - 随机值展示页面 ## 文档 - [需求文档](docs/desired.md) - 项目需求说明 - [需求规格说明书](docs/requirements.md) - 详细的需求规格说明 - [设计文档](docs/design.md) - 系统设计文档 - [PlantUML图表](docs/diagrams/) - UML图表 ## 配置说明 ### 配置文件 | 配置文件 | 格式 | 用途 | |---------|------|------| | application.yml | YAML | 主配置文件 | | application-dev.yml | YAML | 开发环境配置 | | application-prod.yml | YAML | 生产环境配置 | | config/app-config.yml | YAML | 应用配置 | | config/database-config.properties | Properties | 数据库配置 | ### 环境差异 | 配置项 | 开发环境(dev) | 生产环境(prod) | |--------|--------------|---------------| | 服务器端口 | 8080 | 8081 | | 数据库URL | localhost | prod-db.example.com | | 日志级别 | DEBUG | WARN | | 调试模式 | 开启 | 关闭 | | 最大连接数 | 10 | 1000 | ## 测试 项目包含以下测试类: - `ConfigDemoApplicationTests` - 应用上下文加载测试 - `ConfigServiceTest` - 配置服务测试 - `EnvironmentServiceTest` - 环境服务测试 运行所有测试: ```bash mvn test ``` ## 贡献 欢迎提交Issue和Pull Request。 ## 许可证 本项目采用MIT许可证。 ## 联系方式 如有问题,请通过以下方式联系: - 邮箱:your-email@example.com - GitHub Issues --- **Spring Boot 配置管理演示项目** © 2026