传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229
由于本框架使用的是JSF+Spring+Hibernate的架构,因此WEB-INF路径下几个配置文件web.xml以及applicationContext.xml、faces-config.xml是比较重要的。Web.xml定义了使用的框架faces-config.xml定义了JSF页面的backingbean以及跳转关系,而applicationContext.xml定义了bean的依赖关系,即使用依赖注入的功能。
针对每个表的操作,框架提供了从表现层业务层到持久层的过程。这种过程也可以作为项目后续开发的一个参考。以一个表对应的页面为例。他的页面展现的应该是表格功能。页面由JSF实现,现有的页面使用了一些开源的组件,这些由于来源不够稳定的原因,今后不会使用。faces-config.xml定义了页面的backingbean。Backingbean中有一个相应Service的私有成员,它的实例化我们使用spring的依赖注入控制。Backingbean支持页面的数据取得,数据操作方法相应,这些与业务相关操作,是交由其Service进行。
每个Service都有至少一个DAO的成员,它的实例化也是靠spring的依赖注入控制。我们在Service中进行对数据的逻辑操作,其最后与数据库交互的过程,是由DAO完成。DAO基本上是Hibernate的内容,DAO中提供了完整的数据库操作方法,封装好了一些常用的查询,插入删除功能,也提供了按sql语句进行操作。
对于service中的非数据库操作,spring也提供能相当完善的无缝插入,对于JMS、WebService、RMI等分布式远程调用都提供了相当灵活而简单的帮助类,当注入到具体的业务处理实现类中后能让调用者根本无需知道具体的实现方式,对业务的实现提供能很好的扩展性,适应性,标准性和开放性。
对于项目的开发过程中,使用了框架之后,DAO,POJO不需要修改,主要需要后续开发的是针对需求功能开发页面和backingbean。对backingbean可以在现有的subbackingbean进行,针对需求实现业务,在Service中开发业务逻辑。Service中对数据库的操作,调用DAO类相应方法。
其中对于service层和DAO层的服务能力通过web容器集群来横向扩展,在DAO层通过web容器集群的session复制原理来实现在多容器环境中数据的同步存储,对service层通过web容器集群负载均衡达到对效率的优化整合,提高service层的响应能力,以最终到达整体应用的适用性,安全性和扩充性。