¿Cuál es la estructura de proyecto recomendada para proyectos de descanso de botas de resorte? [closed]

7 minutos de lectura

Soy un principiante con bota de resorte. Estoy involucrado en el comienzo de un proyecto en el que construiríamos servicios de descanso usando Spring Boot. ¿Podría aconsejar la estructura de directorio recomendada a seguir al crear un proyecto que solo expondrá los servicios de descanso?

avatar de usuario
ENDEESA

Desde el documentos:esta es la forma recomendada

La siguiente lista muestra un diseño típico:

com 
    +- example 
        +- myapplication 
            +- Application.java 
            +- customer 
                +- Customer.java 
                +- CustomerController.java 
                +- CustomerService.java 
                +- CustomerRepository.java 
            +- order 
                +- order.java 
                +- OrderController.java 
                +- OrderService.java 
                +- OrderRepository. java 
                

La aplicación. java declararía el método principal, junto con la SpringBootApplication básica de la siguiente manera:

package com.example.myapplication; 
import org. springframework.boot.springApplication; 
import org.springframework.boot.autoconfigure.SprinpootApplication; 

@SpringRootApplication public class Application { 
    public static void main(string[] args) 
        { 
            springApplication.run(Application. class, args); 
        }
}

  • Entonces, en este ejemplo, ¿el cliente y el pedido son carpetas o paquetes?

    – Fantasma3t

    30 de junio de 2020 a las 21:09

  • paquetes Pero los paquetes son solo una palabra java elegante para las carpetas que tienen clases java en ellas.

    – Antonio

    7 de septiembre de 2020 a las 5:21

  • Sorprendido muchos votos, con este paquete de estructura se puede ampliar el departamento/módulo sabio, también se ve un poco diferente de lo que normalmente usamos, por ejemplo. Respuesta de @Subhasish, nuevamente es preferencia del desarrollador/equipo

    – Ravi Parek

    10 de febrero de 2021 a las 9:08


  • Puede ser que el autor acaba de mostrar solo un propósito ilustrativo, el encabezado dice 2.2. Locating the Main Application Class

    – Ravi Parek

    10 de febrero de 2021 a las 9:11

  • @RaviParekh esa es la razón por la que se recomienda. Trabajamos en características, no en capas. Es muy común con muchos otros marcos.

    – Nombre en clave Jack

    23 de noviembre de 2021 a las 8:07

config – clase que leerá de los archivos de propiedades

caché: archivos de clase de mecanismo de almacenamiento en caché

constantes – clase definida constante

controlador – clase de controlador

excepción – clase de excepción

modelo – pojos clases estaran presentes

seguridad – clases de seguridad

servicio – Clases impl

util – clases de utilidad

validación – clases de validadores

cargador de arranque – clase principal

  • Esto es bueno para un proyecto inicial. Aún así, creo que tener paquetes como “excepciones” y “constantes” es un ejemplo de agrupación coincidente, como se indica aquí stackoverflow.com/questions/825281/… . También crea paquetes con cohesión de baja a cero, lo que puede resultar problemático en aplicaciones más grandes. en.wikipedia.org/wiki/Cohesion_(informática_ciencia)

    –Alkis Mavridis

    8 sep 2021 a las 10:22

avatar de usuario
El poderoso programador

Tú haces no hay que hacer algo especial para empezar. Comience con un proyecto java normal, ya sea maven o gradle o diseño de proyecto IDE con dependencia de inicio.

Solo necesita una clase principal, según la guía. aquí y descansar…

No hay una estructura de paquete restringida. La estructura real será impulsada por su requerimiento/capricho y la estructura del directorio es establecida por build-tool / IDE

Puede seguir la misma estructura que podría estar siguiendo para una aplicación Spring MVC.

Puedes seguir de cualquier manera

  • Un proyecto se divide en capas:

    por ejemplo: estilo DDD

    • Capa de servicio: el paquete de servicio contiene clases de servicio
    • Capa DAO/REPO: paquete dao que contiene clases dao
    • Capas de entidad

    o

    cualquier estructura de capa adecuada para su problema para el cual está escribiendo el problema.

  • Un proyecto dividido en módulos o funcionalidades o características y Un módulo está dividido en capas como arriba

