Spring Data CustomConversions WARN

在Spring集成Elasticsearch时,启动项目可能会遇到关于Geo转换器的WARN信息,这是由于框架自动注册了Geo类型的转换器,但它们不是基础类型导致的。这些转换器在框架初始化时被添加,用于处理Geo坐标数据。尽管是警告,但不影响正常运行。如果不想显示此警告,可以在日志配置中屏蔽相应级别。
摘要由CSDN通过智能技术生成

在spring 引入 elasticsearch 模块后,启动项目会报

 WARN [main] CustomConversions [260]-| Registering converter from interface java.util.Map to class org.springframework.data.elasticsearch.core.geo.GeoJsonGeometryCollection as reading converter although it doesn't convert from a store-supported type! You might want to check your annotation setup at the converter implementation.

跟踪源码

		if (converterRegistration.isReading()) {

			readingPairs.add(pair);

			if (logger.isWarnEnabled() && !converterRegistration.isSimpleSourceType()) {
				logger.warn(String.format(READ_CONVERTER_NOT_SIMPLE, pair.getSourceType(), pair.getTargetType()));
			}
		}

添加elasticsearch  geo(地理坐标)转化器的时候会检查该类型是否为基础类型。由于geo类型不是基础类型所以报错。

那这个转换器又是在哪添加的呢?继续跟踪源码

	public ElasticsearchCustomConversions(Collection<?> converters) {
		super(STORE_CONVERSIONS, converters);
	}
	static {

		List<Converter<?, ?>> converters = new ArrayList<>(GeoConverters.getConvertersToRegister());
		converters.add(StringToUUIDConverter.INSTANCE);
		converters.add(UUIDToStringConverter.INSTANCE);
		converters.add(BigDecimalToDoubleConverter.INSTANCE);
		converters.add(DoubleToBigDecimalConverter.INSTANCE);
		converters.add(ByteArrayToBase64Converter.INSTANCE);
		converters.add(Base64ToByteArrayConverter.INSTANCE);

		STORE_CONVERTERS = Collections.unmodifiableList(converters);
		STORE_CONVERSIONS = StoreConversions.of(ElasticsearchSimpleTypes.HOLDER, STORE_CONVERTERS);
	}
	static Collection<Converter<?, ?>> getConvertersToRegister() {

		return Arrays.asList(PointToMapConverter.INSTANCE, MapToPointConverter.INSTANCE, //
				GeoPointToMapConverter.INSTANCE, MapToGeoPointConverter.INSTANCE, //
				GeoJsonToMapConverter.INSTANCE, MapToGeoJsonConverter.INSTANCE, //
				GeoJsonPointToMapConverter.INSTANCE, MapToGeoJsonPointConverter.INSTANCE, //
				GeoJsonMultiPointToMapConverter.INSTANCE, MapToGeoJsonMultiPointConverter.INSTANCE, //
				GeoJsonLineStringToMapConverter.INSTANCE, MapToGeoJsonLineStringConverter.INSTANCE, //
				GeoJsonMultiLineStringToMapConverter.INSTANCE, MapToGeoJsonMultiLineStringConverter.INSTANCE, //
				GeoJsonPolygonToMapConverter.INSTANCE, MapToGeoJsonPolygonConverter.INSTANCE, //
				GeoJsonMultiPolygonToMapConverter.INSTANCE, MapToGeoJsonMultiPolygonConverter.INSTANCE, //
				GeoJsonGeometryCollectionToMapConverter.INSTANCE, MapToGeoJsonGeometryCollectionConverter.INSTANCE);
	}

框架在初始化时,会为我们添加默认的转化器,其中就包括Geo相关转化器。所以在出现这种warn时,不必担心。如果觉得比较碍眼,在日志配置里,忽略掉该类的warn就可以了。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值