`
justin8335
  • 浏览: 28333 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

java企业级应用之术语篇

阅读更多

java企业级应用之术语篇 2007-04-25 来自:java060515

在了解完J2ee的相关周边产品之后需要深入J2ee规范内部去了解一下到底这些规范
这里介绍几个最常用的规范

再继续说下去之前有必要说几个常识

Java的诞生
Java之父James Gosling早年从cmu毕业之后
从事了一段时间的开发工作,后来意外碰到一个项目
这个项目要求他用C++开发,但可爱的JG是天才,凡是天才在某方面特别突出的同时
必然有一些天生的缺陷,恩,或说共性,比如说懒,急躁和傲慢
JG既然是天才,那就必然具备这些共性,JG懒,以至于他学不好C++
不仅他学不好,当年开发出Java的那个团队也都学不好C++
他们急噪,以至于他们中有人甚至威胁以辞职的方式离开这个需要使用CPP开发的项目
他们傲慢,所以他们决定开发出一种新的语言来取代那个该死的CPP
更可爱的是,他们一开始居然给这门语言起名C++++--//没错,我没敲错
叫什么C加加 加加减减,意思是加上一些好东西,减去一些坏东西
天才的设定,有时候你会发现天才和傻瓜真的只有一线之隔
还好这个可爱的名字没有被继承下来,这些天才们给他们的产物起名叫Oak//橡树
只是后来当他们去注册这个名字的时候,发现这个名字已经被注册了
于是在Sun公司的一个女职员//mm就是心细,这个说法也是我们公司mm告诉我的
的提议下,把这个可爱的语言起名为Java,就是他们当时喝的咖啡的名字
所以我们看到Java的标志就是一杯冒着热气的咖啡

JavaBean
了解完Java之后,再来说说什么是JavaBean//华为面试题
JavaBean是什么?
咖啡豆
ja,更为科学点的解释是
用java语言编写的可重用的软件组件//组件的定义前面说过了,不再重复
很形象不是么?
将javabean放入杯子//容器,还记得容器的概念么?web容器,ejb容器
就可以冲泡//编译
成咖啡,供客人们品尝//运行
完美的服务

下面进入正题

再谈容器
前面介绍过容器,我觉得有必要再补充一点
容器从某种意义上说其实就是一个可运行的java写的应用程序
犹如c++/c编译后生成的.exe文件
不同的是java编译后的文件需要用命令行或者脚本启动执行
由于容器是由java写的,所以容器都能够跨平台
虽说如此,似乎大部分容器都针对不同的操作系统提供了不同的版本
但可以肯定的一点是,相同容器间的移植组件不需要重新编译

Servlet
web容器组件
Servlet确切地说,就是web容器运行的java组件
与普通javabean不同的是,Servlet定义了一系列方法//比如init()和destroy()
供容器调用,调用的主要目的是为了管理
当一个request请求被web容器截获之后,容器分析该请求地址
然后通过一个配置文件中的映射表//web.xml
调用相应的Servlet组件处理后将结果返还给客户端

JSP//Java Server Page
web容器组件
Servlet出现了之后,人们发现几乎没有办法用一个非常直观的方式去编写页面
毕竟页面是html语言编写的
而让我们用一种流程式的处理方式去逐行教计算机如何写html代码太困难
在这种情况下JSP应运而生,JSP将java代码嵌入html代码内部
然后存成.jsp文件,再由计算机编译生成Servlet储存起来//注意这个过程
所以JSP和Servlet对于web容器来说其实是一种东西,虽然它们编写遵循的标准有所不同
极大地简化了代码同时增加了代码的可读性,生产维护成本下降
值得一提的是,在制定JSP规范的过程中,借鉴了ASP的很多规范
写过ASP并熟悉Java语言的人应该能很快掌握JSP

EJB//Enterprise JavaBean
ejb容器组件
随着时间的推移,人们发现普通的JavaBean似乎并不能满足企业级应用的需要
最典型的就是虚拟机提供的垃圾回收收集机制也就是GC不够完善
可以优化的余地极大,在这种情况下,EJB应运而生
EJB和其它组件一样,不过遵循了某些规范而已
但是这些规范更多的是为充分利用机器并提高性能为主要目的的
举个简单例子
比如某个web服务器有100个用户同时连接上
由于网络连接是瞬时连接,所以很多时候并发数并没有100那么大
前一秒有可能有30个请求被发送过来并被处理
后一秒可以只有10个请求被发送过来并被处理
只有在非常非常极端的情况下才有可能发生100个请求同时被发送过来并被处理的情况
那么我们是否需要保留100个那么多个对象在服务器的内存里面去处理这些请求呢?
很显然,不需要,大多数时候//甚至可以说是所有时候,我不相信有那么极端的情况
我们只需要保存其中的10-30%就够了,那么什么时候需要20%,什么时候需要50%
甚至100%,这个过程就交给容器去管理,这就是ejb容器每天在干的事
管理内存中活跃的对象

恩,必须强调的一点是,由于使用的不成熟
我们经常把规范以及具体的应用两个名词混用
举个简单例子,我们说Servlet,极有可能说的是Servlet规范
也有可能说的是一个具体的Servlet,这个就要看情况而定了
EJB,JSP也是如此

JDBC
和数据库的连接
这个严格说来是数据库产商需要关心的事
关于AppServer如何与数据库的连接
但是也需要开发人员做一点事,因为AppServer不知道什么时候组件需要用到数据库
同时也需要开发人员告诉AppServer他们使用的是什么数据库,ip地址等等
JDBC就是关于这一套东东的规范
包括数据库的产商应提供什么样的接口
AppServer应用服务器应该如何去连接
开发人员应该如何去配置这些连接等等
还有一些数据源,连接池等概念参考相关数据在此就不再赘述

其它的规范比如JMX等确切地说与开发人员关联并不大了
这类高级应用只对AppServer应用服务器产商重要
也不再罗嗦了

分享到:
评论

相关推荐

    一个牛人给java初学者的建议

    1.浅谈java及应用 2.从JDK说起:哥三分家 3.java企业级应用之硬件篇 4.java企业级应用之软件篇 5.企业级应用之中间件 6.java企业级应用之综合篇 7.java企业级应用之术语篇

    Java加密与解密的艺术配书源代码

    全书包含3个部分,基础篇对Java企业级应用的安全知识、密码学核心知识、与Java加密相关的API和通过权限文件加强系统安全方面的知识进行了全面的介绍;实践篇不仅对电子邮件传输算法、消息摘要算法、对称加密算法、...

    Java加密与解密的艺术

    全书包含3个部分,基础篇对Java企业级应用的安全知识、密码学核心知识、与Java加密相关的API和通过权限文件加强系统安全方面的知识进行了全面的介绍;实践篇不仅对电子邮件传输算法、消息摘要算法、对称加密算法、非...

    Spring3.x企业应用开发实战(完整版) part1

     《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练...

    Spring.3.x企业应用开发实战(完整版).part2

     《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练...

    JBPM4工作流应用开始指南.rar

    完全解析jBPM4应用开发技术 9位工作流业内专家联袂推荐 随着在现代企业管理中对于信息化、流程化的深度挖掘,具有业务流程管理的技术和思想已经成为致力于全面掌控企业级应用系统人士“日常生活、居家旅行”的必备...

    endeavour-mgmt-1.25 项目管理

    它可以通过管理迭代和增量开发帮助用户创建大型企业级系统。 目前Endeavour支持,开发用例,迭代,项目计划,需求变更,缺陷追踪,测试用例,项目任务,文档管理,Actors,和项目术语表 Endeavour是一个便携式,...

    《MyEclipse 6 Java 开发中文教程》前10章

    6.6.4调试发布的企业应用 104 6.7小结 104 6.8 参考资料 104 第七章 开发Hibernate应用 105 7.1介绍 105 7.2 Hibernate 一览 105 7.2.1简介 105 7.2.2 Hibernate要点 106 7.3准备工作 112 7.4创建 HibernateDemo ...

    entref-spring-boot:使用Spring编写的RESTful DAL(数据库抽象层)参考实现

    定义企业级应用程序我们使用的术语“企业级应用程序”指的是具有以下功能的端到端解决方案: 横向可扩展性:通过添加其他容器和/或VM来增加容量基础结构即代码:使用源代码控制下的模板代码创建和管理Azure环境敏捷...

    spring in action英文版

     1.4.3 企业级应用中的IoC  1.5 应用AOP  1.5.1 AOP介绍  1.5.2 AOP使用  1.5.3 企业级应用中的AOP  1.6 Spring比较  1.6.1 比较Spring和EJB  1.6.2 关于其他轻量级容器  1.6.3 Web框架 ...

    ActiveMQ基础知识

    ActiveMQ基础知识 ActiveMQ是Apache软件基金会下的一个开源消息中间件,提供了基于Java的...ActiveMQ是一个功能强大、灵活的消息中间件,提供了高效、可靠的消息传递机制,广泛应用于分布式系统和企业级应用程序中。

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    由国内著名技术社区联合推荐的2012年IT技术力作:《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》,即将上架发行,此书从Web应用、数据备份与恢复、网络存储应用、运维监控与性能优化、集群高级应用等...

    J2EE中文版指南 CHM格式 带全文检索

    指定应用程序客户端的企业Bean引用 30 五.创建Web客户端 30 编写Web客户端代码 30 编译Web客户端 32 打包Web客户端 32 指定Web客户端的企业Bean引用 32 六.设置企业Bean的JNDI名 32 七.部署J2EE应用程序 33 八....

    消息队列RabbitMQ入门与5种模式详解

    RabbitMQ是开源的,实现了AMQP协议的,采用Erlang(面向并发编程语言)编写的,可复用的企业级消息系统;AMQP(高级消息队列协议)是一个异步消息传递所使用应用层协议规范,为面向消息中间件设计,基于此协议的客户端...

    LoadRunner性能测试巧匠训练营

    , 《LoadRunner性能测试巧匠训练营》分为四大部分:, 第一篇 初入职场:系统、全面、细致地讲解了刚刚步入性能测试领域的小白学习性能测试需要掌握的方法和知识点,包括性能测试的术语、指标、分类、模型,...

    Spring in Action(第二版 中文高清版).part2

    1.3.3 企业级应用中的依赖注入 1.4 应用AOP 1.4.1 AOP介绍 1.4.2 AOP使用 1.5 小结 第2章 基本Bean装配 2.1 容纳你的Bean 2.1.1 BeanFactory介绍 2.1.2 使用应用上下文 2.1.3 Bean的生命 2.2 创建Bean ...

    Spring in Action(第二版 中文高清版).part1

    1.3.3 企业级应用中的依赖注入 1.4 应用AOP 1.4.1 AOP介绍 1.4.2 AOP使用 1.5 小结 第2章 基本Bean装配 2.1 容纳你的Bean 2.1.1 BeanFactory介绍 2.1.2 使用应用上下文 2.1.3 Bean的生命 2.2 创建Bean ...

Global site tag (gtag.js) - Google Analytics