Ссылка на целевой файл. Почему / Как это создается и используется? - PullRequest
0 голосов
/ 04 мая 2019

Я недавно начал с Spring-Security и в этом контексте нашел проект на GitHub , соответствующий моим интересам.

При чтении кода я обнаружил, что класс ( фасад \ impl \ UserFacadeImpl.java ) был связан с целевым пакетом. Это означает, что когда я бегу

  • mvn package : целевой файл создан и ссылка на импорт действительна
  • mvn clean : целевой файл уничтожен, и моя IDE помечает ссылку для импорта как недействительную

Импортирует из целевого каталога и класса, который обычно используется:

import com.boza.swaggergen.model.Credential;
import com.boza.swaggergen.model.User;

public class UserFacadeImpl implements UserFacade {

    @Override
    public User createUser(final User user) {
        UserModel userModel = modelMapper.map(user, UserModel.class);
        userModel = userService.createUser(userModel);
        return modelMapper.map(userModel, User.class);
    }

Класс UserModel использует те же поля, что и класс use user, но методы отличаются.

Я никогда не видел ничего подобного и совершенно сбит с толку. Я посмотрел в файлах конфигурации, но не смог найти подсказку, где генерируются эти классы.

1 Ответ

1 голос
/ 04 мая 2019

Эти классы генерируются Swagger Codegen .Общий рабочий процесс:

  1. Опишите API с использованием спецификации OpenAPI.
  2. Настройте POM Maven для использования swagger-codegen-maven-plugin для генерации кодов.
  3. Генерация кодов по mvn generate-sources (mvn package вызовет его за сценой)
  4. Генерирует только абстрактный @RestController, настроенный с @RequestMapping и запрос / ответ POJO длякаждая конечная точка API.Вам все еще нужно реализовать фактическую логику , расширяя сгенерированный @RestController.
...