Package org.springframework.http.codec

# Interface CodecConfigurer

All Known Subinterfaces:
  `ClientCodecConfigurer`, `ServerCodecConfigurer`

All Known Implementing Classes:
  `DefaultClientCodecConfigurer`, `DefaultServerCodecConfigurer`

public interface CodecConfigurer
Defines a common interface for configuring either client or server HTTP message readers and writers. This is used as follows:

- Use `ClientCodecConfigurer.create()` or `ServerCodecConfigurer.create()` to create an instance.
- Use `defaultCodecs()` to customize HTTP message readers or writers registered by default.
- Use `customCodecs()` to add custom HTTP message readers or writers.
- Use `getReaders()` and `getWriters()` to obtain the list of configured HTTP message readers and writers.

HTTP message readers and writers are divided into 3 categories that are ordered as follows:

1. Typed readers and writers that support specific types, for example, byte[], String.
2. Object readers and writers, for example, JSON, XML.
3. Catch-all readers or writers, for example, String with any media type.

Typed and object readers are further subdivided and ordered as follows:

1. Default HTTP reader and writer registrations.
2. Custom readers and writers.

Since:
  5.0
Author:
  Rossen Stoyanchev

## Nested Class Summary

Nested Classes
Modifier and Type
Interface
Description
`static interface`
`CodecConfigurer.CustomCodecs`
Registry for custom HTTP message readers and writers.
`static interface`
`CodecConfigurer.DefaultCodecConfig`
Exposes the values of properties configured through `defaultCodecs()` that are applied to default codecs.
`static interface`
`CodecConfigurer.DefaultCodecs`
Customize or replace the HTTP message readers and writers registered by default.
`static interface`
`CodecConfigurer.MultipartCodecs`
Registry and container for multipart HTTP message writers.

## Method Summary

Modifier and Type
Method
Description
`CodecConfigurer`
`clone()`
Create a copy of this `CodecConfigurer`.
`CodecConfigurer.CustomCodecs`
`customCodecs()`
Register custom HTTP message readers or writers in addition to the ones registered by default.
`CodecConfigurer.DefaultCodecs`
`defaultCodecs()`
Provides a way to customize or replace HTTP message readers and writers registered by default.
`List<HttpMessageReader<?>>`
`getReaders()`
Obtain the configured HTTP message readers.
`List<HttpMessageWriter<?>>`
`getWriters()`
Obtain the configured HTTP message writers.
`void`
`registerDefaults(boolean registerDefaults)`
Provides a way to completely turn off registration of default HTTP message readers and writers, and instead rely only on the ones provided via `customCodecs()`.

## Method Details

### defaultCodecs

CodecConfigurer.DefaultCodecs defaultCodecs()
Provides a way to customize or replace HTTP message readers and writers registered by default.

See Also:
  - `registerDefaults(boolean)`

### customCodecs

CodecConfigurer.CustomCodecs customCodecs()
Register custom HTTP message readers or writers in addition to the ones registered by default.

### registerDefaults

void registerDefaults(boolean registerDefaults)
Provides a way to completely turn off registration of default HTTP message readers and writers, and instead rely only on the ones provided via `customCodecs()`.

By default this is set to `"true"` in which case default registrations are made; setting this to `false` disables default registrations.

### getReaders

List<HttpMessageReader<?>> getReaders()
Obtain the configured HTTP message readers.

### getWriters

List<HttpMessageWriter<?>> getWriters()
Obtain the configured HTTP message writers.

### clone

CodecConfigurer clone()
Create a copy of this `CodecConfigurer`. The returned clone has its own lists of default and custom codecs and generally can be configured independently. Keep in mind however that codec instances (if any are configured) are themselves not cloned.

Since:
  5.1.12