[JAVA] Un mémorandum de dépendance à Spring Boot2 x Doma2

À propos de cette page

J'étais un peu accro au développement avec Spring Boot2 x Doma2, donc je vais le garder comme un mémorandum.

Nos spécifications

Spring Boot 2.1.7 Java11 IntelliJ 2018.3 DOMA doma-spring-boot-starter:1.1.1 MySQL 5.7 gradle 5.4.1

[DOMA4019] Fichier SQL introuvable dans le chemin de classe

Cette erreur peut se produire même si le fichier SQL a la structure de répertoires correcte comme indiqué ci-dessous.

Exemple) --L'emplacement du fichier SQL est correct UserRepostory, méthode findOne src/main/xxx/domain/repository/UserResotiory.java src/main/resources/META-INF/xxx/domain/repository/UserResotiory/findOne.sql

Solution)

Ajoutez ce qui suit à build.gradle

processResources.destinationDir = compileJava.destinationDir
compileJava.dependsOn processResources

Référence: https://github.com/domaframework/simple-boilerplate/blob/master/build.gradle

Je me fâche si je n'implémente pas l'interface Repository (Dao) au moment de la construction

L'erreur suivante required a bean of type xxxxxRepository that could not be found. Consider defining a bean of type xxxxxx

Solution)

  1. On suppose que les paramètres suivants sont définis dans IntellJ (cela devrait être fait si Lombok est inclus) Dans Préférence> Construire, Exécution, Déploiement> Processeurs d'annotations Activer Activer le traitement des annotations

  2. Ajoutez l'annotation ConfigAutowireable à l'interface du référentiel (Dao)

Comment faire DomaConfig

Si vous souhaitez passer même s'il existe une colonne inconnue, vous devez créer la classe Config de Doma et remplacer UnknownColumnHandler. (Il devrait y avoir d'autres cas où Config est requis) Dans le document officiel, la méthode d'utilisation de SingletonConfig est au sommet, mais dans le cas de Spring Boot, une méthode avancée correspondant au framework est requise.

Exemple de solution)

DomaConfig.java


@Configuration
public class DomaConfig implements Config {


    @Autowired
    private DomaAutoConfiguration domaAutoConfiguration;

    @Autowired
    private DataSource dataSource;

    @Override
    public DataSource getDataSource() {
        return dataSource;
    }

    @Override
    public UnknownColumnHandler getUnknownColumnHandler() {
        return new UnknownColumnHandler() {
            @Override
            public void handle(Query query, EntityType<?> entityType, String unknownColumnName) {
                //Remplacer et écraser
            }
        };
    }

    @Override
    public Dialect getDialect() {
        return domaAutoConfiguration.dialect();
    }

    @Bean
    @Primary
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource primaryDataSource(DataSourceProperties properties) {
        return properties.initializeDataSourceBuilder().build();
    }
}

Remarques

Je pense que My Batis est courant pour Spring Boot 2 ORM, mais j'ai essayé d'utiliser Doma 2 pour les raisons suivantes.

  1. Je souhaite séparer Java et SQL
  2. Vous n'avez pas besoin d'écrire du XML

Recommended Posts

Un mémorandum de dépendance à Spring Boot2 x Doma2
Mémorandum WebMvcConfigurer de Spring Boot 2.0 (printemps 5)
Spring Boot Rappelez-vous
L'histoire de la montée de la série Spring Boot 1.5 à la série 2.1
Comment ajouter un chemin de classe dans Spring Boot
[Spring Boot] Si vous utilisez Spring Boot, il était pratique d'utiliser de nombreux utilitaires.
J'ai essayé de cloner une application Web pleine de bugs avec Spring Boot
Comment écrire un test unitaire pour Spring Boot 2
05. J'ai essayé de supprimer la source de Spring Boot
Comment créer un projet Spring Boot dans IntelliJ
J'ai essayé de réduire la capacité de Spring Boot
[Spring Boot] Comment créer un projet (pour les débutants)
[Introduction à Spring Boot] Soumettez un formulaire à l'aide de thymeleaf
Comment utiliser CommandLineRunner dans Spring Batch of Spring Boot
Un mémorandum lors de la création d'un service REST avec Spring Boot
Comment démarrer par environnement avec Spring Boot de Maven
Essayez Spring Boot de 0 à 100.
Introduction à Spring Boot ① ~ DI ~
Introduction à Spring Boot ② ~ AOP ~
Introduction à Spring Boot, partie 1
L'histoire de la montée de Spring Boot de la série 1.5 à la série 2.1 part2
À propos de la fonction de Spring Boot en raison de différentes versions
Une histoire remplie des bases de Spring Boot (résolu)
Découpez SQL en fichier de propriété avec jdbcTemplate of spring boot
Paramètres du chemin de contexte Spring Boot 2.x
Introduction à Spring Boot x Open API ~ Open API créée avec le modèle d'écart de génération ~
Comment créer un hinadan pour un projet Spring Boot à l'aide de SPRING INITIALIZR
Obtenez une instance proxy du composant lui-même dans Spring Boot
Record de lutte pour Cassandra x Spring Boot
Comment configurer Spring Boot + PostgreSQL
Sortie de message (Spring boot)
Un mémorandum du problème FizzBuzz
Exemple de code pour le test unitaire d'un contrôleur Spring Boot avec MockMvc
Comment utiliser ModelMapper (Spring boot)
Mise à niveau de la botte à ressort de la série 1.5 à la série 2.0
Un mémo qui a touché Spring Boot
Je veux contrôler le message d'erreur par défaut de Spring Boot
Comment lire le corps de la requête plusieurs fois avec Spring Boot + Spring Security
Étapes pour rendre Spring Boot capable de faire référence à la valeur dans le fichier de propriétés
Un débutant Java a essayé de créer une application Web simple à l'aide de Spring Boot
Mémo personnel Caractéristiques de Spring Boot (principalement du point de vue DI)
Mon mémorandum que je veux faire ValidationMessages.properties UTF8 dans Spring Boot
Étapes pour créer une application chameau simple avec les démarreurs Apache Camel Spring Boot
Un mémorandum sur l'utilisation d'Eclipse
Qu'est-ce qu'un fichier .original Spring Boot?
Mémorandum de téléchargement de fichier local avec Spring Boot
L'histoire de la transition de Spring Boot 1.5 à 2.1
Modifications lors de la migration de Spring Boot 1.5 vers Spring Boot 2.0
Résumé de la participation au JJUG CCC 2019 Spring
Modifications lors de la migration de Spring Boot 2.0 vers Spring Boot 2.2
Résumé des paramètres initiaux pour Spring Boot, Doma2, Gradle
Comment diviser un fichier de message Spring Boot
Utiliser le cache avec EhCashe 2.x avec Spring Boot
Ajoutez une botte de printemps et un dégradé à éclipse
Présentation de Spring Boot Actuator, une fonctionnalité qui facilite l'utilisation des applications Spring Boot
03. J'ai envoyé une demande de Spring Boot à l'API de recherche de code postal
Connectez-vous aux applications Web Spring Boot sur la plate-forme Microsoft ID
[Spring Boot] Comment obtenir des propriétés dynamiquement à partir d'une chaîne contenue dans une URL