2011-05-04 17 views
13

Estamos comenzando una nueva aplicación web Java EE utilizando Spring, Sping MVC e Hibernate. Probablemente estaremos usando maven también.Estructura de proyecto/paquete estándar de una aplicación web j2ee

Antes de comenzar tenemos que idear la estructura del proyecto/paquete para la aplicación web.

¿Cuál es la estructura del proyecto/paquete estándar de una aplicación web Java EE?

También debe ejecutarse en todos los servidores de aplicaciones sin realizar ningún cambio en la estructura del proyecto ni en los archivos de configuración.

Usaremos Spring source IDE versión 2.6.0 (última versión).

¿Alguna idea?

Respuesta

21

Si usa maven, es mejor seguir el diseño del proyecto maven estándar. Puede obtener experto para generar esta estructura para que al hacerlo,

mvn archetype:generate 

y seleccione la primavera-mvc-APP-arquetipo de la lista de opciones

Esto le dará una estructura de paquete como,

├── pom.xml 
    └── src 
     ├── main 
     │   ├── java 
     │   │   └── mygroup 
     │   │    ├── controller 
     │   │    │   ├── HomeController.java 
     │   │    │   └── PersonController.java 
     │   │    ├── dao 
     │   │    │   └── PersonDao.java 
     │   │    └── model 
     │   │     └── Person.java 
     │   ├── resources 
     │   │   ├── db.properties 
     │   │   ├── log4j.xml 
     │   │   └── META-INF 
     │   │    └── persistence.xml 
     │   └── webapp 
     │    ├── index.html 
     │    ├── META-INF 
     │    │   ├── context.xml 
     │    │   └── MANIFEST.MF 
     │    ├── resources 
     │    │   └── css 
     │    │    └── screen.css 
     │    └── WEB-INF 
     │     ├── spring 
     │     │   ├── app 
     │     │   │   ├── controllers.xml 
     │     │   │   └── servlet-context.xml 
     │     │   ├── db.xml 
     │     │   └── root-context.xml 
     │     ├── views 
     │     │   ├── edit.jsp 
     │     │   ├── home.jsp 
     │     │   └── list.jsp 
     │     └── web.xml 
     └── test 
      ├── java 
      │   └── mygroup 
      │    ├── controller 
      │    │   ├── DataInitializer.java 
      │    │   ├── HomeControllerTest.java 
      │    │   └── PersonControllerTest.java 
      │    └── dao 
      │     └── PersonDaoTest.java 
      └── resources 
       ├── db.properties 
       ├── log4j.xml 
       ├── test-context.xml 
       └── test-db.xml 
+0

Hola. Gracias por la respuesta. Intenté eso pero no utilizaremos las cosas de etc de ejb. Además de esto, ¿cómo estructurar mis clases, es decir, controladores de primavera, modelos, daos, servicios, lógica comercial, varias interfaces, etc.? – ashishjmeshram

+1

actualizó mi respuesta para usar spring-mvc-jpa-archetype – sbridges

11

a, más completa estructura común de paquete Java para un MVCSR (Modelo, Vista, controlador, Servicio, Repositorio) de aplicaciones web es algo como:

java 
└── com 
    └── youdomain 
     | 
     ├── base // broadly used app-wide base and abstract classes) 
     | 
     ├── core // broadly, scattered use helpers, utilities, app health/stats 
     |   // tracking, logging, etc 
     | 
     ├── controller // Fields Http/CGI requests and drives/initiates request 
     |   // comprehension, validation, security checks, requesting 
     |   // operations by the Service module and invoking the View to 
     |   // generate a response. 
     | 
     ├── data // This is the lower level data infrastructure, with several 
     |   //packages under it for mappers, schema tables/enums, helpers, 
     |   // record location, id management, etc 
     | 
     ├── domain // app-wide exposed classes, managers, and interfaces to 
     |   // each persisted (usually DB) domain 'object'. Each 
     |   // object often correlates to one table row in you DB. 
     |   // Domain objects are mostly considered data, but have some fundamental 
     |   // record construction, validation, elaboration, and ancillary information 
     |   // functionality which is opaque to the rest of the application. 
     |   // For example: Customer, Account, Purchase, Inventory, 
     |   // Product, Sale, Return, SpecialOffer, FeedbackComment... 
     | 
     ├── repository // more complicated persisted objects, often structured 
     |  // to address certain efficiency or traversal needs, often each 
     |  // repository is underpinned by several records, tables, 
     |  // and even cross-DB structures. Example: 
     |  // -- OrderHistory, 
     |  // -- ProductsGlobalSearchIndex, 
     |  // -- CustomerSpecificProductMarketingSuggestionCorrelates 
     | 
     ├── service // The smarts of the whole application, performs macro, holoistic 
     |  // operations involving multiple DB tables and operations. Such as: 
     |  // -- account.UserAccountLifecycle, 
     |  // -- order.CustomerOrder, 
     |  // -- order.CustomerOrderShipment 
     | 
     └── view // Intefaces with your jsp, freemarker, tapestry etc. 
Cuestiones relacionadas