工具以及J2EE项目理解

综合编程 2018-04-16

说明

项目越来越多了,J2EE占了绝大部分!!目前本人线上已经有Spring相关的项目,但经验不足!为了更好的玩转它,现抽出一部分精力研究并记录!!项目越多乐趣越多,加油吧!

工欲善其事,必先利其器!!! 先熟悉一下工具创建的项目之间的关系!

工具-eclipse

eclipse 创建相关项目如图:

工具-IDEA

绝大部分的项目都是eclipse下创建的,但IDEA工具是趋势!!

IDEA 创建相关项目如图:

J2EE项目

简介

J2EE是Java2平台企业版(Java 2 Platform,Enterprise Edition),它的核心是一组技术规范与指南,提供基于组件的方式来设计、开发、组装和部署企业应用。J2EE使用多层分布式的应用模型。

客户层:运行在客户计算机上的组件,用户与系统的接口逻辑,通过http协议的来访问应用服务器。

表示层:运行在J2EE服务器上的组件,通过与业务逻辑层互动,将用户需要的数据以适当的方式输出。

业务逻辑层:同样是运行在J2EE服务器上的组件。

企业信息系统层(EIS):是指运行在EIS服务器上的软件系统。

以上层次一般也指三层应用,也就是客户层+J2EE应用服务层+企业信息系统层,分布在三个不同位置:客户计算机、J2EE服务器及后台的数据库或过去遗留下来的系统。

客户层

Web浏览器

也称Web客户端, 以标准格式来显示从服务器传递过来的网页,它们传递给浏览器时已经是HTML或者XML格式,浏览器正确的显示给用户。

小应用程序(Applet)

是嵌在浏览器中的一种轻量级客户端,当web页面不能充分的表现数据或者应用界面的时候,才使用它,Applet是一种替代web页面的手段,能够使用J2SE开发Applet,Applet无法使用J2EE中的各种Service和API。需要运行在客户端安装了Java虚拟机的Web浏览器上。

应用程序客户端

J2EE应用程序客户端相对Applet而言,是一个较重量级的客户端,能够使用大多数的服务和API,它运行在客户机上,能提供强大而灵活易用的用户界面,如使用Swing或AWT创建的图形化的用户界面(GUI)。当然,应用程序可直接访问运行在业务层的Bean,如果需求允许,也可以打开HTTP连接,建立与运行在Web层上的Servlet之间的通讯。

J2EE应用服务器

两大容器

EJB容器+Web容器,即业务逻辑层+表示层

Web容器

管理所有的Servlet等Web组件的运行,对响应客户请求和返回结果提供了运行时的支持。

EJB容器:

负责所有的EJB的运行,支持EJB组件的事务处理和生命周期管理,以及Bean的查找和其他服务,支持J2EE多层架构的基础结构,是一个控制业务实现的运行期环境,并提供事务服务、持久性、安全性等重要的系统服务,让开发人员不必开发基础服务而将注意力集中在业务逻辑的实现。

两大组件(Web组件+Ejb组件)

Web组件

与基于Web的客户端进行交互,J2EE中有三类Web组件:Servlet、JSP、JavaBean,Servlet是Web服务器的功能扩展,接受Web请求,返回动态的Web页面。Web容器中的组件可以使用EJB中的组件来完成复杂的业务逻辑。值得注意的是静态的HTML页面和Applets不算是Web层组件。

EJB组件

包含三种不同类型的EJB:会话Bean、消息驱动Bean、实体Bean

第一:会话Bean:着重业务逻辑的实现与控制,负责与Web层通信,给Web层提供访问业务数据的接口。当客户端完成执行过程的时候,会话Bean及相关数据会消失。

第二:实体Bean:代表持久数据,数据相当于存储在数据库表中,它负责保存业务数据,给会话Bean访问业务数据的接口。

第三:消息驱动Bean:用于接收、处理客户通过JMS发送过来的消息,允许业务组件接收衣服的JMS消息。

企业信息系统层

负责运行企业信息系统软件,包括ERP、数据库、目录服务、其他遗留系统等。

Spring框架

框架图

Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式,主要部分包含 Beans、Context、Core 。

Bean 组件

Bean 组件在 Spring 的 org.springframework.beans 包下。这个包下的所有类主要解决了三件事:Bean 的定义、Bean 的创建以及对 Bean 的解析。对 Spring 的使用者来说唯一需要关心的就是 Bean 的创建,其他两个由 Spring 在内部帮你完成了,对你来说是透明的。

Context 组件

Context 在 Spring 的 org.springframework.context 包下,前面已经讲解了 Context 组件在 Spring 中的作用,他实际上就是给 Spring 提供一个运行时的环境,用以保存各个对象的状态。下面看一下这个环境是如何构建的。

AOP 特性详解

动态代理的实现原理, 要了解 Spring 的 AOP 就必须先了解的动态代理的原理,因为 AOP 就是基于动态代理实现的。动态代理还要从 JDK 本身说起。

在 Jdk 的 java.lang.reflect 包下有个 Proxy 类,它正是构造代理类的入口。方法 newProxyInstance 就是创建代理对象的方法。这个方法需要三个参数:ClassLoader,用于加载代理类的 Loader 类,通常这个 Loader 和被代理的类是同一个 Loader 类。Interfaces,是要被代理的那些那些接口。InvocationHandler,就是用于执行除了被代理接口中方法之外的用户自定义的操作,他也是用户需要代理的最终目的。用户调用目标方法都被代理到 InvocationHandler 类中定义的唯一方法 invoke 中。

模块详解

核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。

Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。

Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。

Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。

Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。

Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。

Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。

总结

J2EE所包含的各类组件、服务架构及技术层次,均有共同的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外部难以互通的窘境。

责编内容by:banketree (源链)。感谢您的支持!

您可能感兴趣的

The Relationship Between Jakarta EE, EE4J, and Jav... The Relationship Between Jakarta EE, EE4J, and Java EE The Jakarta EE name has ...
Java EE 正式移交至 Eclipse 基金会 甲骨文Oracle 宣布,Java EE 正式移交至 Eclipse 基金会。甲骨文与Java EE 两个最大贡献者IBM 和 Red Hat达成一致,将 O...
JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示... 1 学习计划 1 、角色管理 n 添加角色功能 n 角色分页查询 2 、用户管理 n 添加用户功能 n 用户分页查询 ...
J2EE进阶之上传和下载 二十二 上传和下载 一、文件上传必须要前提(记住) - 1、表单的method属性必须是post - 2、表单要提供的上传输入域。 - 3、表单的enct...
5. 应用服务器与微服务 – JavaEE基础系列... 本文是JavaEE基础系列的第五节。 Java EE简介 - JavaEE基础系列 JSR简介 - ...