почему swagger не работает, если я использую свойство json to gson mapper в application.properties - PullRequest
0 голосов
/ 02 ноября 2018

Мы используем свойство spring.http.converters.preferred-json-mapper = gson в загрузочном приложении Spring.properties для преобразования из json в gson для теста Junit. Не уверен, что вызывает это свойство для чванства.

Ошибка при получении при интеграции с Swagger.

1 Ответ

0 голосов
/ 30 ноября 2018

Я знаю, что это "старая" запись, на которую вы, возможно, еще получили ответ. Какая пружина это волшебная нота. В зависимости от конфигурации вашего приложения (класса зависимостей, файлов и т. Д.) Оно попытается автоматически настроить ваше приложение.

Так что по умолчанию у вас есть эта пружинная конфигурация

# HTTP (HttpProperties)
spring.http.converters.preferred-json-mapper= # Preferred JSON mapper to use for HTTP message conversion. By default, auto-detected according to the environment.

Чтобы включить gson, необходимо включить зависимость GSON:

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.4</version>
</dependency>

Это позволит spring-boot обнаружить Gson зависимость от вашего пути к классам.

Установите для этого сопоставителя json значение gson:

# Preferred JSON mapper to use for HTTP message conversion.
spring.http.converters.preferred-json-mapper=gson

Настройка Gson при весенней загрузке

# GSON ([GsonProperties][1])
spring.gson.date-format= # Format to use when serializing Date objects.
spring.gson.disable-html-escaping= # Whether to disable the escaping of HTML characters such as '<', '>', etc.
spring.gson.disable-inner-class-serialization= # Whether to exclude inner classes during serialization.
spring.gson.enable-complex-map-key-serialization= # Whether to enable serialization of complex map keys (i.e. non-primitives).
spring.gson.exclude-fields-without-expose-annotation= # Whether to exclude all fields from consideration for serialization or deserialization that do not have the "Expose" annotation.
spring.gson.field-naming-policy= # Naming policy that should be applied to an object's field during serialization and deserialization.
spring.gson.generate-non-executable-json= # Whether to generate non executable JSON by prefixing the output with some special text.
spring.gson.lenient= # Whether to be lenient about parsing JSON that doesn't conform to RFC 4627.
spring.gson.long-serialization-policy= # Serialization policy for Long and long types.
spring.gson.pretty-printing= # Whether to output serialized JSON that fits in a page for pretty printing.
spring.gson.serialize-nulls= # Whether to serialize null fields.

Вы также можете полностью исключить Джексона из вашего проекта, выполнив команду do:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!-- Exclude the default Jackson dependency -->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-json</artifactId>
        </exclusion>
    </exclusions>
</dependency>
...