J2EE平台由一整套服务(Service),应用程序接口(API)和协议构成,它对开发企业级应用提供了功能支持.13个核心技术各自是JDBC, JNDI, EJB, RMI, JSP, SERVLET, XML, JMS, JAVAIDL/CORBA, JTS, JTA, JAVAMAIL和 JAF.

何为企业级应用?

1.数据量特别大.

2.用户特别多.

3.性能要求高.

4.安全性要求高.

5.生命周期长.

这时候我们就要考虑数据存储和查询的问题,系统訪问快慢即性能问题,怎样使用事务保证安全的问题,怎样使系统可扩展易维护的问题.这就要用到分布式,涉及远程方法调用,服务通信,事务和服务等技术,也就是EJB, RMI, JNDI, JTA等.

J2EE提供了一个框架-一套标准接口,用于开发分布式结构的应用,但它并没有提供实现.接口的意义在于让不同的厂商由于遵循共同的接口而全然解除依赖关系.举个样例,一个仅仅能装5号电池的手电筒,能够装不同牌子的5号电池.有了5号电池的规范,生产手电筒和电池的厂商就能够各自生产了.J2EE提供接口之后,第三方厂商或专注于整个J2EE架构中的特定组件,如Apache的Tomcat,实现了JSP和Servlet;或对J2EE规范提供了一个较为完整的实现,如JBoss和BEA公司的WebLogic.

J2EE包括的容器大概有这么几类:

Web容器

EJB容器

Applet Client容器

Application Client容器

如图所看到的.

所以,Tomcat实际上是Web容器,包括JSP容器和Servlet容器.JBoss和WebLogic是Web容器和EJB容器.这两年JBoss非常火.我们已经非常熟悉当前布在JBoss上的ITOO项目.JBoss和J2EE帮助我们处理了大量常规的编程任务,如提供事务服务,安全领域,可靠的消息,名称和文件夹服务,数据库訪问和连接池,线程池,集群,负载均衡和容错处理等.

我们来看看诸如JDBC和EJB等技术详细是怎样为我们的分布式应用提供支持的.

JDBCAPI以一种统一的方式来对各种数据库进行存取.这是一个统一的接口,屏蔽掉了不同数据库的特性.不知道朋友们是否还记得最初使用JDBC时写的代码,得到Connection和statement...我们还使用了连接池,从连接池中拿到连接,管理连接.我们的数据持久层使用了Hibernate,而Hibernate是JPA规范的实现.前面J2EE的13个规范中并没有提到JPA,这里要补充一点,J2EE规范并不仅仅有13个,这13个仅仅是人们经常使用的.正如设计模式不止23个一样,我们仅仅是最经常使用这些罢了.JPA封装了JDBC,所以我们系统中用好Hibernate而不用关心JDBC了.

EJB在J2EE规范中属于被广泛应用的.它提供了开发和实施分布式商务逻辑的框架,定义了EJB组件在何时怎样与他们的容器进行交互作用.EJB容器负责提供公共服务如文件夹服务,事务管理,资源缓冲池等.

JNDI被用于执行名字和文件夹服务.怎么理解呢,它提供了一个一致的模型来存取和操作企业级的资源(DNS和LDAP),本地文件系统或应用server中的对象.我们所写的EnterpriseJavaBeans对象实例执行在EJB容器中,下面代码范例就是使用JNDI查找应用server中的对象,这里的应用server是异于本地的应用server.

基础系统的spring-mvc.xml文件里配置了例如以下bean.

<jee:jndi-lookup id="InstitutionBean"jndi-name="ejb:itoo-basic-institution-ear/itoo-basic-institution-core-0.0.1-SNAPSHOT/InstitutionBean!com.tgb.itoo.basic.service.InstitutionBean"     >
</jee:jndi-lookup>

其它系统远程调用基础系统的该接口,使用JNDI查找就可以

/*** 获得全部学院*/@Overridepublic List<Institution> getAllColleageInfo() {InstitutionBean institutionBean = null;try {institutionBean = (InstitutionBean) this.lookupRemoteBean("itoo-basic-institution-ear/itoo-basic-institution-core-0.0.1-SNAPSHOT/InstitutionBean!com.tgb.itoo.basic.service.InstitutionBean");} catch (NamingException e) {e.printStackTrace();}return institutionBean.queryAllColleage();}

J2EE的博大精深还非常值得我们去研究,项目驱动是我们是我们越来越深入的良好模式.随后我们一起探索EJB的伟大之处.

