包的命名规则很多,说法也很多,但再怎么变也脱离不了三层架构这一说法,至少目前可以这么说。
在说新的规则之前,先说下我熟悉的老的命名规则。
表现层命名为: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设计模式中的控制