преобразование формы данных yaml в базу данных java

#java #database #spring-boot #yaml

Вопрос:

Мне нужно преобразовать данные из YAML в базу данных , как пример того, что мне нужнов примере выше , я сделал это, изменив класс SourceServiceImpl.

есть много данных, которые мне нужны для их динамического преобразования, вместо того, чтобы каждый раз менять код.
это мой код

Сущность

 @Entity
@Data
@AllArgsConstructor
@NoArgsConstructor

public class Source {
    @Id
    @GeneratedValue
    @Column(name = "ID", nullable = false)
    private Long id;

    @Column
    private String name;

    @Column
    private String url;

    @Column
    private boolean enabled;

    @Column
    private String cssSelector;

    @Column
    private String titleCssSelector;

    @Column
    private String dateCssSelector;

    @Column
    private String linkCssSelector;

    @Column
    private String contentCssSelector;

    @Column
    private Long categoryDelay;
}
 

получение данных из файла Yaml

 @Configuration
@EnableConfigurationProperties
@ConfigurationProperties("source")
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@ToString
public class Sources {


    private Map<String ,String> hespress;

    private Map<String,String > h24info;

   private Map<String,String > ....

// other lists

}
 

My service

 public interface SourceService {

    void saveSource(Sources source);
}

 

service implementation

 @Service
public class SourceServiceImp implements SourceService {

    private final SourceRep sourceRep;

    public SourceServiceImp(SourceRep sourceRep) {
        this.sourceRep = sourceRep;
    }

    @Override
    public void saveSource(Sources sources) {
        Source source = new Source();
        source.setEnabled(Boolean.parseBoolean(sources.getHespress().get("enabled")));
        source.setUrl(sources.getHespress().get("url"));
        source.setName(sources.getHespress().get("name"));
        source.setCategoryDelay(Long.parseLong(sources.getHespress().get("categoriesDelay")));
        source.setContentCssSelector(sources.getHespress().get("source-article-content-css-selector"));
        source.setCssSelector(sources.getHespress().get("source-css-selector"));
        source.setLinkCssSelector(sources.getHespress().get("source-article-link-css-selector"));
        source.setTitleCssSelector(sources.getHespress().get("source-article-title-css-selector"));
        source.setDateCssSelector(sources.getHespress().get("source-article-date-css-selector"));
        sourceRep.save(source);
        System.out.println("Saved Source here");
    }
}

 

Репо

 @Repository
public interface SourceRep extends JpaRepository<Source, Long> {

}
 

Приложение

 @SpringBootApplication
public class YmltobApplication implements CommandLineRunner {


    private final Sources sources;
    private final SourceService sourceService;

    @Autowired
    public YmltobApplication(Sources sources, SourceService sourceService) {
        this.sources = sources;
        this.sourceService = sourceService;
    }

    public static void main(String[] args) {
        SpringApplication.run(YmltobApplication.class, args);
    }

    @Override
    public void run(String... strings){
        sourceService.saveSource(sources);
    }
}

 

Я надеюсь, что мои потребности ясны.
Дайте мне знать, если я забуду какую-либо информацию

Комментарии:

1. Вы забыли указать, в чем проблема с вашим кодом.