web-dev-qa-db-fra.com

Quelle est la structure de projet recommandée pour les projets de repos du printemps?

Je suis un débutant avec des bottes de printemps. Je suis impliqué dans le début d'un projet dans lequel nous créerions des services de repos à l'aide de Spring Boot. Pourriez-vous s'il vous plaît indiquer la structure de répertoire recommandée à suivre lors de la construction d'un projet qui ne fera qu'exposer les services de repos?

21
niccolo m.

Vous n'avez pas besoin de faire quelque chose de spécial pour commencer. Commencez avec un projet Java normal, maven ou gradle ou une présentation de projet IDE avec dépendance de départ.

Vous avez besoin d'une seule classe principale, selon le guide ici et le repos ...

Il n'y a pas de structure de paquetage contrainte. La structure réelle sera déterminée par votre besoin/caprice et la structure de répertoire sera posée par build-tool/IDE

Vous pouvez suivre la même structure que celle que vous suivez peut-être pour une application Spring MVC.

Vous pouvez suivre l'une ou l'autre voie 

  • Un projet est divisé en couches:

    par exemple: style DDD

    • Couche de service: le package de service contient des classes de service
    • Couche DAO/REPO: paquet dao contenant des classes dao
    • Couches d'entité


    ou 

    toute structure de couche adaptée à votre problème pour lequel vous écrivez problème. 

  • Un projet divisé en modules ou fonctionnalités ou fonctionnalités et un module est divisé en couches comme ci-dessus

Je préfère le second, car il suit le contexte commercial. Pensez en termes de concepts.

Ce que vous faites dépend de votre vision du projet. Ce sont vos compétences en organisation de code.

12
theBeacon

config - classe qui lira des fichiers de propriétés

cache - fichiers de classe du mécanisme de mise en cache

constantes - classe définie constante

contrôleur - classe de contrôleur

exception - classe d'exception

modèle - les classes de pojos seront présentes

sécurité - classes de sécurité

service - Impl classes

util - classes utilitaires

validation - classes de validateurs

chargeur de démarrage - classe principale

13
Subhasish Sahu

J'ai un exemple que j'utilise depuis quelques années. S'il vous plaît jeter un oeil comme une référence.

https://github.com/bigzidane/springboot-rest-h2-swagger

4
Nghia Do

Il existe une structure de répertoires recommandée par en quelque sorte mentionnée à l'adresse https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-structuring-your-code.html

Vous pouvez créer un dossier api et y placer vos contrôleurs.

Si vous avez des beans de configuration, mettez-les également dans un paquet séparé.

3
Alireza Fattahi

Veuillez utiliser Spring Tool Suite (environnement de développement basé sur Eclipse personnalisé pour le développement d'applications Spring).
Créez un projet de démarrage de printemps, il créera la structure de répertoires pour vous avec les dépendances maven de démarrage de printemps.

1
Jobin Joseph

Utilisez Link-1 pour générer un projet. C'est un projet de base pour l'apprentissage. vous pouvez comprendre la structure des dossiers .. Utilisez Link-2 pour créer un projet de démarrage Spring de base. 1: http://start.spring.io/ 2: https://projects.spring.io/spring-boot/

Créer un projet Gradle/maven automatiquement src/main/Java et src/main/test seront créés. créer un package contrôleur/service/référentiel et commencer à écrire le code.

-src/main/Java (dossier source) --- com.package.service (package) --- ServiceClass (Class) --- com.package.controller (package) --- ControllerClass (Class)

1
Rahul Kumar

Bien que cette question ait une réponse acceptée, j'aimerais quand même partager la structure de mon projet pour les services RESTful.

src/main/Java
    +- com
        +- example
            +- Application.Java
            +- ApplicationConstants.Java
                +- configuration
                |   +- ApplicationConfiguration.Java
                +- controller
                |   +- ApplicationController.Java
                +- dao
                |   +- impl
                |   |   +- ApplicationDaoImpl.Java
                |   +- ApplicationDao.Java
                +- dto
                |   +- ApplicationDto.Java
                +- service
                |   +- impl
                |   |   +- ApplicationServiceImpl.Java
                |   +- ApplicationService.Java
                +- util
                |   +- ApplicationUtils.Java
                +- validation
                |   +- impl
                |   |   +- ApplicationValidationImpl.Java
                |   +- ApplicationValidation.Java

DAO = objet d'accès aux données.
DTO = objet de transfert de données.

1