码迷,mamicode.com
首页 > 其他好文 > 详细

J2EE

时间:2015-12-17 15:53:34      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

Spring、Struts、Hibernate、EJB、JDBC、JNDI、JDO、JTA和JTS、AJAX、JMS、JSF、事务

Spring    (Model)

轻量级开发框架,分层架构,一站式(full-stack),高内聚低耦合,允许客户端JavaScript远程调用服务端JAVA类方法。

Spring应用中的对象不依赖于Spring的特定类。

POJO简单的Java对象,或指支持业务逻辑的协助类。

面向方面编程(AOP

通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发

为基于 Spring 的应用程序中的对象提供了事务管理服务。

核心容器

Bean Factory 使用控制反转(IOC模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。

依赖注入——构造、Setter、接口

上下文

DAO

异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。

ORM(对象关系映射,Object-Relation Mapping

       在单个组件中负责所有实体域对象的持久化,邓庄数据访问细节

Web模块

简化了处理多部分请求以及将请求参数绑定到域对象的工作

MVC框架

在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里

Spring也提供了很多基础功能(事务管理、持久化框架集成等等)

Struts (View)

减少在运用MVC设计模型来开发Web应用的时间。

l  M —— JavaBean或EJB

l  V —— JSP、Tag

l  C —— Action(用户请求和业务逻辑之间的桥梁) 和 Action Servlet

配置文件

1)默认值 “\WEB-INF\struts-config.xml”。

配置文件可以定义:

  1. 全局转发                    <global-forwards>
  2. Action Mapping           <action-mappings>
  3. Action Form Bean      <form-beans>
  4. JDBC数据源               <data-sources>
  5. 异常处理                     <global-exceptions>
  6. 声明                            <plug-in>

2)“\WEB-INF\struts-config.xml”

配置文件可以定义:

  1. 配置 Action Servlet类

核心控制组件

org.apache.struts.action.ActionServlet

Action Servlet是Struts框架里唯一的Servlet,它负责处理所有请求。它无论何时收到一个请求,都会首先试着为现有请求找到1个子应用。一旦子应用被找到,它会为其生成一个Request Processor对象,并调用传入HttpServletRequest和 HttpServletResponse为参数的process()方法

Struts处理流程

技术分享 

图一 Struts处理流程

 技术分享

图二 Struts设置断点后详细流程

Hibernate (Control)

对象关系映射框架,它对JDBC进行了轻量级的对象封装,可以使用对象编程思维来操纵数据库,实现对象持久化和事务控制。

 技术分享

图三 Hibernate框架

核心类和接口

Session接口

  非线程安全,负责执行被持久化对象的CRUD操作

  save()    临时对象->持久化对象

Session Factory接口

  负责初始化Hibernate

Transaction接口

  可选接口,对实际事务实现的一个抽象,这些实现包括JDBC的事务、JTA 中的User Transaction、甚至可以是CORBA 事务。

Query接口

  有两种表达方式:HQL语言或本地数据库的SQL语句。

  经常被用来绑定查询参数、限制查询记录数量,并最终执行查询操作。

Criteria接口

  同Query,轻量级,不能在Session之外使用

Configuration类

  对Hibernate 进行配置,负责启动Hibernate,再创建一个Session Factory对象

缓存管理

第一级别的缓存,是Session级别的缓存,它是属于事务范围的缓存。

  当应用程序调用Session的save()、update()、saveOrUpdate()、get()或load(),以及调用查询接口的 list()、iterate()或filter()方法时,如果在Session缓存中还不存在相应的对象,Hibernate就会把该对象加入到第一级缓存中。

  当清理缓存时,Hibernate会根据缓存中对象的状态变化来同步更新数据库。 Session为应用程序提供了两个管理缓存的方法:

    evict(Object obj):从缓存中清除参数指定的持久化对象。

    clear():清空缓存中所有持久化对象。

第二级别的缓存是Session Factory级别的缓存,它是属于进程范围或群集范围的缓存。

** 查询缓存,依赖于第二级缓存。

延迟加载

get不支持延迟加载,load支持延迟加载。

EJB   Enterprise Java Beans

l  会话Bean(Session Bean)

l  实体Bean(Entity Bean)

l  消息驱动Bean(Message Driven Bean)

JDBC   Java Data Base Connectivity    java数据库连接

l  是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

l  常用类:Driver Manager、Connection、Statement / Prepared Statement / Callable Statement、Result Set

JNDI   Java Naming and Directory Interface   Java命名和目录接口

JNDI可访问的现有的目录及服务有:

  DNS、Novell目录服务、LDAP(Lightweight Directory Access Protocol轻型目录访问协议)、 CORBA对象服务、文件系统、Windows XP/2000/NT/Me/9x的注册表、RMI、DSML v1&v2、NIS。

配置文件

<?xml version="1.0" encoding="UTF-8"?>

<datasources>

<local-tx-datasource>

<jndi-name>MySqlDS</jndi-name>

<connection-url>jdbc:mysql://localhost:3306/lw</connection-url>

<driver-class>com.mysql.jdbc.Driver</driver-class>

<user-name>root</user-name>

<password>root</password>

<exception-sorter-class-name>

  org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter

</exception-sorter-class-name>

<metadata>

<type-mapping>mySQL</type-mapping>

</metadata>

</local-tx-datasource>

</datasources>

获得链接

Context ctx=new InitialContext();

Object datasourceRef=ctx.lookup("java:MySqlDS"); //引用数据源

DataSource ds=(Datasource)datasourceRef;

conn=ds.getConnection();

JDO(Java Data Object)

l  是Java对象持久化的新的规范,也是一个用于存取某种数据仓库中的对象的标准化API。

l  JDBC只是面向关系数据库(RDBMS);JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。

l  通过访问JDO Instance , 达到访问JDO Instance 所代表的数据对象,包括:ERP,数据库系统等,使数据的存储介质对于应用的开发人员完全透明。

JTA(Java Transaction API)和JTS(Java Transaction Services)

——为J2EE平台提供了分布式事务服务(distributed transaction)

对比如下:

DAO

l  ⒈事务划分代码被嵌入到DAO类内部

l  ⒉DAO类使用JDBC API来进行事务划分

l  ⒊调用者没有划分事务的方法

l  ⒋事务范围被限定在一个单一的JDBC连接

JTA

l  ⒈用JTA对事务进行划分

l  ⒉事务划分代码被DAO分开

l  ⒊调用者承担划分事务的责任

l  ⒋DAO参与一个全局的事务中

AJAX(Asynchronous JavaScript And XML )

异步JavaScript 及XML。是一种基于 JavaScript和HTTP请求(HTTP requests),广泛应用在浏览器的网页开发技术。

  1. JavaScript:客户端脚本语言
  2. CSS:级联样式表
  3. DOM:文件对象模型(Document Object Model),处理可扩展置标语言的标准编程接口。
  4. XMLHttpRequest:一种浏览器对象,可用于模拟http的GET和POST请求。

技术分享 

图四 DOM标签

JMS是Java消息服务(Java Message Service)

JSF(Java Server Faces)

一种用于构建Java Web 应用程序的标准框架,为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。

事务

ACID原则——原子性、一致性、隔离性、并发性

 

J2EE

标签:

原文地址:http://www.cnblogs.com/sweetyu/p/5054211.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!