se-collect/src/main/resources/application-prod.yml
@@ -67,6 +67,23 @@ mybatis-plus: config-location: classpath:mybatis.xml mapper-locations: classpath:mapper/**/*.xml # springdocé ç½® springdoc: gatewayUrl: /${spring.application.name} api-docs: # æ¯å¦å¼å¯æ¥å£ææ¡£ enabled: true info: # æ é¢ title: 'æ°æ®æ±éæ¥å£ææ¡£' # æè¿° description: 'æ°æ®æ±éæ¥å£æè¿°' # ä½è ä¿¡æ¯ contact: name: wuww url: https://www.smartearth.cn/ logging: config: classpath:logback.xml se-common/src/main/java/com/terra/common/config/SpringDocAutoConfiguration.java
@@ -30,8 +30,8 @@ { return new OpenAPI().components(new Components() // 设置认è¯ç请æ±å¤´ .addSecuritySchemes("apikey", securityScheme())) .addSecurityItem(new SecurityRequirement().addList("apikey")) .addSecuritySchemes("token", securityScheme())) // apikey .addSecurityItem(new SecurityRequirement().addList("token")) // apikey .info(convertInfo(properties.getInfo())) .servers(servers(properties.getGatewayUrl())); } @@ -39,9 +39,9 @@ public SecurityScheme securityScheme() { return new SecurityScheme().type(SecurityScheme.Type.APIKEY) .name("Authorization") .in(SecurityScheme.In.HEADER) .scheme("Bearer"); .name("token") // Authorization .in(SecurityScheme.In.HEADER) .scheme(""); // Bearer } private Info convertInfo(SpringDocProperties.InfoProperties infoProperties) se-gateway/src/main/java/com/terra/gateway/config/SpringDocConfig.java
@@ -44,51 +44,49 @@ /** * Swaggerææ¡£æ³¨åå¨ */ class SwaggerDocRegister extends Subscriber<InstancesChangeEvent> { class SwaggerDocRegister extends Subscriber<InstancesChangeEvent> { @Autowired private SwaggerUiConfigProperties swaggerUiConfigProperties; @Autowired private DiscoveryClient discoveryClient; private final static String[] EXCLUDE_ROUTES = new String[] { "se-gateway" }; private final static String[] EXCLUDE_ROUTES = new String[]{"se-gateway"}; public SwaggerDocRegister(SwaggerUiConfigProperties swaggerUiConfigProperties, DiscoveryClient discoveryClient) { public SwaggerDocRegister(SwaggerUiConfigProperties swaggerUiConfigProperties, DiscoveryClient discoveryClient) { this.swaggerUiConfigProperties = swaggerUiConfigProperties; this.discoveryClient = discoveryClient; } /** * äºä»¶åè°æ¹æ³ï¼å¤çInstancesChangeEventäºä»¶ * * @param event äºä»¶å¯¹è±¡ */ @Override public void onEvent(InstancesChangeEvent event) { public void onEvent(InstancesChangeEvent event) { Set<AbstractSwaggerUiConfigProperties.SwaggerUrl> swaggerUrlSet = discoveryClient.getServices() .stream() .flatMap(serviceId -> discoveryClient.getInstances(serviceId).stream()) .filter(instance -> !StringUtils.equalsAnyIgnoreCase(instance.getServiceId(), EXCLUDE_ROUTES)) .map(instance -> { AbstractSwaggerUiConfigProperties.SwaggerUrl swaggerUrl = new AbstractSwaggerUiConfigProperties.SwaggerUrl(); swaggerUrl.setName(instance.getServiceId()); swaggerUrl.setUrl(String.format("/%s/v3/api-docs", instance.getServiceId())); return swaggerUrl; }) .collect(Collectors.toSet()); .stream() .flatMap(serviceId -> discoveryClient.getInstances(serviceId).stream()) .filter(instance -> !StringUtils.equalsAnyIgnoreCase(instance.getServiceId(), EXCLUDE_ROUTES)) .map(instance -> { AbstractSwaggerUiConfigProperties.SwaggerUrl swaggerUrl = new AbstractSwaggerUiConfigProperties.SwaggerUrl(); swaggerUrl.setName(instance.getServiceId()); swaggerUrl.setUrl(String.format("/%s/v3/api-docs", instance.getServiceId())); return swaggerUrl; }) .collect(Collectors.toSet()); swaggerUiConfigProperties.setUrls(swaggerUrlSet); } /** * 订é ç±»åæ¹æ³ï¼è¿å订é çäºä»¶ç±»å * * @return 订é çäºä»¶ç±»å */ @Override public Class<? extends Event> subscribeType() { public Class<? extends Event> subscribeType() { return InstancesChangeEvent.class; } } se-system/pom.xml
@@ -58,11 +58,11 @@ </dependency> <!--mybatis-plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency> <!-- <dependency>--> <!-- <groupId>com.baomidou</groupId>--> <!-- <artifactId>mybatis-plus-boot-starter</artifactId>--> <!-- <version>3.5.1</version>--> <!-- </dependency>--> <!--redis--> <dependency> @@ -87,12 +87,11 @@ <artifactId>spring-boot-starter-aop</artifactId> </dependency> <!--fastjson--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency> <!-- Alibaba Fastjson --> <!-- <dependency>--> <!-- <groupId>com.alibaba.fastjson2</groupId>--> <!-- <artifactId>fastjson2</artifactId>--> <!-- </dependency>--> <!--æ´ådruidæ°æ®æº--> <dependency> @@ -114,11 +113,11 @@ </dependency> <!-- SpringDoc webmvc --> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-ui</artifactId> <version>${springdoc.version}</version> </dependency> <!-- <dependency>--> <!-- <groupId>org.springdoc</groupId>--> <!-- <artifactId>springdoc-openapi-ui</artifactId>--> <!-- <version>${springdoc.version}</version>--> <!-- </dependency>--> <!--httpclient--> <dependency> @@ -221,12 +220,12 @@ </dependency> <!-- se-common --> <!--dependency> <dependency> <groupId>com.terra</groupId> <artifactId>se-common</artifactId> <version>1.0.2</version> <scope>compile</scope> </dependency--> </dependency> </dependencies> se-system/src/main/java/com/terra/system/config/MybatisPlusConfig.java
ÎļþÒÑɾ³ý se-system/src/main/java/com/terra/system/config/WebConfig.java
@@ -3,16 +3,23 @@ import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.support.config.FastJsonConfig; import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; import com.alibaba.fastjson2.JSON; import com.terra.system.interceptor.AuthInterceptor; import com.terra.system.service.all.SysService; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; import org.springframework.http.MediaType; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.util.AntPathMatcher; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.servlet.config.annotation.*; import reactor.core.Exceptions; import java.io.IOException; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.Collections; @@ -50,7 +57,8 @@ @Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); //registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); registry.addResourceHandler("/druid/**").addResourceLocations("classpath:/META-INF/resources/druid/"); registry.addResourceHandler("/**").addResourceLocations("classpath:/static/"); super.addResourceHandlers(registry); @@ -87,6 +95,7 @@ protected void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(getAuthBean()) // .excludePathPatterns("/swagger", "/webjars/**", "/v2/**", "/sign/**") //.excludePathPatterns("/v3/api-docs") .addPathPatterns("/**"); super.addInterceptors(registry); } @@ -96,7 +105,24 @@ */ @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); //FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter() { @Override protected void writeInternal(Object object, org.springframework.http.HttpOutputMessage outputMessage) throws IOException, org.springframework.http.converter.HttpMessageNotWritableException { ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); if (attributes != null) { String requestURI = attributes.getRequest().getRequestURI(); if ("/v3/api-docs".equals(requestURI)) { // æé¤ /v3/api-docs è·¯å¾ // 使ç¨é»è®¤ç JSON åºååï¼å¦ Jacksonï¼ï¼è¿ééè¦æå¨å¤çï¼ä¸è½ç´æ¥è°ç¨ super.writeInternal outputMessage.getBody().write(String.valueOf(object).getBytes()); return; } } super.writeInternal(object, outputMessage); // å ¶ä»è·¯å¾ä½¿ç¨ Fastjson2 å¤ç } }; FastJsonConfig config = new FastJsonConfig(); config.setSerializerFeatures( SerializerFeature.WriteNullListAsEmpty, se-system/src/main/java/com/terra/system/extend/CustomizedSqlInjector.java
ÎļþÒÑɾ³ý se-system/src/main/java/com/terra/system/extend/InsertBatchMethod.java
ÎļþÒÑɾ³ý se-system/src/main/java/com/terra/system/extend/UpdateBatchMethod.java
ÎļþÒÑɾ³ý se-system/src/main/resources/application-prod.yml
@@ -85,6 +85,23 @@ mybatis-plus: type-aliases-package: com.terra.system.entity mapper-locations: classpath:mapper/**/*.xml # springdocé ç½® springdoc: gatewayUrl: /${spring.application.name} api-docs: # æ¯å¦å¼å¯æ¥å£ææ¡£ enabled: true info: # æ é¢ title: 'ç³»ç»æ¨¡åæ¥å£ææ¡£' # æè¿° description: 'ç³»ç»æ¨¡åæ¥å£æè¿°' # ä½è ä¿¡æ¯ contact: name: wuww url: https://www.smartearth.cn/ # logging logging: @@ -99,8 +116,6 @@ # ç³»ç»é ç½® sys: # å¯ç¨swagger swaggerEnable: true # èªå¨æ¥è¯¢ autoQuery: 0 # 管çåID sm.txt
@@ -7,7 +7,11 @@ springfox: documentation: swagger-ui: enabled: false auto-startup: false ------------------------------------------------------------------- åè½æ¨¡åï¼æ¯æç¬ç«é¨ç½² se-commonï¼ éç¨æ¨¡å se-gatewayï¼8001ï¼ç³»ç»ç½å ³