# 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抛出的异常,统一进行封装处理。