您的位置:首页 > 编程语言 > Java开发

Java EE工程目录结构规范

2014-09-17 10:49 190 查看


目的

为了规范应用的组件划分,明确各组件的边界,通过高内聚低耦合实现应用的模块化结构。


适用范围

所有Lifeix应用都应该遵循此规范。


规范

 


工程目录结构的划分

目录及结构
说明
采用工程集的方式组织每个应用的代码,实现高度的模块化
采用maven管理模块直接的依赖关系
xxx为顶层目录,里面包括父pom.xml文件和各子工程的文件目录
xxx.yyy.dao 子工程主要存放访问数据库的类和配置文件
xxx.yyy.service 子工程主要存放业务层的接口和领域模型,在做服务化的时候提供给第三方使用
xxx.yyy.impl 子工程是业务层的实现类和配置文件
xxx.yyy.web 子工程提供http协议的数据接口
xxx.war 子工程包含war包所需的jsp、web.xml 等
xxx.task 子工程主要是应用里面offline的业务操作,比如数据迁移、定时任务等业务逻辑
子工程可以根据各应用的情况具体增减
xxx代码应用名称,各应用需要使用自己的应用名称替换“xxx”,yyy代码模块名称,各模块需要使用自己的名称替换“yyy”,比较简单的应用如果没有多模块的划分可以省略yyy
 

注:参考 apollo 工程目录结构  ssh://git@pangtong.l99.com:19022/framework/lifeix-demo.git

 

 


子工程直接的依赖关系

子工程直接的依赖关系如下图:



 

另外:工程集的parent需要继承自com.lifeix.pom,dependency的版本号、打包脚步 等都在com.lifeix.com 中控制



 


命名规范


目录命名规范

子工程所在的目录名称使用“.”将应用名称、模块名称、组件后缀分开
目录名称都使用小写
每个子工程下面的资源分四个目录组织,分别是: src/main/java、src/main/resources、src/test/java、src/test/resources
应用名称、模块名称尽量简单,最长不超过8个字符

包命名规范


dao子工程中包的命名规范如下:

src/main/java/com.lifeix.xxx.yyy.domain.User.java

src/main/java/com.lifeix.xxx.yyy.dao.UserDao.java

src/main/java/com.lifeix.xxx.yyy.dao.impl.UserDaoImpl.java

src/main/resources/com/lifeix/xxx/yyy/dao/impl/UserDaoImpl.xml

src/main/resources/conf/xxx-yyy-spring-dao.xml

ORM中的Entity包名为:com.lifeix.%appname%.%modulename%.domain

DAO接口所在包为:com.lifeix.%appname%.%modulename%.dao

DAO接口实现类所在包为:com.lifeix.%appname%.%modulename%.dao.impl

DAO操作使用的SQL脚步文件所在目录为:com/lifeix/%appname%/%modulename%/dao/impl

DAO的配置文件所在目录为:src/main/resources/conf/

 

service子工程中包名规范如下:

src/main/java/com.lifeix.%appname%.%modulename%.beans.User.java

src/main/java/com.lifeix.%appname%.%modulename%.service.UserService.java

Service中的领域模型所在的包名为:com.lifeix.%appname%.%modulename%.beans

Service中的接口所在的包名为:com.lifeix.%appname%.%modulename%.service

 

impl子工程中包名规范如下:

src/main/java/com.lifeix.%appname%.%modulename%.service.impl.UserServiceImpl.java

src/main/resources/conf/xxx-yyy-spring-service.xml

src/test/java/com.lifeix.%appname%.%modulename%.service.impl.UserServiceImplTest.java

src/test/resources/test4j.properties

src/test/resources/system.properties

src/test/resources/conf/xxx-yyy-spring-service-test.xml

Impl中业务接口的实现所在的包名为:com.lifeix.%appname%.%modulename%.service.impl

Impl中业务实现的配置文件所在的目录为:src/main/resources/conf/

 

 

web子工程中包名规范如下: 

src/main/java/com.lifeix.%appname%.%modulename%.web.vo.User.java

src/main/java/com.lifeix.%appname%.%modulename%.web.controller.UserController.java

src/main/resources/conf/xxx-yyy-spring-web.xml 

Web层数据数据对象所在的包为:com.lifeix.%appname%.%modulename%.web.vo 

Web层Controller所在的包为:com.lifeix.%appname%.%modulename%.web.controller 

Web层配置文件所在的目录为:src/main/resources/conf/

 

war子工程中包名规范如下:

src/main/java

src/main/resources/conf/xxx-application-context.xml

src/main/webapp/WEB-INF/web.xml

Web层配置文件所在的目录为:src/main/resources/conf/

 

task子工程中包名规范如下:

src/main/java/com.lifeix.xxx.yyy.task.service.UserStatService.java

src/main/java/com.lifeix.xxx.yyy.task.service.impl.UserStatServiceImpl.java

src/main/resources/conf/xxx-spring-task.xml

src/test/java/com.lifeix.xxx.yyy.task.service.impl.UserStatServiceImplTest.java

src/test/resources/test4j.properties

src/test/resources/system.properties

src/test/resources/conf/xxx-spring-task-test.xml

task中业务接口所在的包为:com.lifeix.%appname%.%modulename%.task.service

task中业务接口实现所在的包为:com.lifeix.%appname%.%modulename%.task.service.impl

task中配置文件所在的目录为:src/main/resources/conf/

 

单元测试的包名及目录规范:

单元测试类的包名和所测试类的包名一致,所在的目录为 src/test/java

系统配置文件system.properties及单元测试配置文件test4j.properties所在的目录为:src/test/resources

单元测试 spring 配置文件所在目录为:src/test/resources/conf

 

类的命名规范


DAO的接口命名为:XxxDao

DAO的实现类命名为:XxxDaoImpl

Service层接口命名为:XxxService

Service层接口实现类命名为:XxxServiceImpl

Web层controller的命名为:XxxController

单元测试类的命名为:XxxDaoImplTest、XxxControllerTest

       注:Xxx 为对象名称

 

配置文件命名规范


DAO层配置文件命名为:xxx-yyy-spring-dao.xml、xxx-yyy-sqlmap-config.xml

Service层配置文件命名为:xxx-yyy-spring-service.xml

Web层的命名为:xxx-yyy-spring-web.xml

war包的命名为:xxx-application-context.xml

Task的配置文件命名为:xxx-spring-task.xml

系统配置文件命名为:system.properties

单元测试配置文件:test4j.properties、system.properties、xxx-yyy-spring-dao-test.xml、xxx-yyy-spring-service-test.xml、xxx-yyy-spring-web-test.xml、xxx-spring-task-test.xml

注:xxx 为应用名称、yyy为模块名称。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  架构