j2ee Web应用程序的标准项目/包结构

ash*_*ram 18 java spring spring-mvc

我们正在使用Spring,Sping MVC和Hibernate开始一个新的Java EE Web应用程序.我们很可能也会使用maven.

在开始之前,我们需要为Web应用程序提出项目/包结构.

什么是Java EE Web应用程序的标准项目/包结构?

它还应该在所有应用程序服务器上运行,而不对项目结构或任何配置文件进行任何更改.

我们将使用Spring source IDE 2.6.0版(最新版本).

有任何想法吗?

sbr*_*ges 26

如果您使用的是maven,最好遵循标准的maven项目布局.你可以通过这样做让maven为你生成这个结构,

mvn archetype:generate 
Run Code Online (Sandbox Code Playgroud)

并从选项列表中选择spring-mvc-jpa-archetype

这会给你一个包结构,如,

  ??? 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
Run Code Online (Sandbox Code Playgroud)


TSn*_*der 19

MVCSR(模型,视图,控制器,服务,存储库)Web应用程序的通用,更完整的Java包结构如下所示:

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.
Run Code Online (Sandbox Code Playgroud)