import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import lombok.Data;
@Data
@JacksonXmlRootElement(localName="root") #使用XML转化标签
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BaseRequest<T> implements Serializable {
private static final long serialVersionUID = 1L;
@JacksonXmlProperty(localName="head")
private Head head;
@JacksonXmlProperty(localName="body")
private T body;
}
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class CouponsRequest {
@JSONField(name="openId",ordinal=1)
private String openId; //用户openId
@JSONField(name="stock_id",ordinal=2)
private String stock_id; //批次号
@JSONField(name="out_request_no",ordinal=3)
private String out_request_no; //商户单据号,发放凭据号
@JSONField(name="appid",ordinal=4)
private String appid; //公众账号ID
@JSONField(name="stock_creator_mchid",ordinal=5)
private String stock_creator_mchid; //创建批次的商户号
@JSONField(name="coupon_id",ordinal=6)
private String coupon_id; //卡券Id
@JSONField(name="coupon_value",ordinal=7)
private String coupon_value; //指定面额发券,面额
@JSONField(name="coupon_minimum",ordinal=8)
private String coupon_minimum; //指定面额发券,券门槛
}
注解说明
OJSONField(ordinal =0)序列化字段的顺序,默认是0
OJSONField(name =“)用于解决属性名和key不一致的情况,当前端传过来的字段名不一样的时候,我们可以在字段名上加上这个注解
@JSONField(format =“yyyy-MM-dd HH:mm:ss”) 用在Date属性上,自动格式化日期
@JSONField(serialize = false) 是否要把这个字段序列化成JSON字符串Q,默认是true
@JSONField(deserialize = false) 字段是否需要进行反序列化,默认是true
feign:
client:
config:
default: # 这里用default就是全局配置,如果是写服务名称,则是针对某个微服务的配置
connectTimeout: 60000 #feign访问超时时间,底层使用ribbon
readTimeout: 60000
hystrix:
enabled: true #开启hystrix熔断
#在30秒内,发生20次以上的请求时,假如错误率达到50%以上,则断路器将被打开。
hystrix:
command:
default: # 或者填写具体的服务名称
execution:
isolation:
#strategy: SEMAPHORE #开启隔离模式
thread:
timeoutInMilliseconds: 60000 #请求超时时间
circuitBreaker:
sleepWindowInMilliseconds: 30000 #窗口期
requestVolumeThreshold: 1000 #请求阈值
errorThresholdPercentage: 50 #错误百分比阈值
#设置核心线程数
threadpool:
default:
coreSize: 200 #并发执行的最大线程数,默认10
maxQueuesize: 200 #BlockingQueue的最大队列数
queuesizeRejectionThreshold: 180 #即使maxQueuesize没有达到,达到queuesizeRejectionThreshold该值后,请求也会被拒绝