# yuning-cloud
**Repository Path**: jameszhen/yuning-cloud
## Basic Information
- **Project Name**: yuning-cloud
- **Description**: springcloud 基础框架
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-11-10
- **Last Updated**: 2023-11-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: SpringCloud, SpringBoot, Java
## README
# Spring Cloud基础框架
## 开始使用
新建 Maven 项目,指向yuning-cloud-parent项目,并引入自定义starter依赖
```xml
yuning-cloud-parent
org.yuning.cloud
1.0-SNAPSHOT
org.yuning.cloud
yuning-cloud-spring-boot-starter
${yuning-cloud.version}
```
创建SpringBoot启动类,并增加```@EnableYuNingCloud```注解,开启自定义starter自动配置
```java
@SpringBootApplication
@EnableYuNingCloud
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
```
到此,基于基础框架的应用已经创建完毕。
## EnableYuNingCloud注解做了什么?
### 1、Spring容器上下文获取(ApplicationHolder)
在项目中,可以通过ApplicationHolder的静态方法获取Spring IOC容器,可以从容器中获取bean。
### 2、接口返回数据自动包装(ResponseDataWrapper)
针对feign的请求,返回接口原生的对象类型;如果不是来自feign的请求,默认全部当作来自应用的请求,此时框架会自动将接口返回的数据放入统一封装的消息体中。
> 如何区分是来自Feign的请求:框架会判断请求头中是否包含Feign请求的标记,header名称为:yn-feign-request,header的值为:yn-feign-request。如果不想开启自动返回体封装,可以通过```yuning.cloud.response-wrapper=false```关闭;如果某个接口不想开启返回数据自动包装,可以通过注解```@ResponseWrapperIgnore```关闭。
### 3、统一的异常处理(RestApiExceptionHandler)
针对Controller抛出的异常,统一进行封装处理。