webentwicklung-frage-antwort-db.com.de

Was ist die empfohlene Projektstruktur für Springboot Rest-Projekte?

Ich bin ein Anfänger mit Springstiefel. Ich bin am Beginn eines Projekts beteiligt, bei dem wir mithilfe von Springboot Ruhe-Services erstellen würden. Könnten Sie bitte die empfohlene Verzeichnisstruktur empfehlen, die beim Erstellen eines Projekts zu beachten ist, das nur Rest-Services verfügbar macht?

21
niccolo m.

Sie müssen nicht etwas Besonderes tun, um zu beginnen. Beginnen Sie mit einem normalen Java-Projekt, entweder mit einem Maven- oder Gradle- oder IDE - Projektlayout mit Starterabhängigkeit.

Sie brauchen nur eine Hauptklasse, wie pro Führer hier und Ruhe ...

Es gibt keine eingeschränkte Paketstruktur. Die tatsächliche Struktur wird von Ihrer Anforderung/Ihrer Laune bestimmt und die Verzeichnisstruktur wird durch das Build-Tool/IDE festgelegt.

Sie können derselben Struktur folgen, die Sie möglicherweise für eine Spring MVC-Anwendung verwenden.

Sie können in beide Richtungen folgen 

  • Ein Projekt ist in Ebenen unterteilt:

    zum Beispiel: DDD-Stil

    • Serviceebene: Servicepaket enthält Serviceklassen
    • DAO/REPO-Schicht: Dao-Paket mit Dao-Klassen
    • Entitätsebenen


    oder 

    jede Schichtstruktur, die für Ihr Problem geeignet ist und für die Sie ein Problem schreiben. 

  • Ein in Module oder Funktionalitäten oder Features unterteiltes Projekt und ein A-Modul ist wie oben in Ebenen unterteilt

Ich bevorzuge die zweite, weil sie dem Geschäftskontext folgt. Denken Sie in Begriffen.

Was Sie tun, hängt davon ab, wie Sie das Projekt sehen. Es ist Ihre Code-Organisationsfähigkeiten.

12
theBeacon

config - Klasse, die aus Eigenschaftendateien liest

cache-Cachemechanismus-Klassendateien

konstanten - konstant definierte Klasse

controller - Controller-Klasse

ausnahme - Ausnahmeklasse

modell - Pojos - Klassen werden anwesend sein

sicherheit - Sicherheitsklassen

service - Impl Klassen

util - Utility-Klassen

validierungsklassen

bootloader - Hauptklasse

13
Subhasish Sahu

Nach docs: ist dies der empfohlene Weg

enter image description here

Ich habe ein Beispiel, das ich seit einigen Jahren benutze. Bitte schauen Sie als Referenz.

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

4
Nghia Do

Es wird eine somehow - Verzeichnisstruktur empfohlen, die unter https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-structuring-your-code.html erwähnt wird.

Sie können einen api-Ordner erstellen und Ihre Controller dort ablegen.

Wenn Sie über Konfigurations-Beans verfügen, legen Sie sie auch in ein separates Paket.

3
Alireza Fattahi

Bitte verwenden Sie die Spring Tool Suite (Eclipse-basierte Entwicklungsumgebung, die für die Entwicklung von Spring-Anwendungen angepasst ist).
Erstellen Sie ein Spring Starter-Projekt. Es erstellt die Verzeichnisstruktur für Sie mit den Spring Boot-Maven-Abhängigkeiten.

1
Jobin Joseph

Verwenden Sie Link-1, um ein Projekt zu generieren. Dies ist ein grundlegendes Projekt zum Lernen. Sie können die Ordnerstruktur verstehen. Verwenden Sie Link-2, um ein einfaches Spring-Boot-Projekt zu erstellen. 1: http://start.spring.io/ 2: https://projects.spring.io/spring-boot/

Gradle/Maven-Projekt erstellen Automatisch werden src/main/Java und src/main/test erstellt. Erstellen Sie ein Controller/Service/Repository-Paket und beginnen Sie mit dem Schreiben des Codes.

-src/main/Java (Quellordner) --- com.package.service (Paket) --- ServiceClass (Klasse) --- com.package.controller (Paket) --- ControllerClass (Klasse)

1
Rahul Kumar

Obwohl diese Frage eine akzeptierte Antwort hat, möchte ich trotzdem meine Projektstruktur für RESTful-Services mitteilen.

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 = Data Access Object.
DTO = Datenübertragungsobjekt.

1