Commit 03f180f2 authored by lihaipeng's avatar lihaipeng

restTemplate、spring-task、rocketmq外部配置

parent 19d0b3d8
package com.unififi.api; package com.unififi.api;
import com.unififi.model.User; import com.unififi.model.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
...@@ -9,6 +10,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -9,6 +10,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
@FeignClient(value = "unififi-demo2-service") @FeignClient(value = "unififi-demo2-service")
@Api(tags = "用户操作")
public interface UserApi { public interface UserApi {
@RequestMapping(value = "/echo/{string}", method = RequestMethod.GET) @RequestMapping(value = "/echo/{string}", method = RequestMethod.GET)
......
package com.unififi.config.controller; package com.unififi.config.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig; import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.slf4j.Logger; import org.apache.commons.codec.Charsets;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters; import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpInputMessage;
import org.springframework.http.HttpOutputMessage;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.http.converter.HttpMessageNotWritableException;
import java.io.IOException;
import java.lang.reflect.Type;
import java.nio.charset.Charset;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -25,7 +16,12 @@ import java.util.List; ...@@ -25,7 +16,12 @@ import java.util.List;
public class HttpMessageConverterConfig { public class HttpMessageConverterConfig {
@Bean @Bean
public HttpMessageConverters fastJsonHttpMessageConverters() { public HttpMessageConverters fastJsonHttpMessageConverters(FastJsonHttpMessageConverter fastJsonHttpMessageConverter) {
return new HttpMessageConverters(fastJsonHttpMessageConverter);
}
@Bean
public FastJsonHttpMessageConverter fastJsonHttpMessageConverter() {
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig(); FastJsonConfig fastJsonConfig = new FastJsonConfig();
SerializerFeature[] serializerFeatures = new SerializerFeature[]{ SerializerFeature[] serializerFeatures = new SerializerFeature[]{
...@@ -34,46 +30,14 @@ public class HttpMessageConverterConfig { ...@@ -34,46 +30,14 @@ public class HttpMessageConverterConfig {
// 循环引用 // 循环引用
SerializerFeature.DisableCircularReferenceDetect SerializerFeature.DisableCircularReferenceDetect
}; };
fastJsonConfig.setSerializerFeatures(serializerFeatures); fastJsonConfig.setSerializerFeatures(serializerFeatures);
fastJsonConfig.setCharset(Charset.forName("UTF-8")); fastJsonConfig.setCharset(Charsets.UTF_8);
fastConverter.setFastJsonConfig(fastJsonConfig); fastConverter.setFastJsonConfig(fastJsonConfig);
List<MediaType> fastjsonSupportedMediaTypes = new ArrayList<>(); List<MediaType> fastjsonSupportedMediaTypes = new ArrayList<>();
fastjsonSupportedMediaTypes.add(MediaType.TEXT_PLAIN); fastjsonSupportedMediaTypes.add(MediaType.TEXT_PLAIN);
fastjsonSupportedMediaTypes.add(MediaType.APPLICATION_JSON); fastjsonSupportedMediaTypes.add(MediaType.APPLICATION_JSON);
fastConverter.setSupportedMediaTypes(fastjsonSupportedMediaTypes); fastConverter.setSupportedMediaTypes(fastjsonSupportedMediaTypes);
return fastConverter;
return new HttpMessageConverters(fastConverter);
} }
private static class UnififiFastJsonHttpMessageConverter extends FastJsonHttpMessageConverter {
private static final Logger logger = LoggerFactory.getLogger("ControllerLog");
@Override
public Object read(Type type, Class<?> contextClass, HttpInputMessage inputMessage) throws IOException,
HttpMessageNotReadableException {
Object obj = super.read(type, contextClass, inputMessage);
if (logger.isInfoEnabled()) {
logger.info("Unififi-REQ-[{}] {}", type.getTypeName(), JSON.toJSONString(obj));
}
return obj;
}
@Override
public void write(Object t, Type type, MediaType contentType, HttpOutputMessage outputMessage)
throws IOException, HttpMessageNotWritableException {
if (type.getTypeName().endsWith("ListResp")) {
if (logger.isInfoEnabled()) {
logger.info("Unififi-RESP-[{}] {}", type.getTypeName(), "LIST_IGNORE");
}
} else {
if (logger.isInfoEnabled()) {
logger.info("Unififi-RESP-[{}] {}", type.getTypeName(), JSON.toJSONString(t));
}
}
super.write(t, type, contentType, outputMessage);
}
}
} }
...@@ -4,17 +4,16 @@ import com.unififi.config.logger.LoggerConfig; ...@@ -4,17 +4,16 @@ import com.unififi.config.logger.LoggerConfig;
import feign.Request; import feign.Request;
import feign.Response; import feign.Response;
import feign.Util; import feign.Util;
import org.apache.commons.codec.Charsets;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.Charset;
import static feign.Util.decodeOrDefault; import static feign.Util.decodeOrDefault;
public class UnififiFeignLogger extends feign.Logger { public class UnififiFeignLogger extends feign.Logger {
private static final Logger logger = LoggerFactory.getLogger("FeignLog"); private static final Logger logger = LoggerFactory.getLogger("FeignLog");
public static final Charset UTF_8 = Charset.forName("UTF-8");
// private final Logger logger; // private final Logger logger;
private LoggerConfig.Setting setting; private LoggerConfig.Setting setting;
...@@ -27,7 +26,7 @@ public class UnififiFeignLogger extends feign.Logger { ...@@ -27,7 +26,7 @@ public class UnififiFeignLogger extends feign.Logger {
protected void logRequest(String configKey, Level logLevel, Request request) { protected void logRequest(String configKey, Level logLevel, Request request) {
if (logger.isInfoEnabled() && setting.isEnabled()) { if (logger.isInfoEnabled() && setting.isEnabled()) {
if (!setting.getSkipMethodSigns().contains(configKey)) { if (!setting.getSkipMethodSigns().contains(configKey)) {
logger.info("FEIGN-REQ-[{}] {} --> {} {}", configKey, request.body() != null ? new String(request.body(), UTF_8) : "", request.httpMethod(), request.url()); logger.info("FEIGN-REQ-[{}] {} --> {} {}", configKey, request.body() != null ? new String(request.body(), Charsets.UTF_8) : "", request.httpMethod(), request.url());
} }
} }
} }
...@@ -41,7 +40,7 @@ public class UnififiFeignLogger extends feign.Logger { ...@@ -41,7 +40,7 @@ public class UnififiFeignLogger extends feign.Logger {
if (setting.getIgnoreResponseDataMethodSigns().contains(configKey)) { if (setting.getIgnoreResponseDataMethodSigns().contains(configKey)) {
logger.info("FEIGN-RESP-[{}] IGNORE_DATA size:{} spend:{}ms", configKey, (bodyData != null ? bodyData.length : 0), elapsedTime); logger.info("FEIGN-RESP-[{}] IGNORE_DATA size:{} spend:{}ms", configKey, (bodyData != null ? bodyData.length : 0), elapsedTime);
} else { } else {
logger.info("FEIGN-RESP-[{}] {} size:{} spend:{}ms", configKey, decodeOrDefault(bodyData, UTF_8, ""), (bodyData != null ? bodyData.length : 0), elapsedTime); logger.info("FEIGN-RESP-[{}] {} size:{} spend:{}ms", configKey, decodeOrDefault(bodyData, Charsets.UTF_8, ""), (bodyData != null ? bodyData.length : 0), elapsedTime);
} }
} }
} }
......
package com.unififi.config.rest; package com.unififi.config.rest;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import com.google.common.base.Charsets;
import com.unififi.config.logger.LoggerConfig; import com.unififi.config.logger.LoggerConfig;
import org.apache.http.client.HttpClient; import org.apache.http.client.HttpClient;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
...@@ -9,8 +11,15 @@ import org.springframework.context.annotation.Configuration; ...@@ -9,8 +11,15 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.BufferingClientHttpRequestFactory; import org.springframework.http.client.BufferingClientHttpRequestFactory;
import org.springframework.http.client.ClientHttpRequestFactory; import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.http.converter.json.GsonHttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import java.util.Iterator;
import java.util.List;
@Configuration @Configuration
public class RestTemplateConfig { public class RestTemplateConfig {
...@@ -30,10 +39,25 @@ public class RestTemplateConfig { ...@@ -30,10 +39,25 @@ public class RestTemplateConfig {
@LoadBalanced @LoadBalanced
@Bean @Bean
public RestTemplate restTemplate(ClientHttpRequestFactory httpRequestFactory, LoggerConfig loggerConfig) { public RestTemplate restTemplate(ClientHttpRequestFactory httpRequestFactory, LoggerConfig loggerConfig, FastJsonHttpMessageConverter fastJsonHttpMessageConverter) {
BufferingClientHttpRequestFactory bufferingClientHttpRequestFactory = new BufferingClientHttpRequestFactory(httpRequestFactory); BufferingClientHttpRequestFactory bufferingClientHttpRequestFactory = new BufferingClientHttpRequestFactory(httpRequestFactory);
RestTemplate restTemplate = new RestTemplate(bufferingClientHttpRequestFactory); RestTemplate restTemplate = new RestTemplate(bufferingClientHttpRequestFactory);
restTemplate.getInterceptors().add(new RestTemplateLogInterceptor(loggerConfig.getRest())); restTemplate.getInterceptors().add(new RestTemplateLogInterceptor(loggerConfig.getRest()));
//fastjson 替换 jackson
List<HttpMessageConverter<?>> messageConverters = restTemplate.getMessageConverters();
Iterator<HttpMessageConverter<?>> iterator = messageConverters.iterator();
while (iterator.hasNext()) {
HttpMessageConverter<?> converter = iterator.next();
if (converter instanceof StringHttpMessageConverter) {
iterator.remove();
}
if (converter instanceof GsonHttpMessageConverter || converter instanceof MappingJackson2HttpMessageConverter) {
iterator.remove();
}
}
messageConverters.add(new StringHttpMessageConverter(Charsets.UTF_8));
messageConverters.add(fastJsonHttpMessageConverter);
return restTemplate; return restTemplate;
} }
} }
package com.unififi.config.rest; package com.unififi.config.rest;
import com.unififi.config.logger.LoggerConfig; import com.unififi.config.logger.LoggerConfig;
import org.apache.commons.codec.Charsets;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.http.HttpRequest; import org.springframework.http.HttpRequest;
...@@ -12,13 +13,11 @@ import java.io.BufferedReader; ...@@ -12,13 +13,11 @@ import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.net.URI; import java.net.URI;
import java.nio.charset.Charset;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
public class RestTemplateLogInterceptor implements ClientHttpRequestInterceptor { public class RestTemplateLogInterceptor implements ClientHttpRequestInterceptor {
private static final Logger logger = LoggerFactory.getLogger("RestTemplateLog"); private static final Logger logger = LoggerFactory.getLogger("RestTemplateLog");
public static final Charset UTF_8 = Charset.forName("UTF-8");
private LoggerConfig.Setting setting; private LoggerConfig.Setting setting;
public RestTemplateLogInterceptor(LoggerConfig.Setting setting) { public RestTemplateLogInterceptor(LoggerConfig.Setting setting) {
...@@ -31,7 +30,7 @@ public class RestTemplateLogInterceptor implements ClientHttpRequestInterceptor ...@@ -31,7 +30,7 @@ public class RestTemplateLogInterceptor implements ClientHttpRequestInterceptor
if (logger.isInfoEnabled() && setting.isEnabled()) { if (logger.isInfoEnabled() && setting.isEnabled()) {
if (!setting.getSkipMethodSigns().contains(methodTag)) { if (!setting.getSkipMethodSigns().contains(methodTag)) {
logger.info("REST-REQ-[{}] {} --> {} {}", methodTag, body != null ? new String(body, UTF_8) : "", request.getMethod(), request.getURI()); logger.info("REST-REQ-[{}] {} --> {} {}", methodTag, body != null ? new String(body, Charsets.UTF_8) : "", request.getMethod(), request.getURI());
} }
} }
long start = System.nanoTime(); long start = System.nanoTime();
...@@ -41,7 +40,7 @@ public class RestTemplateLogInterceptor implements ClientHttpRequestInterceptor ...@@ -41,7 +40,7 @@ public class RestTemplateLogInterceptor implements ClientHttpRequestInterceptor
long elapsedTime = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start); long elapsedTime = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start);
if (logger.isInfoEnabled()) { if (logger.isInfoEnabled()) {
StringBuilder inputStringBuilder = new StringBuilder(); StringBuilder inputStringBuilder = new StringBuilder();
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(response.getBody(), UTF_8))) { try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(response.getBody(), Charsets.UTF_8))) {
String line = bufferedReader.readLine(); String line = bufferedReader.readLine();
while (line != null) { while (line != null) {
inputStringBuilder.append(line); inputStringBuilder.append(line);
......
...@@ -3,9 +3,12 @@ package com.unififi.controller; ...@@ -3,9 +3,12 @@ package com.unififi.controller;
import com.unififi.api.UserApi; import com.unififi.api.UserApi;
import com.unififi.config.AppConfig; import com.unififi.config.AppConfig;
import com.unififi.model.TicketingOrder;
import com.unififi.model.User; import com.unififi.model.User;
import com.unififi.service.UserService; import com.unififi.service.UserService;
import com.unififi.task.UnififiTask;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
...@@ -34,6 +37,10 @@ public class Demo1Controller { ...@@ -34,6 +37,10 @@ public class Demo1Controller {
private LoadBalancerClient loadBalancer; private LoadBalancerClient loadBalancer;
@Autowired @Autowired
private UserService userService; private UserService userService;
@Autowired
private UnififiTask unififiTask;
@Autowired
private RocketMQTemplate rocketMQTemplate;
@GetMapping("/echo/{string}") @GetMapping("/echo/{string}")
...@@ -70,6 +77,8 @@ public class Demo1Controller { ...@@ -70,6 +77,8 @@ public class Demo1Controller {
@GetMapping("/sleep") @GetMapping("/sleep")
public String sleep() { public String sleep() {
try { try {
unififiTask.testAsync();
log.info("testAsync finish");
long ms = (new Random().nextInt(10) + 1) * 1000; long ms = (new Random().nextInt(10) + 1) * 1000;
Thread.sleep(ms); Thread.sleep(ms);
System.out.println("sleep " + ms); System.out.println("sleep " + ms);
...@@ -96,4 +105,12 @@ public class Demo1Controller { ...@@ -96,4 +105,12 @@ public class Demo1Controller {
public String redisGet(String name) { public String redisGet(String name) {
return stringRedisTemplate.opsForValue().get(name); return stringRedisTemplate.opsForValue().get(name);
} }
@GetMapping("/sendmq")
public void sendMQ() {
TicketingOrder order = new TicketingOrder();
order.setOrderNo("ticketing11111111111");
rocketMQTemplate.convertAndSend("order-push:ticketing", order);
}
} }
package com.unififi.task;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.*;
import org.springframework.stereotype.Component;
import java.util.concurrent.Future;
@EnableAsync
@EnableScheduling
@Component
@Slf4j
public class UnififiTask {
@Async
public Future<String> testAsync() throws InterruptedException {
Thread.sleep(2000);
log.info("test async");
return new AsyncResult<>("test");
}
@Scheduled(cron = "0 */10 * * * ?")
public void testSchedule() {
log.info("test schedule");
}
}
...@@ -29,13 +29,35 @@ spring: ...@@ -29,13 +29,35 @@ spring:
- data-id: unififi-jdbc.yaml - data-id: unififi-jdbc.yaml
refresh: false refresh: false
group: DEFAULT_GROUP group: DEFAULT_GROUP
- data-id: unififi-rocketmq.yaml
refresh: false
group: DEFAULT_GROUP
discovery: discovery:
metadata: metadata:
unififi.mode: ${unififi.mode} unififi.mode: ${unififi.mode}
unififi.service.version: '@unififi-service.version@' unififi.service.version: '@unififi-service.version@'
unififi.env: ${spring.profiles.active} unififi.env: ${spring.profiles.active}
task:
rocketmq: execution:
name-server: 39.106.6.97:9876 thread-name-prefix: task-
producer: pool:
group: unififi-demo1-service max-size: 8
\ No newline at end of file core-size: 8
queue-capacity: 50
keep-alive: 60s
allow-core-thread-timeout: true
scheduling:
thread-name-prefix: scheduling-
pool:
size: 1
#rocketmq:
# name-server: 39.106.6.97:9876
# producer:
# group: ${spring.application.name}
# 测试时使用配置服务列表
#unififi-demo2-service:
# ribbon:
# NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerList
# listOfServers: 39.106.6.97:18080
\ No newline at end of file
...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; ...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig; import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.apache.commons.codec.Charsets;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters; import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
...@@ -17,7 +18,6 @@ import org.springframework.http.converter.HttpMessageNotWritableException; ...@@ -17,7 +18,6 @@ import org.springframework.http.converter.HttpMessageNotWritableException;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.nio.charset.Charset;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -26,7 +26,7 @@ public class HttpMessageConverterConfig { ...@@ -26,7 +26,7 @@ public class HttpMessageConverterConfig {
@Bean @Bean
public HttpMessageConverters fastJsonHttpMessageConverters() { public HttpMessageConverters fastJsonHttpMessageConverters() {
FastJsonHttpMessageConverter fastConverter = new UheFastJsonHttpMessageConverter(); FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig(); FastJsonConfig fastJsonConfig = new FastJsonConfig();
SerializerFeature[] serializerFeatures = new SerializerFeature[]{ SerializerFeature[] serializerFeatures = new SerializerFeature[]{
// Date的日期转换器 // Date的日期转换器
...@@ -36,7 +36,7 @@ public class HttpMessageConverterConfig { ...@@ -36,7 +36,7 @@ public class HttpMessageConverterConfig {
}; };
fastJsonConfig.setSerializerFeatures(serializerFeatures); fastJsonConfig.setSerializerFeatures(serializerFeatures);
fastJsonConfig.setCharset(Charset.forName("UTF-8")); fastJsonConfig.setCharset(Charsets.UTF_8);
fastConverter.setFastJsonConfig(fastJsonConfig); fastConverter.setFastJsonConfig(fastJsonConfig);
List<MediaType> fastjsonSupportedMediaTypes = new ArrayList<>(); List<MediaType> fastjsonSupportedMediaTypes = new ArrayList<>();
......
package com.unififi.config; package com.unififi.config;
import org.apache.commons.codec.Charsets;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.http.HttpRequest; import org.springframework.http.HttpRequest;
...@@ -11,20 +12,18 @@ import java.io.BufferedReader; ...@@ -11,20 +12,18 @@ import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.net.URI; import java.net.URI;
import java.nio.charset.Charset;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
public class UnififiRestTemplateLogInterceptor implements ClientHttpRequestInterceptor { public class UnififiRestTemplateLogInterceptor implements ClientHttpRequestInterceptor {
private static final Logger logger = LoggerFactory.getLogger(UnififiRestTemplateLogInterceptor.class); private static final Logger logger = LoggerFactory.getLogger(UnififiRestTemplateLogInterceptor.class);
public static final Charset UTF_8 = Charset.forName("UTF-8");
@Override @Override
public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException { public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {
String methodTag = getMethodTag(request.getURI()); String methodTag = getMethodTag(request.getURI());
if (logger.isInfoEnabled()) { if (logger.isInfoEnabled()) {
logger.info("REST-REQ-[{}] {} --> {} {}", methodTag, body != null ? new String(body, UTF_8) : "", request.getMethod(), request.getURI()); logger.info("REST-REQ-[{}] {} --> {} {}", methodTag, body != null ? new String(body, Charsets.UTF_8) : "", request.getMethod(), request.getURI());
} }
long start = System.nanoTime(); long start = System.nanoTime();
ClientHttpResponse response = null; ClientHttpResponse response = null;
...@@ -33,7 +32,7 @@ public class UnififiRestTemplateLogInterceptor implements ClientHttpRequestInter ...@@ -33,7 +32,7 @@ public class UnififiRestTemplateLogInterceptor implements ClientHttpRequestInter
long elapsedTime = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start); long elapsedTime = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start);
if (logger.isInfoEnabled()) { if (logger.isInfoEnabled()) {
StringBuilder inputStringBuilder = new StringBuilder(); StringBuilder inputStringBuilder = new StringBuilder();
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(response.getBody(), UTF_8))) { try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(response.getBody(), Charsets.UTF_8))) {
String line = bufferedReader.readLine(); String line = bufferedReader.readLine();
while (line != null) { while (line != null) {
inputStringBuilder.append(line); inputStringBuilder.append(line);
......
...@@ -29,11 +29,12 @@ spring: ...@@ -29,11 +29,12 @@ spring:
refresh: false refresh: false
group: DEFAULT_GROUP group: DEFAULT_GROUP
discovery: discovery:
#ip: 39.106.6.97
metadata: metadata:
unififi.mode: ${unififi.mode} unififi.mode: ${unififi.mode}
unififi.service.version: '@unififi-service.version@' unififi.service.version: '@unififi-service.version@'
user.home: ${user.home} user.home: ${user.home}
rocketmq: rocketmq:
name-server: 39.106.6.97:9876 name-server: 39.106.6.97:9876
producer: producer:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment