包的命名规则很多,说法也很多,但再怎么变也脱离不了三层架构这一说法,至少目前可以这么说。
在说新的规则之前,先说下我熟悉的老的命名规则。
表现层命名为:com.iguoer.web
如果使用Struts的话,会命名为:com.iguoer.web.action
如果使用Spring MVC的话,会命名为:com.iguoer.web.controller
业务层一般命名有两种
com.iguoer.service 和 com.iguoer.business
数据层一般命名为:com.iguoer.dao
使用hibernate的话,就有com.iguoer.dao.hibernate
根据有些解释三层架构的图上说,穿越三层的是一个叫domain域的东西,所以就有了
com.iguoer.domain
实体被称为持久化对象
所以有了com.iguoer.domain.po
组装后给页面有值对象,所以有了com.iguoer.domain.vo
一般工具类被放在com.iguoer.util中
应用程序放在com.iguoer.app中
我现在根据Spring的注释,重新写一个包的命名,当然这首先建立在你对三层架构的熟悉上。
com.iguoer.app 应用程序
com.iguoer.combo 组合对象,传给页面,相当于com.iguoer.domain.vo
com.iguoer.controller MVC中的控制,Spring的注释@controller
com.iguoer.controller.admin 管理员表现层
com.iguoer.controller.filter 表现层的过滤器
com.iguoer.entity 实体,相当于com.iguoer.domain.po Spring的注释@entity
com.iguoer.repository 储藏室,相当于数据层,类似com.iguoer.dao
Spring的注释@repository
com.iguoer.security 保密包,说明这里的东西尤为重要
com.iguoer.service 业务层,服务层,相当于com.iguoer.business
Spring的注释@service
com.iguoer.util 工具类
注:上面所说的表现层,其实指的只是MVC设计模式中的控制