> For the complete documentation index, see [llms.txt](https://jack80342.gitbook.io/spring-boot/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jack80342.gitbook.io/spring-boot/iv.-spring-boot-features/32.-messaging/32.3-apache-kafka-support/32.3.3-additional-kafka-properties.md).

# 32.3.3 其它的Kafka属性

[附录A，常见应用属性](/spring-boot/x.-appendices/a.-common-application-properties.md)展示了支持自动配置的属性。注意，这些属性（带有连字符或者驼峰式）大部分直接映射到Apache Kafka带点的属性。详情请查看Apache Kafka的文档。

这些属性中的头几个既会应用到生产者也会应用到消费者。但是如果你希望各自使用不同的值，你可以指定它们为生产者类别或者消费者类别。Apache Kafka将属性按照重要性分为：HIGH，MEDIUM和LOW。Spring Boot自动配置支持所有的重要性为HIGH的属性、一些选定的重要性为MEDIUM和LOW的属性，和任何没有默认值的属性。

只有Kafka支持的属性的一个子集能够通过`KafkaProperties`类来定义。如果你希望用其它的不被直接支持的属性，来配置生产者或者消费者，使用下面的例子：

```
spring.kafka.properties.prop.one=first
spring.kafka.admin.properties.prop.two=second
spring.kafka.consumer.properties.prop.three=third
spring,kafka.producer.properties.prop.four=fourth
```

这把通常的`prop.one`Kafka属性设置为`first`（应用到producers、consumers和admins）。`prop.two`admin属性设置为`second`。`prop.three`consumer属性设置为`third`。`prop.four`producer属性设置为`fourth`。

你也可以如下配置Spring Kafka `JsonDeserializer`：

```
spring.kafka.consumer.value-deserializer=org.springframework.kafka.support.serializer.JsonDeserializer
spring.kafka.consumer.properties.spring.json.value.default.type=org.foo.Invoice
spring.kafka.consumer.properties.spring.json.trusted.packages=org.foo,org.bar
```

相似地，你可以禁用`JsonSerializer`的默认行为——在header里传递类型信息：

```
spring.kafka.producer.value-serializer=org.springframework.kafka.support.serializer.JsonSerializer
spring.kafka.producer.properties.spring.json.add.type.headers=false
```

**重要** 以此种方式定义的属性会覆盖任何Spring Boot明确支持的配置项。