Prefiero el segundo, porque sigue el contexto empresarial. Piensa en términos de conceptos.

Lo que hagas depende de cómo veas el proyecto. Son sus habilidades de organización de código.

  • sí, gracias, pero lo que me gustaría saber es cómo empaqueto los diferentes objetos en mi proyecto. ¿Dónde coloco el modelo, los servicios (si es necesario), los objetos dao y las clases impl?

    – chip

    1 de diciembre de 2016 a las 5:35

  • Puedes seguir la misma estructura que estás siguiendo en spring mvv..

    – El poderoso programador

    1 de diciembre de 2016 a las 6:04

  • ¿Puede decirme dónde deberían estar los objetos DTO? ¿En Servicio, en capa persistente con entidades y dao/repo, en capa web con controladores y frontend, u otro?

    – Denis Stephanov

    23/01/2018 a las 23:50

  • Defina un paquete y manténgalo allí. Las capas son solo conceptos abstractos y lo ayudan a construir un modelo conceptual de pensamientos.

    – El poderoso programador

    24 de enero de 2018 a las 18:24

  • @theBeacon gracias, ¿y qué pasa con la seguridad? dividir archivos o almacenar en carpetas separadas? aquí está mi pregunta: stackoverflow.com/questions/48599378/… ¿podría responder por favor?

    – Denis Stephanov

    3 de febrero de 2018 a las 16:54

avatar de usuario
Amar Prakash Pandey

Aunque esta pregunta tiene una respuesta aceptada, me gustaría compartir la estructura de mi proyecto para los servicios 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 = Objeto de acceso a datos.
DTO = Objeto de transferencia de datos.

avatar de usuario
Raúl Kumar

Use Link-1 para generar un proyecto. este es un proyecto básico para el aprendizaje. puedes entender la estructura de carpetas. Use Link-2 para crear un proyecto básico de Spring Boot. 1: http://start.spring.io/
2: https://proyectos.spring.io/spring-boot/

Crear un proyecto gradle/maven Automáticamente se crearán src/main/java y src/main/test. cree el paquete de controlador/servicio/repositorio y comience a escribir el código.

-src/main/java(carpeta de origen) —com.package.service(paquete) —ServiceClass(Clase) —com.package.controller(paquete) —ControllerClass(Clase)

  • sí, gracias, pero lo que me gustaría saber es cómo empaqueto los diferentes objetos en mi proyecto. ¿Dónde coloco el modelo, los servicios (si es necesario), los objetos dao y las clases impl?

    – chip

    1 de diciembre de 2016 a las 5:35

  • Sí, si escribe algún servicio, colóquelo en el paquete de servicios. La estructura se verá algo como esto. -src/main/java (carpeta de origen)

    – Raúl Kumar

    1 de diciembre de 2016 a las 7:31

  • -src/main/java (carpeta de origen)

    – Raúl Kumar

    1 de diciembre de 2016 a las 7:31

avatar de usuario
Jobín

Utilice Spring Tool Suite (entorno de desarrollo basado en Eclipse personalizado para desarrollar aplicaciones Spring).
Cree un Spring Starter Project, creará la estructura de directorios para usted con las dependencias de Spring Boot Maven.

  • sí, gracias, pero lo que me gustaría saber es cómo empaqueto los diferentes objetos en mi proyecto. ¿Dónde coloco el modelo, los servicios (si es necesario), los objetos dao y las clases impl?

    – chip

    1 de diciembre de 2016 a las 5:35

  • Sí, si escribe algún servicio, colóquelo en el paquete de servicios. La estructura se verá algo como esto. -src/main/java (carpeta de origen)

    – Raúl Kumar

    1 de diciembre de 2016 a las 7:31

  • -src/main/java (carpeta de origen)

    – Raúl Kumar

    1 de diciembre de 2016 a las 7:31

¿Ha sido útil esta solución?