330 likes | 632 Views
浅谈 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 的微型版 , 常用于手机上的开发
E N D
浅谈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 核心技术 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安全认证框架)
Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。
Struts的核心: ActionServlet ActionForm Action ActionError ActionMapping ActionForward
Hibernate 提供了: a.提供了访问数据库的操作接口(如保存,更新,删除) b.内部封装了JDBC,对事务的控制(JTA) c.提供了如下核心接口: Configuration:配置和启动hibernate,创建SessionFactory对象 SessionFactory(会话工厂):初始化hibernate,创建session对象 Session:负责保存,更新,删除,加载和查询对象 Transaction:负责管理事务 Query和Criteria:执行数据库查询 Hibernate是非常优秀,成熟的O/R Mapping工具。它提供了强大的功能,让我们以面向对象的方式访问关系型数据库
什么是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(面向切面编程)
从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 ◆目的:解决企业应用开发的复杂性 ◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 ◆范围:任何Java应用 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
核心技术:控制反转(IOC) IoC(控制反转):本来是由应用程序管理的对象之间的依赖关系,现在交给了容器管理,这就叫控制反转,即交给了IoC容器,Spring的IoC容器主要使用DI方式实现的。不需要主动查找,对象的查找、定位和创建全部由容器管理
使用IOC框架应该注意什么第一、软件系统中由于引入了第三方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是一个优秀的国产开源项目,它是一组轻便小型的框架的集合,各个部分可以被独立使用,据作者称,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-Java-Frameworkhttp://www.csdn.net/article/2014-03-21/2818918-Nutz-Java-Framework