chengf
2025-09-15 ebf6117ccea680eae81a91f2fa355ce3a76eb621
springboot/src/main/java/com/java110/boot/BootApplicationStart.java
@@ -16,6 +16,7 @@
package com.java110.boot;
import com.java110.core.annotation.Java110CmdDiscovery;
import com.java110.core.client.OutRestTemplate;
import com.java110.core.client.RestTemplate;
import com.java110.core.context.Environment;
import com.java110.core.event.cmd.ServiceCmdEventPublishing;
@@ -28,6 +29,8 @@
import com.java110.doc.registrar.ApiDocPublishing;
import com.java110.intf.dev.ICacheV1InnerServiceSMO;
import com.java110.service.init.ServiceStartInit;
import com.java110.utils.cache.MappingCache;
import com.java110.utils.constant.MappingConstant;
import com.java110.utils.factory.ApplicationContextFactory;
import com.java110.utils.util.StringUtil;
import okhttp3.ConnectionPool;
@@ -41,8 +44,10 @@
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
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 org.springframework.scheduling.annotation.EnableScheduling;
import javax.annotation.Resource;
import java.nio.charset.Charset;
@@ -53,22 +58,6 @@
 * 这个服务是将 系统部署为spring boot版
 * 如果是spring cloud 微服务部署 不用启动这个类
 * <p>
 * excludeName = {
 * "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"
 * }
 *
 * @version v0.1
 * @auther com.java110.wuxw
@@ -93,11 +82,15 @@
        "com.java110.store",
        "com.java110.user",
        "com.java110.doc",
        "com.java110.scm",
        "com.java110.api",
        "com.java110.boot"
},
        exclude = {LiquibaseAutoConfiguration.class,
                org.activiti.spring.boot.SecurityAutoConfiguration.class,
                org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class}
                org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class,
                com.github.pagehelper.autoconfigure.MapperAutoConfiguration.class
        }
)
@Java110CmdDiscovery(cmdPublishClass = ServiceCmdEventPublishing.class,
@@ -112,11 +105,13 @@
                "com.java110.order.cmd",
                "com.java110.report.cmd",
                "com.java110.store.cmd",
                "com.java110.scm.cmd",
                "com.java110.user.cmd"
        })
@EnableScheduling
@EnableAsync
//文档
@Java110ApiDocDiscovery(basePackages = {"com.java110.boot.rest"},apiDocClass = ApiDocPublishing.class)
@Java110ApiDocDiscovery(basePackages = {"com.java110.boot.rest"}, apiDocClass = ApiDocPublishing.class)
@Java110CmdDocDiscovery(basePackages = {
        "com.java110.acct.cmd",
        "com.java110.acct.payment.business",
@@ -129,6 +124,7 @@
        "com.java110.order.cmd",
        "com.java110.report.cmd",
        "com.java110.store.cmd",
        "com.java110.scm.cmd",
        "com.java110.user.cmd"
},
        cmdDocClass = ApiDocCmdPublishing.class)
@@ -145,9 +141,26 @@
     * @return restTemplate
     */
    @Bean
    public RestTemplate outRestTemplate() {
    public OutRestTemplate outRestTemplate() {
        StringHttpMessageConverter m = new StringHttpMessageConverter(Charset.forName("UTF-8"));
        RestTemplate restTemplate = new RestTemplateBuilder().additionalMessageConverters(m).build(RestTemplate.class);
        m.setWriteAcceptCharset(false);
        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;
    }
    @Bean
    //@LoadBalanced
    public RestTemplate formRestTemplate() {
        RestTemplate restTemplate = new RestTemplate();
        restTemplate.getMessageConverters().add(new StringHttpMessageConverter(Charset.forName("UTF-8")));
        return restTemplate;
    }
@@ -160,15 +173,22 @@
    @LoadBalanced
    public RestTemplate restTemplate() {
        StringHttpMessageConverter m = new StringHttpMessageConverter(Charset.forName("UTF-8"));
        m.setWriteAcceptCharset(false);
        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;
    }
    @Bean
    @ConditionalOnBean(Java110FeignClientInterceptor.class)
    public okhttp3.OkHttpClient okHttpClient(@Autowired
                                                     Java110FeignClientInterceptor okHttpLoggingInterceptor) {
                                             Java110FeignClientInterceptor okHttpLoggingInterceptor) {
        okhttp3.OkHttpClient.Builder ClientBuilder = new okhttp3.OkHttpClient.Builder()
                .readTimeout(30, TimeUnit.SECONDS) //读取超时
                .connectTimeout(10, TimeUnit.SECONDS) //连接超时
@@ -189,10 +209,17 @@
            //刷新缓存
            flushMainCache(args);
            //服务启动完成
            ServiceStartInit.printStartSuccessInfo();
        } catch (Throwable e) {
            logger.error("系统启动失败", e);
        }
    }
    /**
     * 刷新主要的缓存
@@ -204,7 +231,7 @@
        logger.debug("判断是否需要刷新日志,参数 args 为 {}", args);
        //因为好多朋友启动时 不加 参数-Dcache 所以启动时检测 redis 中是否存在 java110_hc_version
        //String mapping = MappingCache.getValue("java110_hc_version");
        //String mapping = MappingCache.getValue(MappingConstant.ENV_DOMAIN,"java110_hc_version");
        String mapping = "";
        if (StringUtil.isEmpty(mapping)) {
            ICacheV1InnerServiceSMO devServiceCacheSMOImpl = (ICacheV1InnerServiceSMO) ApplicationContextFactory.getBean(ICacheV1InnerServiceSMO.class);