【J2EE】在项目中理解J2EE规范相关推荐

  1. 项目中采用J2EE体系架构分析

    从刚开始知道Java的时候,是从Applet开始的,看到它在客户端作出了很在丰富的动态效果,觉得它是我使用JS之外的另一种选择,觉得很新奇,但是没有投入太多精力去研究它,也以为Java语言的本事也就是 ...

  2. 应用 Rational 工具简化基于 J2EE 的项目第 8 部分 :测试软件

    本文是演示了在分布式的.基于 J2EE 的项目中使用 Rational 工具的系列文章(如下面所列)的第 8 部分. 第 1 部分: 项目介绍:高层次计划 第 2 部分: 风险管理:需求管理 第 3 ...

  3. Ant在Java项目中的使用(一眼就看会)

    参考:http://www.cnblogs.com/zhengqiang/p/5557155.html Ant是跨平台的构建工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将A ...

  4. 聊一聊JAVA中的缓存规范 —— 虽迟但到的JCache API与天生不俗的Spring Cache

    为何需要规范 上一章中构建的最简化版本的缓存框架,虽然可以使用,但是也存在一个问题,就是它对外提供的实现接口都是框架根据自己的需要而自定义的.这样一来,项目集成了此缓存框架,后续如果想要更换缓存框架的 ...

  5. J2EE项目中异常的设计与处理

    异常设计 0.J2EE中的异常设计3层结构 Dao,Service,Controller异常处理原则:应该在Controller控制转发之前尽量处理,同时记录log日志,然后在页面以友好的错误提示告诉 ...

  6. 在j2ee的web项目中,执行文件如excel、word导入,文件路径可以是“C:/Users/user/Desktop/abc/abc.xls”这样的路径吗?还是应该是工程的路径:/WEB-INF/

    在j2ee的web项目中,执行文件如excel.word导入,文件路径可以是"C:/Users/user/Desktop/abc/abc.xls"这样的路径吗?还是应该是工程的路径 ...

  7. 关于J2EE项目中三层架构如何在开发中得到正确的实施

    我现在参与了一个广电项目的开发,项目采用了目前比较流行的框架进行系统的架构Struts2+sping+hibernate,项目的包结构主要分成Action.Service.dao这三层,Action层 ...

  8. 应用 Rational 工具简化基于 J2EE 的项目

    这个由多篇文章组成的系列文章讲述了如何在很紧的时间和预算的情况下通过应用 Rational 统一过程(RUP)以及 Rational 的其他工具来开发一个软件项目的. 文章的第 1 部分包含了高层次的 ...

  9. 应用Rational 工具简化基于J2EE的项目(一)

    第一部分 介绍 Steven Franklin 软件设计师和过程专家 2004 年 3 月 这个由多篇文章组成的系列文章讲述了如何在很紧的时间和预算的情况下通过应用 Rational 统一过程(RUP ...

  10. J2EE金融项目开发实战视频教程

    基于LigerUI+JBPM5自定义表单+Node.js的J2EE大型金融项目<财务预算系统>开发全程实录 适合人群:初级 课时数量:150课时 用到技术: nodejs SSH jsch ...

最新文章

  1. bootstrap使用总结
  2. mysql内置乐观锁吗_mysql 乐观锁详解
  3. python基础题-python基础练习题(一)
  4. Linux日志系统-07:案例3-rsyslog+logrotate实现SSH的日志滚动
  5. 正则表达式--元字符和限定词
  6. c++11 变长参数的使用(制作一个多参数多类型求和函数)
  7. CSS3 选择器(转)
  8. SQL Server 索引结构及其使用(一)
  9. linux训练python出现killed_Linux 查看进程被杀死的详情
  10. 《Python编程从入门到实践》记录之类编码风格
  11. matlab 符号表,MATLAB——matlab特殊符号表【转载】
  12. ANSI颜色字体一篇通
  13. cssz中a标签鼠标选中去除选中边框
  14. PlSqlDev中执行INSERT SQL语句包含符号导致数据异常
  15. ae效果英文版翻译对照表_AE 特效中英翻译
  16. 关于金融行业网络安全解决方案,您了解多少?
  17. 如何彻底干净地卸载McAfee Agent
  18. win10专业版 原版安装教程
  19. python相关性分析
  20. Coordinatorlayout嵌套滑动,自定义Behavior,听我来讲讲?

热门文章

  1. android .9图片如何引用,Android调用相机拍照并返回路径和调用系统图库选择图片...
  2. Towards Fully 8-bit Integer Inference for the Transformer Model
  3. N个结点不同结构的二叉树个数
  4. 360云盘会不会停止服务器,360云盘能否继续使用啊?
  5. 透過 OpenNI / NITE 分析人體骨架(上)
  6. Linux sed命令之删除文件第一行,第n行
  7. Momentum, RMSprob and Adam
  8. Hibernate getById方法 could not initialize proxy - no session
  9. java 挂起_Java 6 JVM挂起
  10. lasted是什么意思_lasted是什么意思_lasted怎么读_lasted翻译_用法_发音_词组_同反义词_继续存在( last的过去式和过去分词 )-新东方在线英语词典...