叶林宝-浅谈J2EE架构

Download Report

Transcript 叶林宝-浅谈J2EE架构

浅谈J2EE架构
叶林宝
2014/3/22
厦大数据库实验室
目录







(1)J2EE的来源、整体框架及其核心技术
(2)MVC开发模式的优势、劣势
(3)Struts介绍
(4)Hibernate介绍
(5)Spring介绍
(6)Ibatis介绍(与Hibernate的差别)
(7)Nutz(号称SSH的替代品)介绍
Java2 平台的3个版本:
J2ME:Java 2 Platform Micro Edition
Java的微型版,常用于手机上的开发
J2SE:Java 2 Platform Standard Edition
Java的标准版,用于标准的应用开发
J2EE:Java 2 Platform Enterprise Edition
Java的一种企业版用于企业级的应用服务开发
J2EE来源
J2EE容器
J2EE 核心技术
Servlet
Jsp(java 服务页面)
EJB(企业javaBean)
JDBC(java数据库连接)
JTA/JTS(java事务)
JNDI(java命名和目录服务)
JavaMail(java邮件服务)
RMI(远程方法调用)
JMS(java消息服务)
XML(Extensible Markup Language)
JCA(java连接器体系)
JAF(JAVA安全认证框架)
MVC
Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来
实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过
去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源
(message resources)整合到一个统一的框架中,开发人员利用其进行开发时
不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个
非常不错的应用框架。
Struts的核心:
ActionServlet
ActionForm
Action
ActionError
ActionMapping
ActionForward
Hibernate
Hibernate是非常优秀,成熟的O/R Mapping工具。它提供了强大的功能,
让我们以面向对象的方式访问关系型数据库
提供了:
a.提供了访问数据库的操作接口(如保存,更新,删除)
b.内部封装了JDBC,对事务的控制(JTA)
c.提供了如下核心接口:
Configuration:配置和启动hibernate,创建SessionFactory对象
SessionFactory(会话工厂):初始化hibernate,创建session对象
Session:负责保存,更新,删除,加载和查询对象
Transaction:负责管理事务
Query和Criteria:执行数据库查询
什么是持久化:
什么是O/R Mapping?(object/relationalmapping,ORM)
对象-关系映射是一门非常实用的工程技术,它是为了让程序对数据库的访
问变成面向对象式的访问,但是数据库本身是关系型的,为了解决这一难
题, O/RMapping 工具就扮演着从面向对象的访问到关系型数据库存储的桥
梁。
原理:
1.读取并解析配置文件
2.读取并解析映射信息,创建
SessionFactory
3.打开Sesssion
4.创建事务Transation
5.持久化操作
6.提交事务
7.关闭Session
8.关闭SesstionFactory
为什么要用:
1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复
性代码。
2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。
他很大程度的简化DAO层的编码工作
3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。
4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。
它支持各种关系数据库,从一对一到多对多的各种复杂关系。
Spring简介
它是一个开源的项目,而且目前非常活跃;它基于IoC(Inversion of
Control,反向控制)和AOP的构架多层j2ee系统的框架,但它不强迫你必须
在每一层中必须使用Spring,因为它模块化的很好,允许程序员根据自己的
需要选择使用它的某一个模块;它实现了很优雅的MVC,对不同的数据访问
技术提供了统一的接口,采用IoC使得可以很容易的实现bean的装配,提供
了简洁的AOP。
通俗的讲:Spring是一个集成了许多第三方框架的大杂烩,其核心技术是
IOC(控制反转,也称依赖注入)和AOP(面向切面编程)
Spring 框架的 7 个模块
从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从
Spring中受益。
◆目的:解决企业应用开发的复杂性
◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
◆范围:任何Java应用
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)
的容器框架。

