JAVA EE 应用和开发环境

轻量级JAVA EE平台

稳定的性能、良好的开放性、严格的安全性

选择Java EE构建信息化平台

企业的信息化 --> 不断整合 --> 异构系统

跨平台性、开放性、各种远程访问技术

2006 --> Java EE概念 --> 两个主要规范  JSF1.2和EJB 3.0

SSH组合是一种轻量级的Java  EE平台

高度的实用性和可扩展性

基于轻量级Java EE平台的应用可运行在普通的 Web 容器中,无需EJB支持,一样具有稳定的性能和极高的可扩展性、可维护性

Java EE应用超出经典Java EE应用规范 一种更广泛的开发规范

经典Java EE应用以EJB为核心,以应用服务器为运行环境

轻量级Java EE应用保留了经典Java应用的架构

Java EE规范特征:面向对象建模、优秀的应用分层、良好的可扩展性、可维护性

Domain Object层:POJO组成,包含了各自所需实现的业务逻辑方法

DAO层:数据访问对象层 DAO组件组成 (经典的EAO层对实体的CRUD)

业务逻辑层: 业务逻辑对象组成,实现系统所需的业务逻辑方法

①用于暴露Domain Object所实现的业务逻辑方法

②也可能仅仅依赖DAO组件

控制器层:拦截,调用业务逻辑方法,处理请求,结果转发到不同表现层组件

表现层:JSP、Velocity、PDF文档视图组件等

大致如下几类组件

表现层组件:JSP、Velocity、FreeMarker、Tapestry、普通的应用程序、小型智能设备

控制器组件:MVC框架提供一个前端核心控制器,核心控制器负责拦截用户请求,并将请求转发给用户实现的控制器组件。而用户实现的控制器则负责调用业务逻辑方法,处理用户请求。

业务逻辑组件:核心组件。通常,一个业务逻辑方法对应一次用户操作。对业务逻辑方法增加事务性。业务逻辑方法仅仅负责实现实现业务逻辑,不应该进行数据库访问,业务逻辑组件中不应该出现原始的Hibernate、JDBC等API。

当系统需要在不同持久层技术之间切换时,系统的业务逻辑组件无需任何改变。

JSP页面调用Hibernate的Configuration接口,荒唐!没有脱离Model 1的JSP开发模式。

JSP、Servlet中不要出现持久层API,包括JDBC、Hibernate、Entity EJB API。

理想情况是:业务逻辑组件中都不要出现持久层API。

DAO组件:也称数据访问对象,每个DAO组件都提供Domain Object对象基本的创建、查询、更新、删除等操作,对应数据表的CRUD原子操作。

不同的持久层技术,DAO组件的实现完全不同。每个DAO组件都提供接口,与业务逻辑组件解耦。

领域对象组件:抽象了系统的对象模型,每个领域对象对应一个或多个数据表。

软件不能彻底替换,只能在其原来的基础上延伸,因为软件往往是信息的延续,是企业命脉的延伸。

对于一个信息化系统,前期开发工作对整个系统工作量而言,仅仅是小部分,而后期的维护、升级往往占更大的比重。

要求软件系统具有很好的伸缩性,我理解为弹性。

理想的软件系统,各个设备支持热拔插,设备与设备之间实现完全透明,只要有通用的接口,设备之间就可以良好协作。

让应用之间的耦合停留在接口层次,而不是代码层次。

优秀的轻量级Java EE架构:Struts 2+Spring+Hibernate。无需专业的Java EE服务器,只需要简单的Web服务器。

常见的Web服务器:

Tomcat:Sun官方推荐的JSP服务器 

Jetty:可以作为嵌入式服务器,应用中加入Jetty的JAR文件,应用可在代码中对外提供Web服务。

Resin:目前最快的JSP、Servlet运行平台。

专业的Java EE服务器,支持更多的Java EE特性,如分布式事务、EJB容器等。常用:JBoss、WebLogic、WebSphere。

JSP是最早的Java EE规范之一,最经典的之一。

JSP是“草稿”文件,真正提供HTTP服务的是Servlet。广义的Servlet包含了JSP和Servlet。

Servlet 3.0提供了异步请求、Annotation标注、增强的Servlet API。

使用JavaBean来传输数据,中间层组件会将应用底层的状态信息封装成JavaBean集来传输数据,也称为DTO。

FreeMarker或者Velocity充当表现层技术。

Struts最早的MVC框架,Struts结合WebWork -> Struts2,拥有众多优秀的设计。

JSF:Sun推荐的Java EE规范,Apache提供了MyFaces实现。设计理念比Struts2更优秀。

Tapestry:纯粹的、组件式的MVC框架。提供了控制器和页面模板,无需使用表现层技术。

Hibernate:JDBC基于SQL,与面向对象不太一致。需要以面向对象的方式操作数据库 -> ORM。

最早的ORM:Entity EJB

POJO映射成持久化类,以面向对象的方式来操作POJO,Hibernate框架将这种操作转换成底层的SQL操作。

Sun 公司抛弃EJB 2.X规范,引入JPA规范。

JPA规范是一种ORM规范,底层可以使用Hibernate、TopLink等任意一种ORM框架作为实现。

如果应用程序面向JPA编程,可以在各种ORM技术之间自由切换。

iBATIS:SQL语句映射成对象,SQL Mapping工具。

Spring只是抽象了大量Java EE应用中常用代码,充满了各种设计模式,单例、工厂、抽象工厂、命令、职责链、代理模式。

Spring号称一站式解决方案。持久层框架为空!魅力所在,能与大部分持久层框架无缝结合。

像一个中间层容器,向上整合MVC,向下整合持久层框架。

轻量级Java EE这个概念就是由Spring框架衍生出来的。

真实的企业应用开发有两个重要的关注点:可维护性和复用。

企业希望以最快的速度,开发出最稳定、最实用的软件。

早期使用PowerBuilder和Delphi开发,公司有自己的基础类库。

为什么不将重复开发工作抽象成基础类库?a、开发效率 b、降低错误风险

每个软件公司有自己的一套基础类库。框架也可以看成一套基础类库,抽象了软件开发的通用步骤。

使用的框架到底是别人提供的,还是自己抽象出来的。

第三方框架经过更多人测试,自己抽象的框架更加熟悉底层运行原理。

Tomcat:提供Web容器基本功能、支持JAAS、JNDI绑定。

Tomcat只有7.0.X才支持Servlet3.0规范。不要下载安装版,启动、运行看不到控制台输出。

bin/命令路径  conf/配置  lib/服务器核心类库

logs/空路径每次运行日志  temp/Web应用运行临时文件 

webapps/用于自动部署Web应用

work/运行过程中生成的class文件 可以删除

Tomcat依赖一个环境变量:JAVA_HOME

 再次讨论下JDK的安装目录

bin/ javac.exe native2ascii.exe等

lib/ dt.jar tools.jar

jre/ JDK自带的JRE

配置tomcat的端口与控制台

改变服务端口 conf/server.xml 68行

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
tomcat运行多个服务,复制server.xml中的<Service>元素,在不同的端口实现提供多个服务。

列出Web应用根路径下的所有页面 修改conf/web.xml 104、105行

<init-param>
    <param-name>listings</param-name>
    <param-value>true</param-value>
</init-param>




猜你喜欢

转载自blog.csdn.net/u010248374/article/details/79234557