如子模块的包名为user,则其包括如下子包:
1、action包
该包放置各种struts的action。
命名规则:xxxUserAction.java
2、dao包
该包属于持久层,主要存放对“数据库底层”进行操作的类
(1)PO(user.dao中)
该包放置各类dao(data access object),也就是放置对数据库访问的实现类(POJO),在用myeclipse中的“Hibernate Reverse Engineering”进行反向操作时在某一个目录中就会生成对应某个表的DAO,生成后可将该DAO拖到dao包中。有的项目中我们可以看到POJO的包,实际上里面存放的就是这个DAO包中的POJO。
命名规则:User.java(xxx为对应数据库的表名)
(2)PO的接口类(user.dao中)
根据自动生成的DAO,我们可以可以建立其对应的接口,在该接口中存放所有PO对数据库的操作方法。
命名规则:UserDAO.java
(3)PO接口的实现类(user.dao.impl中)
然后在dao包建立一个impl包,在impl包中放置对DAO接口的实现,譬如,UserDAO接口有一个实现类为UserDAOImpl,将该类放置到impl包中,对DAO的接口可以实现spring的IoC操作(这就是桥接模式的应用,将接口和实现分离!)。
命名规则:UserDAOImpl.java
3、util包
该包中放置常用的一些工具集。
命名规则:根据具体功能命名,如过滤器命名为EncodingFilter.java,数据库连接命名为DBConnection.java,分页命名为PageUtil.java
4、service包
和DAO存放PO与数据库的操作不同,这里的操作是“面向用户”的,也就是说,它是封装了数据库底层操作的更高级的操作。
(1)存放用户操作接口类(user.service中)
该包放置业务操作类,譬如用户服务类,一般情况将该用户操作类提取一个接口。
命名规则:addUserService.java
(2)用户操作接口实现类(user.service.impl中)
然后在service包下生成一个impl包,在impl包中才放置用户操作接口的实现类。该用户接口实现类中调用DAO接口对数据库进行操作,而调用该实现类的方法在struts的action中。
命名规则:addUserServiceImpl.java
5、vo包(value object)
vo包中的中包括struts中使用的POJO及actionform等信息。也就是开发过程中人为添加的POJO,主要用于业务层之间数据传递的对象。可以将vo包导入到action包中的类中,在表单之间传递vo对象。因为struts2中没有表单的概念,所以可以把vo对象当做form来使用。
命名规则:userVo.java(相当于struts1中的userForm.java)
6、struts包
主要存放struts相关的文件,多由struts自动生成,如资源文件等。
7、factory包
存放Session工厂。
8、bean包
存放一些公用的系统操作,如错误提示Exception、跳转页面Jump等。