核心技术:控制反转(IOC)
IoC(控制反转):本来是由应用程序管理的对象之间的依赖关系,
现在交给了容器管理,这就叫控制反转,即交给了IoC容器,Spring的
IoC容器主要使用DI方式实现的。不需要主动查找,对象的查找、定位
和创建全部由容器管理
IoC理论的背景
什么是控制反转(IoC)
使用IOC框架应该注意什么
第一、软件系统中由于引入了第三方IOC容器,生成对象的步骤变得有些复杂,本来是两者之间
的事情,又凭空多出一道手续,所以,我们在刚开始使用IOC框架的时候,会感觉系统变得不太
直观。
第二、由于IOC容器生成对象是通过反射方式,在运行效率上有一定的损耗。如果你要追求运行
效率的话,就必须对此进行权衡。
第三、具体到IOC框架产品(比如:Spring)来讲,需要进行大量的配制工作,比较繁琐,对于一
些小的项目而言,客观上也可能加大一些工作成本。
第四、IOC框架产品本身的成熟度需要进行评估,如果引入一个不成熟的IOC框架产品,那么会
影响到整个项目,所以这也是一个隐性的风险。
iBatis
iBatis 是apache 的一个开源项目,一个O/R Mapping 解决方案,iBatis 最大的
特点就是小巧,上手很快。如果不需要太多复杂的功能,iBatis 是能够满足
你的要求又足够灵活的最简单的解决方案。
MyBatis来源于iBATIS,iBATIS是一个由Clinton Begin在2001年发起的开放源代
码项目,iBATIS一词来源于“internet”和“abatis”的组合。该项目最初侧重于
密码软件的开发,现在是一个基于Java的持久层框架。iBATIS提供的持久层框
架包括SQL Maps和Data Access Objects(DAO),它是著名的ORM开发框架,
分为Java和.NET版本,有着众多的追随者。
搭建iBatis 开发环境:
1 、导入相关的jar 包,ibatis-2.3.0.677.jar 、mysql-connector-java-5.1.6-bin.jar
2 、编写配置文件:
Jdbc 连接的属性文件
总配置文件, SqlMapConfig.xml
关于每个实体的映射文件(Map 文件)
iBatis 的优缺点:
优点:
1、 减少代码量,简单;
2、 性能增强;
3、 Sql 语句与程序代码分离;
4、 增强了移植性;
缺点:
1、 和Hibernate 相比,sql 需要自己写;
2、 参数数量只能有一个,多个参数时不太方便;
Nutz是一个优秀的国产开源项目,它是一组轻便小型的框架的集合,各个
部分可以被独立使用,据作者称,Nutz的使命就是“解决第三方类库在
Web项目开发中的低效问题”,而Nutz也被称作是“除了SSH之外的另一
个选择”。
Nutz最初由zozoh(张志昊)于2009年发起,随着项目的发展,越来越多
的开发者参与贡献(提交代码、撰写文档、测试bug等),后来逐渐形成
了一个1000人左右的社区(主要成员)。
对于 Java 程序员来说,除 SSH 之外,的另一个选择: Nutz
Nutz的特点?
· 体积小,轻量级;最新版本的jar文件只有712kb;
· 对JDBC的封装支持; 针对JDBC进行了薄封装;
· 灵活;各个部分独立使用;
· 完整,不零散;它的所有功能均不依赖于第三方jar文件;
· 功能全面;它具有SSH框架拥有的大部分功能。
Nutz 为谁而设计?
如果你觉得 Hibernate 控制比较繁琐,iBatis 编写SQL又比较麻烦,
Nutz.Dao 专为你设计。
如果你觉得在多个服务器部署或者修改 Spring 配置文件很麻烦,Nutz.Ioc
专为你设计
如果你觉得直接写 XML 配置文件很麻烦,可视化编辑器又没控制感,
Nutz.Mvc 专为你设计
如果你觉得 JSON 转换很麻烦(要写超过一行以上的代码),Nutz.Json 专
为你设计
如果你觉得 Java 语法不如 Ruby 便捷, Nutz.Castor 以及 Nutz.Lang 专为你
设计
如果你以前根本没接触过 SSH ,只使用 JDBC 编程, 整个 Nutz 专门为你
设计
你只要在你的 classpath 下部署这个小 jar 包,你会得到上述所有好处
http://www.csdn.net/article/2014-03-21/2818918-Nutz-JavaFramework
谢
谢!
32