为什么说ejb框架笨重?
2003年以来就预言EJB会因他在J2EE without EJB一书中描述的那些缺点而失去其实用性。甚至在他看来,EJB3.0新的改进也不足以遏制这种趋势:
EJB 3.0改进了一些事情,但还是太少、太迟:依赖注入(DI)的能力不足以满足实际需要;拦截API认识到了需要有一个对横切关注点的解决方案,但我们看到的还是一个最差、最笨重、最容易出错的解决方案;由于要兼容那些现在已不相关的旧有技术,把它拖累了;沉重的EJB契约(它比“简化的编程模型”多出数百页)需要一个相当复杂的运行时环境,而且开销很大;尽管有语法糖(syntax sugar),但它还是不能掩盖EJB的大量缺陷,例如启动行为、单例、以及废弃的线程模型。最后,每次改变基础环境的时候,它都要有效地绑定到一个应用服务器环境中去。
什么是J2EE,什么是J2EE的架构,为什么要用J2EE进行企业级开发
j2ee就是java企业版,是基于java的jsp servlet javabean 等等一系列技术体系的统称,比如jsp就可以说他属于j2ee体系,struts也可以,并不是特指哪门技术,你用jsp开发的系统可以称为基于j2ee开发,你用struts开发也一样
j2ee是现在web应用系统的最强大的解决方案,性能安全性各方面都是一流,当然微软的.net也是很强大的,甚至在某些方面优于java,比如他的开发周期短,程序执行效率高,开发成本相对java较低,但不能跨平台是.net的致命伤,现在一般企业用户是不会用windows做服务器的,导致j2ee和.net的竞争是一面倒的态势
J2EE的快速开发平台有哪些
一、顶点信息
二、LiveBPM
J2EE是目前业界公认的企业级信息系统的支撑体系结构,是各个系统和系统内部各个组成部分之间的粘合剂。LiveBPM采用了J2EE架构特点,J2EE提供了跨平台的解决方案,提供了通用的JDBC数据库访问接口,无缝支持通过 XML 进行系统间和系统内部的数据传递,支持 LDAP目录访问接口。在J2EE体系结构中,所有的技术都是开放的,得到业界主流支持,所以系统平台的构建统一使用J2EE体系架构,有利于系统之间的整合,避免重复投资,降低IT的管理和建设成本。
j2ee的3个开发平台
J2EE Java2平台企业版(Java 2 Platform,Enterprise Edition)
J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。
J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,导致企业内部或外部难以互通的窘境。
在J2EE架构下,开发人员可依循规范基础,进而开发企业级应用;而不同J2EE供货商,同会支持不同J2EE版本内所拟定的标准,以确保不同J2EE平台与产品之间的兼容性。换言之,植基J2EE架构的应用系统,基本上可部署在不同的应用服务器之上,无需或者只须要进行少量的代码修改,即能大幅提高应用系统的可移植性(Portability)。
J2EE主由升阳与IBM等厂商协同业界共同拟定而成的技术规范,以企业与企业之间的运算为导向的JAVA开发环境。J2EE架构定义各类不同组件,如Web Component、EJB Component…等,而各类组件可以再用(reuse),让已开发完成的组件,或者是经由市面采购而得的组件,均能进一步组装成不同的系统。
对于开发人员而言,只需要专注于各种应用系统的商业逻辑与架构设计,至于底层繁琐的程序撰写工作,可搭配不同的开发平台,以让应用系统的开发与部署效率大幅提升。
J2EE的核心规范是 Enterprise Java Beans(EJBs)。EJB依照特性的不同,目前共分为三种,分别是Session Bean、Entity Bean,以及 Message Driven Bean 。其中 Session Bean 与Entity Bean 算是EJB的始祖,这两种EJB规格在EJB 1.x版本推出时就已经存在,而Message Driven Bean则是出现在EJB 2.0的规格之中。
目前业界许多程序设计师,或者是网页设计人员,多利用JSP/Servlet的便利性,进而在J2EE服务器之上开发相关的应用,或是整合公司内部的各种资源。
Java 2平台依照应用领域的不同,共分为三大版本,分别是J2EE、标准版本J2SE(Java 2 Platform, Standard Edition)、微型版本J2ME(Java 2 Platform, Micro Edition),以及Java Card等。
从整体上讲,J2EE是使用Java技术开发企业级应用的一种事实上的工业标准(Sun公司出于其自身利益的考虑,至今没有将Java及其相关技术纳入标准化组织的体系),它是Java技术不断适应和促进企业级应用过程中的产物。Sun推出J2EE的目的是为了克服传统Client/Server模式的弊病,迎合Browser/Server架构的潮流,为应用Java技术开发服务器端应用提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。J2EE是一个标准,而不是一个现成的产品。各个平台开发商按照J2EE规范分别开发了不同的J2EE应用服务器,J2EE应用服务器是J2EE企业级应用的部署平台。由于它们都遵循了J2EE规范,因此,使用J2EE技术开发的企业级应用可以部署在各种J2EE应用服务器上。
为了推广并规范化使用J2EE架构企业级应用的体系架构,Sun同时给出了一个建议性的J2EE应用设计模型:J2EE Blueprints。J2EE Blueprints提供了实施J2EE企业级应用的体系架构、设计模式和相关的代码,通过应用J2EE Blueprints所描述的体系模型,能够部分简化架构企业级应用这项复杂的工作。J2EE Blueprints是开发人员设计和优化J2EE组件的基本原则,同时为围绕开发工作进行职能分工给出了指导性策略,以帮助应用开发设计人员合理地分配技术资源。
J2EE组成了一个完整企业级应用的不同部分纳入不同的容器(Container),每个容器中都包含若干组件(这些组件是需要部署在相应容器中的),同时各种组件都能使用各种J2EE Service/API。J2EE容器包括:
◆ Web容器 服务器端容器,包括两种组件JSP和Servlet,JSP和Servlet都是Web服务器的功能扩展,接受Web请求,返回动态的Web页面。Web容器中的组件可使用EJB容器中的组件完成复杂的商务逻辑。
◆ EJB容器 服务器端容器,包含的组件为EJB(Enterprise JavaBeans),它是J2EE的核心之一,主要用于服务器端的商业逻辑的实现。EJB规范定义了一个开发和部署分布式商业逻辑的框架,以简化企业级应用的开发,使其较容易地具备可伸缩性、可移植性、分布式事务处理、多用户和安全性等。
◆ Applet容器 客户端容器,包含的组件为Applet。Applet是嵌在浏览器中的一种轻量级客户端,一般而言,仅当使用Web页面无法充分地表现数据或应用界面的时候,才使用它。Applet是一种替代Web页面的手段,我们仅能够使用J2SE开发Applet,Applet无法使用J2EE的各种Service和API,这是为了安全性的考虑。
◆ Application Client容器 客户端容器,包含的组件为Application Client。Application Client相对Applet而言是一种较重量级的客户端,它能够使用J2EE的大多数Service和API。
通过这四个容器,J2EE能够灵活地实现前面描述的企业级应用的架构。
在View部分,J2EE提供了三种手段:Web容器中的JSP(或Servlet)、Applet和Application Client,分别能够实现面向浏览器的数据表现和面向桌面应用的数据表现。Web容器中的Servlet是实现Controller部分业务流程控制的主要手段;而EJB则主要针对Model部分的业务逻辑实现。至于与各种企业资源和企业级应用相连接,则是依靠J2EE的各种服务和API。
在J2EE的各种服务和API中,JDBC和JCA用于企业资源(各种企业信息系统和数据库等)的连接,JAX-RPC、JAXR和SAAJ则是实现Web Services和Web Services连接的基本支持。
J2EE的各种组件
我们就J2EE的各种组件、服务和API,进行更加详细的阐述,看看在开发不同类型的企业级应用时,根据各自需求和目标的不同,应当如何灵活使用并组合不同的组件和服务。
· Servlet
Servlet是Java平台上的CGI技术。Servlet在服务器端运行,动态地生成Web页面。与传统的CGI和许多其它类似CGI的技术相比,Java Servlet具有更高的效率并更容易使用。对于Servlet,重复的请求不会导致同一程序的多次转载,它是依靠线程的方式来支持并发访问的。
· JSP
做Java开发都需要学什么?怎么学?
java开发主要学习的课程内容有:1.JAVA SE基础Java 开发前奏 环境搭建Java编程基础面向对象常用 类 API泛型 集合异常处理IO多线程网络编程类加载机制与反射设计模式2、JavaWeb核心技术HTTP 协议 WEB服务器 TomCatServletrequest与responseCookie与SessionJSP数据库高级开发AJAXJavaWEB高级开发技术基础加强之框架加载项目管理3、核心框架Struts2HibernateSpringMavenMyBatisJPASpringDataSpringMVCSpringSecurityShiroLinux项目穿插4、大数据大数据架构基础云计算基础Shell环境搭建Hadoop体系HDFS分布式文件系统数据导入5、综合学习,Java大数据课程Java大数据课程定位中高级Java开发工程师,课程内容涉及面广,内容深课程涵盖了JavaWeb,数据库,企业流行框架,JavaScript等企业最佳实践、云计算大数据课程、内容由浅入深,剖析原理,掌握实用技术。多个企业级的大型真实项目学习;Java大数据课程内容来源于企业,课程包含企业中使用最多、最热门的核心技术和框架;java的学习方式如下:1、网上参加网络在线教育直播课程,通过边学习网上操作项目实战学习,一般课时为6个月左右。2、参加线下的java类型的培训班,以全日制上课模式,一般为6个月——2年时间左右。3、如果有一定的编程和计算机经验,自学可以选择看书、看视频教学,然后操作实战方式。学习时长未知。