|
|
@@ -1,11 +1,26 @@
|
|
|
package com.mrxu.framework.boot.config;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
|
|
|
import com.mrxu.framework.boot.feign.FeignRequestInterceptor;
|
|
|
import feign.RequestInterceptor;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
|
|
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
+import org.springframework.context.annotation.Import;
|
|
|
+import org.springframework.transaction.annotation.EnableTransactionManagement;
|
|
|
+import springfox.documentation.builders.ApiInfoBuilder;
|
|
|
+import springfox.documentation.builders.PathSelectors;
|
|
|
+import springfox.documentation.builders.RequestHandlerSelectors;
|
|
|
+import springfox.documentation.service.ApiInfo;
|
|
|
+import springfox.documentation.service.Contact;
|
|
|
+import springfox.documentation.spi.DocumentationType;
|
|
|
+import springfox.documentation.spring.web.plugins.Docket;
|
|
|
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
|
|
|
+
|
|
|
+import java.lang.annotation.*;
|
|
|
|
|
|
/**
|
|
|
* 功能概要:[] <br>
|
|
|
@@ -27,4 +42,72 @@ public class FeignAutoConfiguration {
|
|
|
return new FeignRequestInterceptor();
|
|
|
}
|
|
|
|
|
|
+ @EnableTransactionManagement
|
|
|
+ @Configuration
|
|
|
+ public static class MybatisPlusConfig {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 分页插件
|
|
|
+ */
|
|
|
+ @Bean
|
|
|
+ public PaginationInterceptor paginationInterceptor() {
|
|
|
+ return new PaginationInterceptor().setLimit(1000);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Retention(RetentionPolicy.RUNTIME)
|
|
|
+ @Target({ElementType.TYPE})
|
|
|
+ @Documented
|
|
|
+ @Import({MybatisPlusConfig.class})
|
|
|
+ public @interface EnableMybatisPlus {
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Configuration
|
|
|
+ @EnableSwagger2
|
|
|
+ @ConditionalOnClass(EnableSwagger2.class)
|
|
|
+ @ConditionalOnProperty(value = "swagger.enabled")
|
|
|
+ public static class SwaggerConfig {
|
|
|
+
|
|
|
+ @Value("${swagger.basePackage:com.mrxu}")
|
|
|
+ private String basePackage;
|
|
|
+
|
|
|
+ @Value("${swagger.version:1.0}")
|
|
|
+ private String version ;
|
|
|
+
|
|
|
+ @Value("${swagger.title:Rest API 接口}")
|
|
|
+ private String title ;
|
|
|
+
|
|
|
+ @Value("${swagger.description:Rest API 接口}")
|
|
|
+ private String description ;
|
|
|
+
|
|
|
+ @Bean
|
|
|
+ @ConditionalOnMissingBean
|
|
|
+ public Docket api() {
|
|
|
+ return new Docket(DocumentationType.SWAGGER_2)
|
|
|
+ .select()
|
|
|
+ .apis(RequestHandlerSelectors.basePackage(basePackage))
|
|
|
+ .paths(PathSelectors.any())
|
|
|
+ .build()
|
|
|
+ .apiInfo(apiInfo());
|
|
|
+ }
|
|
|
+
|
|
|
+ private ApiInfo apiInfo() {
|
|
|
+ ApiInfoBuilder apiInfoBuilder = new ApiInfoBuilder();
|
|
|
+ apiInfoBuilder.title(title);
|
|
|
+ apiInfoBuilder.description(description);
|
|
|
+ apiInfoBuilder.license("爱小灶");
|
|
|
+ apiInfoBuilder.version(version);
|
|
|
+ apiInfoBuilder.contact(new Contact("爱小灶-研发中心", "", ""));
|
|
|
+ return apiInfoBuilder.build();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Retention(RetentionPolicy.RUNTIME)
|
|
|
+ @Target({ElementType.TYPE})
|
|
|
+ @Documented
|
|
|
+ @Import({SwaggerConfig.class})
|
|
|
+ public @interface Enable {
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|