wuxw преди 3 години
родител
ревизия
449049c63c

+ 2 - 2
java110-core/src/main/java/com/java110/core/context/Environment.java

@@ -33,8 +33,8 @@ public class Environment {
     public final static String DEFAULT_ACTIVE = "dev";
     public final static String DEFAULT_PHONE = "cc_phone";
 
-    private final static String SPRING_CLOUD = "CLOUD"; // 环境是spring boot cloud
-    private final static String SPRING_BOOT = "BOOT"; // 环境是spring boot cloud
+    public final static String SPRING_CLOUD = "CLOUD"; // 环境是spring boot cloud
+    public final static String SPRING_BOOT = "BOOT"; // 环境是spring boot cloud
 
     private static String systemStartWay = "CLOUD"; // 环境是spring boot cloud
 

+ 18 - 6
java110-db/src/main/java/com/java110/db/Java110MybatisInterceptor.java

@@ -3,6 +3,7 @@ package com.java110.db;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.client.RestTemplate;
+import com.java110.core.context.Environment;
 import com.java110.core.factory.Java110TransactionalFactory;
 import com.java110.db.dao.IQueryServiceDAO;
 import com.java110.dto.order.OrderItemDto;
@@ -11,10 +12,7 @@ import com.java110.utils.factory.ApplicationContextFactory;
 import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.StringUtil;
 import org.apache.ibatis.executor.Executor;
-import org.apache.ibatis.mapping.BoundSql;
-import org.apache.ibatis.mapping.MappedStatement;
-import org.apache.ibatis.mapping.ParameterMapping;
-import org.apache.ibatis.mapping.SqlCommandType;
+import org.apache.ibatis.mapping.*;
 import org.apache.ibatis.plugin.*;
 import org.apache.ibatis.reflection.MetaObject;
 import org.apache.ibatis.session.Configuration;
@@ -54,7 +52,11 @@ public class Java110MybatisInterceptor implements Interceptor {
         Map<String, Object> sqlValue = new HashMap<>();
         //获取sql语句
         String sql = showSql(configuration, boundSql, sqlValue, sqlCommandType);
-        restTemplate = ApplicationContextFactory.getBean("restTemplate", RestTemplate.class);
+        if(Environment.isStartBootWay()){
+            restTemplate = ApplicationContextFactory.getBean("outRestTemplate", RestTemplate.class);
+        }else {
+            restTemplate = ApplicationContextFactory.getBean("restTemplate", RestTemplate.class);
+        }
         switch (sqlCommandType) {
             case INSERT:
                 dealInsertSql(mappedStatement, parameter, sql, sqlValue);
@@ -115,6 +117,9 @@ public class Java110MybatisInterceptor implements Interceptor {
         String url = ServiceConstant.SERVICE_ORDER_URL + "/order/oIdApi/createOrderItem";
         HttpHeaders httpHeaders = new HttpHeaders();
         HttpEntity httpEntity = new HttpEntity(orderItemDto.toString(), httpHeaders);
+        if(Environment.isStartBootWay()){
+            url = ServiceConstant.BOOT_SERVICE_ORDER_URL + "/order/oIdApi/createOrderItem";
+        }
         ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
 
         if (responseEntity.getStatusCode() != HttpStatus.OK) {
@@ -174,7 +179,11 @@ public class Java110MybatisInterceptor implements Interceptor {
         String url = ServiceConstant.SERVICE_ORDER_URL + "/order/oIdApi/createOrderItem";
         HttpHeaders httpHeaders = new HttpHeaders();
         HttpEntity httpEntity = new HttpEntity(orderItemDto.toString(), httpHeaders);
-        ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
+        ResponseEntity<String> responseEntity = null;
+        if(Environment.isStartBootWay()){
+            url = ServiceConstant.BOOT_SERVICE_ORDER_URL + "/order/oIdApi/createOrderItem";
+        }
+        responseEntity = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
 
         if (responseEntity.getStatusCode() != HttpStatus.OK) {
             throw new IllegalArgumentException("注册事务回滚日志失败" + responseEntity);
@@ -243,6 +252,9 @@ public class Java110MybatisInterceptor implements Interceptor {
         String url = ServiceConstant.SERVICE_ORDER_URL + "/order/oIdApi/createOrderItem";
         HttpHeaders httpHeaders = new HttpHeaders();
         HttpEntity httpEntity = new HttpEntity(orderItemDto.toString(), httpHeaders);
+        if(Environment.isStartBootWay()){
+            url = ServiceConstant.BOOT_SERVICE_ORDER_URL + "/order/oIdApi/createOrderItem";
+        }
         ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
 
         if (responseEntity.getStatusCode() != HttpStatus.OK) {

+ 5 - 0
java110-utils/src/main/java/com/java110/utils/constant/ServiceConstant.java

@@ -16,5 +16,10 @@ public class ServiceConstant {
      */
     public static final  String SERVICE_ORDER_URL = "http://order-service";
 
+    /**
+     * boot api
+     */
+    public static final  String BOOT_SERVICE_ORDER_URL = "http://127.0.0.1:8008";
+
     //public  static final String SERVICE_API_URL = "http://api.java110.com:8008";
 }

+ 17 - 0
springboot/src/main/java/com/java110/boot/BootApplicationStart.java

@@ -18,6 +18,7 @@ package com.java110.boot;
 import com.java110.core.annotation.Java110CmdDiscovery;
 import com.java110.core.annotation.Java110ListenerDiscovery;
 import com.java110.core.client.RestTemplate;
+import com.java110.core.context.Environment;
 import com.java110.core.event.cmd.ServiceCmdEventPublishing;
 import com.java110.core.event.service.api.ServiceDataFlowEventPublishing;
 import com.java110.core.log.LoggerFactory;
@@ -138,6 +139,20 @@ public class BootApplicationStart {
         return restTemplate;
     }
 
+    /**
+     * 实例化RestTemplate,通过@LoadBalanced注解开启均衡负载能力.
+     *
+     * @return restTemplate
+     */
+    @Bean
+    @LoadBalanced
+    public RestTemplate restTemplate() {
+        StringHttpMessageConverter m = new StringHttpMessageConverter(Charset.forName("UTF-8"));
+        RestTemplate restTemplate = new RestTemplateBuilder().additionalMessageConverters(m).build(RestTemplate.class);
+        restTemplate.getInterceptors().add(java110RestTemplateInterceptor);
+        return restTemplate;
+    }
+
     @Bean
     @ConditionalOnBean(Java110FeignClientInterceptor.class)
     public okhttp3.OkHttpClient okHttpClient(@Autowired
@@ -157,6 +172,8 @@ public class BootApplicationStart {
             ApplicationContext context = SpringApplication.run(BootApplicationStart.class, args);
             //服务启动加载
             ServiceStartInit.initSystemConfig(context);
+
+            Environment.setSystemStartWay(Environment.SPRING_BOOT);
         } catch (Throwable e) {
             logger.error("系统启动失败", e);
         }