首页 > 其他 > 详细

问题记录-FeigonClient与HandlerInterceptorAdapter循环依赖-FeigonClient时间字段解析错误

时间:2020-11-30 09:18:39      阅读:123      评论:0      收藏:0      [点我收藏+]

最近遇到两个问题记录下:

一.FeigonClient与HandlerInterceptorAdapter循环依赖

 遇到实际问题:

自己的类继承了HandlerInterceptorAdapter 类,过滤解析登录信息的,同时成员变量包含了FeigonClient接口获取登录信息,FeigonClient 初始化依赖 HandlerInterceptorAdapter ,同时自己的类依赖成员变量 FeigonClient ,循环依赖启动失败

网上查了不少方式,尝试了只有一种成功,记录下,还有技术点待研究

错误信息:

 

 

解决方式:

FegionClient不作为成员变量被使用,需要使用时 动态获取bean

@Component
public class SpringUtils implements ApplicationContextAware {

/**
* ddd
*/
private static ApplicationContext applicationContext;

/**
* sss
* @param applicationContext app
* @throws BeansException b
*/
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SpringUtils.applicationContext = applicationContext;
}

/**
* sss
* @param beanName b
* @param <T> t
* @return res
*/
public static <T> T getBean(String beanName) {
if (applicationContext.containsBean(beanName)) {
return (T) applicationContext.getBean(beanName);
} else {
return null;
}
}

/**
* dd
* @param baseType b
* @param <T> t
* @return res
*/
public static <T> Map<String, T> getBeansOfType(Class<T> baseType) {
return applicationContext.getBeansOfType(baseType);
}

}


CuaCustomerFeignClient cuaCustomerFeignClient = SpringUtils.getBean("cuaCustomerFeignClient");



FegionClient 里的注解方式,用
qualifier = "cuaCustomerFeignClient" 和通过名字获取bean的 getBean 方法呼应
@FeignClient(name = "cua-customer-api", url = "${cuaCustomerUrl}", qualifier = "cuaCustomerFeignClient")
public interface CuaCustomerFeignClient {

 

 

 

二.FeigonClient时间字段解析错误

时间格式为”2019-06-21T10:09:06.000+0000“ 时在FegonClient和其他http客户端直接用 Date类接受数据会抛出异常,用String类可以,但是后续也需要转

或者用 T = fegionClient.getXX()

A = JSONObject.parseObject(JSONObject.toJSONString(T),A.class)

的方式  alibaba的json工具可以解析。

具体待研究原因

 

 

@Component
public class SpringUtils implements ApplicationContextAware {

/**
* ddd
*/
private static ApplicationContext applicationContext;

/**
* sss
* @param applicationContext app
* @throws BeansException b
*/
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SpringUtils.applicationContext = applicationContext;
}

/**
* sss
* @param beanName b
* @param <T> t
* @return res
*/
public static <T> T getBean(String beanName) {
if (applicationContext.containsBean(beanName)) {
return (T) applicationContext.getBean(beanName);
} else {
return null;
}
}

/**
* dd
* @param baseType b
* @param <T> t
* @return res
*/
public static <T> Map<String, T> getBeansOfType(Class<T> baseType) {
return applicationContext.getBeansOfType(baseType);
}

}

问题记录-FeigonClient与HandlerInterceptorAdapter循环依赖-FeigonClient时间字段解析错误

原文:https://www.cnblogs.com/thinkqin/p/14047627.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!