Luoml's blog

Spring Cloud开发过程中遇到的一些问题

以下记录本人在使用Spring Boot开发微服务的过程中遇到的一些问题:

Feign

当Spring Cloud版本为 Brixton.RELEASE ,会出现:

1
Attribute 'value' in annotation [org.springframework.cloud.netflix.feign.FeignClient] must be declared as an @AliasFor [serviceId], not [name].

解决办法:
将Spring Cloud版本改为 Brixton.SR5Camden.RELEASE ,即可解决此问题。

Swagger

当 Swagger1 与 Feign 集成时,Spring Boot启动,会报空指针异常:

1
2
3
4
Caused by: java.lang.NullPointerException: null
at com.mangofactory.swagger.models.property.field.FieldModelPropertyProvider.propertiesForDeserialization(FieldModelPropertyProvider.java:75) ~[swagger-models-1.0.2.jar:1.0.2]
at com.mangofactory.swagger.models.property.provider.DefaultModelPropertiesProvider.propertiesForDeserialization(DefaultModelPropertiesProvider.java:43) ~[swagger-models-1.0.2.jar:1.0.2]
......

解决办法:
可以参考:Feign与Swagger1集成注入失败问题
具体做法就是,增加 springSwaggerConfig.jacksonSwaggerSupport(); ,如下:

1
2
3
4
5
@Autowired
public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) {
springSwaggerConfig.jacksonSwaggerSupport();
this.springSwaggerConfig = springSwaggerConfig;
}

当使用 Swagger 2.6.0 时,注册服务到 Eureka Server ,会出现服务名为 UNKNOW 的情况。

解决办法:
更换 Swagger2 的版本,比如: 2.5.0

Spring Data Rest

Spring Data Rest 默认不会返回主键 ID

如果需要返回主键 ID ,可以参考: Spring Data Rest返回主键ID

Fork me on GitHub