J2EE体系架构交流目录J2EE框架简介12Leaf系统架构概述6目录J2EE框架简介126J2EE框架简介Struts框架Hibernate框架Spring框架浏览器界面技术Struts框架成熟的WebMVC框架Struts1.x:简单、高侵入Servlet控制器Action业务代理ActionFormStruts-config.xml–5Struts框架(MVC)–6Struts框架(Model1)–7Struts框架(Model2)–8基础知识JavaEE基础Struts框架Hibernate框架Spring框架浏览器界面技术Hibernate框架符合Java习惯的关系数据库持久化(ORM)框架–10Hibernate框架轻量级解决方案–11Hibernate框架支持灵活的关联关系映射一对一、一对多、多对一、多对多单向关联、双向关联继承事务和并发提供了非常方便易用的乐观锁支持支持悲观锁定灵活易用的HQL查询语言条件查询(CriteriaQueries)NativeSQL查询可以与JDBC一起使用–12基础知识JavaEE基础Struts框架Spring框架Hibernate框架浏览器界面技术Spring框架Overview–14Spring框架成熟的中间层框架与容器不依赖于应用服务器,在应用服务器之内或之外都能使用灵活、强大的控制反转(IOC)容器支持面向切面(AOP)的编程对中间层数据库访问提供了事务支持、DAO支持、JDBC以及Hibernate等多种ORM工具的集成支持灵活的Web层MVC框架,可以与Struts等其它Web框架集成为各种主流技术提供了整合与方便的支持工具:远程访问、WebService、EJB、JMS、Mail、定时器、动态语言等Spring2.5.x兼容Java1.4.2,完全支持Java6兼容J2EE1.3,完全支持JavaEE5Spring3基于Java5,完全支持Java6兼容J2EE1.4和JavaEE5,引入JavaEE6支持–15基础知识JavaEE基础Struts框架Spring框架Hibernate框架浏览器界面技术浏览器界面技术W3C标准技术DHTML、Javascript、CSS、Ajax基于W3C标准形成了很多界面技术框架JQuery、Prototype、MootoolsDojo、YUI、ExtJS、ZK、SmartClientGoogleWebToolkit(GWT)浏览器插件技术解决HTML标准技术无法支持的功能,如:动画、视频、报表打印、客户端本地设备与资源访问等。Flash、JavaApplet、ActiveX、SilverLight–17Leaf系统架构概述系统架构概述架构概览系统框架介绍架构概览对Spring框架的应用对Hibernate框架的集成与应用Struts1.x框架的应用界面显示技术劳动关系系统架构总览劳动关系系统的分层结构与各层职责系统的数据流模型基于Spring的系统架构Spring为企业应用程序提供了一站式解决方案,可以极大地提高开发效率和应用的灵活性基于Spring的系统架构系统架构整体基于Spring2.5.x使用Struts1.x框架做为Web框架,中间层(业务层)采用Spring进行管理,没有使用SpringWebMVC当前的企业应用中Struts1.x的应用最为广泛,避免了技术切换的学习成本以Spring为基础的系统架构为系统带来了极大的灵活性和可扩展性系统框架提供的各种API服务都可以注册为Spring管理的Bean,必要时可以被应用系统扩展或替换为特定于应用的实现系统的业务组件都开发为Spring管理的Bean,可以通过Spring轻易地为业务Bean添加声明式的事务控制、添加AOP控制SpringIOC容器降低了组件间的藕合充分利用Spring提供的各种基础设施和便利API使得开发人员更专注于业务罗逻开发:如EJB、WebService、定时计划等HibernateORM框架的应用轻量级解决方案–23由Spring管理底层资源HibernateORM框架的应用轻量级解决方案由Spring容器管理底层的JDBC连接、JNDI、JTA等资源,可以充分利用Spring声明式事务支持等好处,由Spring管理连接也降低了应用管理连接资源的复杂度–24Web框架的选择沿用Struts1.x作为Web层框架已被广泛使用的Struts1.x框架完全能满足业务需求避免了转向新框架的学习成本和转换成本Struts1.x与Spring的整合独立使用Struts框架,没有采用Spring提供的Struts1.x插件和DelegatingRequestProcessor进行集成保持了原有的基于Struts框架的开发习惯,降低学习成本通过在StrutsAction中用API获取Spring管理的Bean组件,最大程度上减少了配置文件的变化不需要在Spring配置文件中对Action类进行配置–25界面显示技术使用JavaScript框架支持跨浏览器的快速界面开发可任选开源界面组件库或界面开发的商业产品进行界面开发劳动关系系统提供了一套JSP标签库作为参考实现其它辅助界面技术根据需要可选用Flash技术实现图表、打印、界面特效等功能。甚至可以完全使用Flex技术实现所有界面。使用JavaApplet插件技术进行无需预览的Jasperreports报表打印控制功能–26劳动关系系统架构概览Spring框架UI标签库表格树工具栏表单录入标签输入框下拉列表日期时间按钮。。。其它标签面板系统框架缓存服务代码表缓存服务服务管理API参数配置服务查询辅助API持久化服务报表打印服务Excel读写服务通用回退服务日志服务JSON服务分页查询服务树构造API编码过滤器浏览器缓存过滤器安全过滤器日志过滤器数据校验服务。。。Hibernate框架系统管理授权管理日志管理系统参数。。。业务系统Struts1.x框架界面组件(Html、JS、CSS、JSP)请求处理层Action服务接口层BS服务实现层BSImpl数据访问层DAO数据库面向对象的业务实现层Helper系统的分层结构系统各层次的职责划分界面组件(Html、JS、CSS、JSP)界面内容显示,用户交互请求处理层Action业务代理,校验用户输入的合法性,将请求参数转换为业务数据对象并转交给业务组件进行业务处理,将业务组件返回的业务数据返回给用户界面捕获并处理异常基于Struts1.x的Action层必须是线程安全的服务接口层BS定义业务组件的接口,面向接口编程,业务接口使业务组件不依赖于具体的实现技术(POJO、EJB、WebService)服务实现层BSImpl业务组件的实现,可以通过调用下一层的业务对象实现具体的业务逻辑。通用配置或注解进行声明式事务处理,或直接使用事务API进行事务处理可灵活地选择POJO、EJB、WebService等具体技术进行实现BSImpl层应当是线程安全的系统各层次的职责划分面向对象的业务实现层HelperBSImpl层的辅助实现层,按照面向对象的方式实现复杂的业务逻辑与算法。对于业务逻辑简单的组件可以省略该层,该层也可以看作是BSImpl层的内部实现。数据访问层DAODAO层用于实现复杂的数据库访问逻辑,其主要目的是隔离特定于数据库的数据访问逻辑。通过为不同的数据库产品开发不同的DAO层实现,达到数据库产品迁移的目标。对于简单的业务和没有多数据库支持需求的应用,可以省略该层。DAO层也应该是线程安全的DAO层也可以类似BS和BSImpl层一样抽象出一个接口层,以实现面向接口编程和更好的扩展性。系统整体数据流图–31网络IBM系统框架ActionDAO持久化API(Hibernate、JDBC、JPA)BS(BSImpl)HTML、XMLActionForm、HttpRequestJavaBeanSQLResultSetEntityActionForm、HttpResponseApplicationServerClientDatabaseHTML、XMLHTML、XMLHTML、XMLEntityJavaBeanJavaBean、EntityJavaBean、Entity