浅谈J2EE架构 叶林宝 2014/3/22 厦大数据库实验室.

Slides:



Advertisements
Similar presentations
第 9 章 测试部署  9.1 测试  9.2 部署. 9.1 测试  应用测试:使用 JUnit 单元测试框架 测试的目的是检验开发结果是否满足规定需求,测试是保证软件质量的一个重要手段, 在软件开发过程中是不可缺少的组成部分。 单元测试与集成测试分别有各自的定义:在实际开发中,两者之间的界定是模糊的。
Advertisements

面向侧面的程序设计 方林博士 本文下载地址:
ASP .NET 程序设计(C#版) 第二版 机械工业出版社同名教材 配套电子教案
国家科学图书馆: 刘丹军、赵雅娟、王晓梅、胡正银等 创想通科技: 阎武鹏 等 2010年 洛阳
SAE Java 实际应用 在这里写上你的标题 作者名字/日期
基于SSH的web开发 AND 企业级WEB应用开发新技术
淘宝技术架构介绍
第一页是课程的标题 Spring入门示例.
J2EE Struts 和Spring 的区别.
建设数字化的卫生监督体系 深 圳 市 卫 生 监 督 所 2006年4月.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
精英型软件人才 培养模式的探索与实践 卢 苇 北京交通大学国家示范性软件学院.
Oracle数据库 Oracle 子程序.
在PHP和MYSQL中实现完美的中文显示
J2EE与中间件技术 ——Lab.
基于R和pentaho的全套开源BI平台的实现
Microsoft .NET 第4組 十月15, 2002 B 陳東傑 B 蔣佳勳
软件设计模式与体系结构课程设计 周 宇 College of Information Science and Technology
Hadoop I/O By ShiChaojie.
Spring Framework(一) 快速入门.
SVN的基本概念 柳峰
第六章 窗口系统和用户界面管理系统 山东大学计算机学院.
第二讲 搭建Java Web开发环境 主讲人:孙娜
面向对象建模技术 软件工程系 林 琳.
R in Enterprise Environment 企业环境中的R
第一章: Java Web 开发技术概述.
高级Web技术 复 习.
存储系统.
SVN服务器的搭建(Windows) 柳峰
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
Spring依赖注入及AOP简介.
Visual Studio Team System 简介
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
第一讲 J2EE基础 博和利初级培训 —开发技能.
第17章 网站发布.
数据挖掘工具性能比较.
PaPaPa项目架构 By:Listen 我在这.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
DevDays ’99 The aim of this mission is knowledge..
三:基于Eclipse的集成开发环境搭建与使用
程序设计工具实习 Software Program Tool
SOA – Experiment 2: Query Classification Web Service
新一代安全网上银行 小组成员:杨志明 王晶 任毅 刘建中 关昊 刘超.
SDA(Standard development architecture)框架介绍
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
基于struts和hibernate的网上新 闻发布系统
C# 入门 2011级ACM班 张方魁.
第四章 团队音乐会序幕: 团队协作平台的快速创建
VisComposer 2019/4/17.
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
98專題報告 行動裝置應用實例 -個人名片管理助手程式
Visual Basic程序设计 第13章 访问数据库
Touch Github = Touch the World
Delphi 7.0开发示例.
李青樺 陳筱綺 郭沛翎 黃斐琪 蔡佳娟 指導老師 : 葉佳益老師
WEB321 使用ASP.NET2.0快速开发电子商务网站
OpenStack vs CloudStack
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
CMP 讲义 2018 CMP设计哲学及基础概念 CMP推荐的4层代码结构.
_01自己实现简单的消息处理框架模型 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司
基于列存储的RDF数据管理 朱敏
WEB程序设计技术 数据库操作.
----以《西北民族音乐学术资源数据库》为例 西安音乐学院 景 月 亲
第21章 Spring 的MVC框架 Spring不但一个很好的集成框剪,它还提供了构建Web应用程序的全功能MVC模块。Spring 的MVC框架非常强大并不逊色于其他专业的Web框架,如Struts、WebWork。但在国内Spring MVC应用的并不是特别多,原因可能是Struts太深入人心的缘故吧。
Presentation transcript:

浅谈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是非常优秀,成熟的O/R Mapping工具。它提供了强大的功能,让我们以面向对象的方式访问关系型数据库 提供了: a.提供了访问数据库的操作接口(如保存,更新,删除) b.内部封装了JDBC,对事务的控制(JTA) c.提供了如下核心接口: Configuration:配置和启动hibernate,创建SessionFactory对象 SessionFactory(会话工厂):初始化hibernate,创建session对象 Session:负责保存,更新,删除,加载和查询对象 Transaction:负责管理事务 Query和Criteria:执行数据库查询

什么是持久化: 什么是O/R Mapping?(object/relationalmapping,ORM) A.它会自动地将对象的操作转换为SQL语句操作 B.提高学习和开发效率,降低开发成本 C.简化代码,减少bug数量 D.提高性能,对象级缓存可以避免不必要的数据存取,极大的提高数据读写的性能,节省时间和减少工作量 E.隔离数据源,可以很方面的转换数据库,只需修改配置文件

原理: 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 · 体积小,轻量级;最新版本的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-Java-Framework

谢谢!