From d0b19298e28a9b8b50c778704b77160f17e73950 Mon Sep 17 00:00:00 2001
From: jialh <1972868360@qq.com>
Date: 星期五, 17 四月 2026 18:20:38 +0800
Subject: [PATCH] 水电话费

---
 service-api/src/main/java/com/java110/api/ApiApplicationStart.java |   72 ++++++++++++++++++++++++++++++++++-
 1 files changed, 69 insertions(+), 3 deletions(-)

diff --git a/service-api/src/main/java/com/java110/api/ApiApplicationStart.java b/service-api/src/main/java/com/java110/api/ApiApplicationStart.java
index 79e94f9..b1e2c65 100755
--- a/service-api/src/main/java/com/java110/api/ApiApplicationStart.java
+++ b/service-api/src/main/java/com/java110/api/ApiApplicationStart.java
@@ -16,15 +16,24 @@
 package com.java110.api;
 
 import com.java110.core.annotation.Java110ListenerDiscovery;
+import com.java110.core.client.OutRestTemplate;
+import com.java110.core.context.Environment;
+import com.java110.core.trace.Java110FeignClientInterceptor;
+import com.java110.core.trace.Java110RestTemplateInterceptor;
 import com.java110.core.client.RestTemplate;
 import com.java110.core.event.service.api.ServiceDataFlowEventPublishing;
+import com.java110.core.log.LoggerFactory;
+import com.java110.doc.annotation.Java110ApiDocDiscovery;
+import com.java110.doc.registrar.ApiDocPublishing;
 import com.java110.service.init.ServiceStartInit;
 import io.swagger.annotations.ApiOperation;
+import okhttp3.ConnectionPool;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 import org.springframework.boot.web.client.RestTemplateBuilder;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@@ -32,6 +41,7 @@
 import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
+import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
 import org.springframework.http.converter.StringHttpMessageConverter;
 import org.springframework.scheduling.annotation.EnableAsync;
 import springfox.documentation.builders.ApiInfoBuilder;
@@ -42,7 +52,9 @@
 import springfox.documentation.spring.web.plugins.Docket;
 import springfox.documentation.swagger2.annotations.EnableSwagger2;
 
+import javax.annotation.Resource;
 import java.nio.charset.Charset;
+import java.util.concurrent.TimeUnit;
 
 
 /**
@@ -60,18 +72,40 @@
         "com.java110.api",
         "com.java110.core",
         "com.java110.config.properties.code",
+        "com.java110.doc",
 })
 @EnableDiscoveryClient
 @Java110ListenerDiscovery(listenerPublishClass = ServiceDataFlowEventPublishing.class,
         basePackages = {"com.java110.api.listener"})
 @EnableSwagger2
 //@EnableConfigurationProperties(EventProperties.class)
-@EnableFeignClients(basePackages = {"com.java110.intf"})
+@EnableFeignClients(basePackages = {
+        "com.java110.intf.acct",
+        "com.java110.intf.code",
+        "com.java110.intf.common",
+        "com.java110.intf.community",
+        "com.java110.intf.demo",
+        "com.java110.intf.dev",
+        "com.java110.intf.fee",
+        "com.java110.intf.goods",
+        "com.java110.intf.job",
+        "com.java110.intf.oa",
+        "com.java110.intf.order",
+        "com.java110.intf.report",
+        "com.java110.intf.store",
+        "com.java110.intf.user"
+})
 @EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
 @EnableAsync
+
+//鏂囨。
+@Java110ApiDocDiscovery(basePackages = {"com.java110.api.rest"},apiDocClass = ApiDocPublishing.class)
 public class ApiApplicationStart {
 
     private static Logger logger = LoggerFactory.getLogger(ApiApplicationStart.class);
+
+    @Resource
+    private Java110RestTemplateInterceptor java110RestTemplateInterceptor;
 
     /**
      * 瀹炰緥鍖朢estTemplate锛岄�氳繃@LoadBalanced娉ㄨВ寮�鍚潎琛¤礋杞借兘鍔�.
@@ -83,6 +117,13 @@
     public RestTemplate restTemplate() {
         StringHttpMessageConverter m = new StringHttpMessageConverter(Charset.forName("UTF-8"));
         RestTemplate restTemplate = new RestTemplateBuilder().additionalMessageConverters(m).build(RestTemplate.class);
+        restTemplate.getInterceptors().add(java110RestTemplateInterceptor);
+        //璁剧疆瓒呮椂鏃堕棿
+        HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory();
+        httpRequestFactory.setConnectionRequestTimeout(10000);
+        httpRequestFactory.setConnectTimeout(10000);
+        httpRequestFactory.setReadTimeout(10000);
+        restTemplate.setRequestFactory(httpRequestFactory);
         return restTemplate;
     }
 
@@ -94,7 +135,15 @@
     @Bean
     public RestTemplate outRestTemplate() {
         StringHttpMessageConverter m = new StringHttpMessageConverter(Charset.forName("UTF-8"));
-        RestTemplate restTemplate = new RestTemplateBuilder().additionalMessageConverters(m).build(RestTemplate.class);
+        OutRestTemplate restTemplate = new RestTemplateBuilder().additionalMessageConverters(m).build(OutRestTemplate.class);
+        restTemplate.getInterceptors().add(java110RestTemplateInterceptor);
+
+        //璁剧疆瓒呮椂鏃堕棿
+        HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory();
+        httpRequestFactory.setConnectionRequestTimeout(10000);
+        httpRequestFactory.setConnectTimeout(10000);
+        httpRequestFactory.setReadTimeout(10000);
+        restTemplate.setRequestFactory(httpRequestFactory);
         return restTemplate;
     }
 
@@ -110,6 +159,20 @@
                 .select()
                 .paths(PathSelectors.any())
                 .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).build();
+    }
+
+
+    @Bean
+    @ConditionalOnBean(Java110FeignClientInterceptor.class)
+    public okhttp3.OkHttpClient okHttpClient(@Autowired
+                                                     Java110FeignClientInterceptor okHttpLoggingInterceptor){
+        okhttp3.OkHttpClient.Builder ClientBuilder = new okhttp3.OkHttpClient.Builder()
+                .readTimeout(30, TimeUnit.SECONDS) //璇诲彇瓒呮椂
+                .connectTimeout(10, TimeUnit.SECONDS) //杩炴帴瓒呮椂
+                .writeTimeout(60, TimeUnit.SECONDS) //鍐欏叆瓒呮椂
+                .connectionPool(new ConnectionPool(10 /*maxIdleConnections*/, 3, TimeUnit.MINUTES))
+                .addInterceptor(okHttpLoggingInterceptor);
+        return ClientBuilder.build();
     }
 
     /**
@@ -135,6 +198,9 @@
             ApplicationContext context = SpringApplication.run(ApiApplicationStart.class, args);
             //鏈嶅姟鍚姩鍔犺浇
             ServiceStartInit.initSystemConfig(context);
+            Environment.setSystemStartWay(Environment.SPRING_CLOUD);
+            //鏈嶅姟鍚姩瀹屾垚
+            ServiceStartInit.printStartSuccessInfo();
         } catch (Throwable e) {
             logger.error("绯荤粺鍚姩澶辫触", e);
         }

--
Gitblit v1.8.0