首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

经典笔试篇-EJB及Spring篇

162、EJB 与JAVA BEAN 的区别?【基础】 答:Java Bean 是可复用的组件,对Java Bean 并没有严格的规范,理论上讲,任何一个Java 类都可以是一个Bean。但通常情况下,由于Java Bean 是被容器所创建(如Tomcat)的,所以Java Bean 应具有一个无参的构造器,另外,通常Java Bean 还要实现Serializable 接口用于实现Bean 的持久性。Java Bean实际上相当于微软COM 模型中的本地进程内COM 组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java 的远程方法调用(RMI)技术的,所以EJB 可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic 这样的容器中,EJB 客户从不直接访问真正的EJB 组件,而是通过其容器访问。EJB 容器是EJB 组件的代理,EJB 组件由容器所创建和管理。客户通过容器来访问真正的EJB 组件。

02

Java面试之EJB & Spring

答:Java Bean 是可复用的组件,对Java Bean 并没有严格的规范,理论上讲,任何一个Java 类都可以是一个Bean。但通常情况下,由于Java Bean 是被容器所创建(如Tomcat)的,所以Java Bean 应具有一个无参的构造器,另外,通常Java Bean 还要实现Serializable 接口用于实现Bean 的持久性。Java Bean实际上相当于微软COM 模型中的本地进程内COM 组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java 的远程方法调用(RMI)技术的,所以EJB 可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic 这样的容器中,EJB 客户从不直接访问真正的EJB 组件,而是通过其容器访问。EJB 容器是EJB 组件的代理,EJB 组件由容器所创建和管理。客户通过容器来访问真正的EJB 组件。

03

EJB学习心得

一:当EJB发布到JBOSS时,如果我们没有为它指定全局JNDI名称或修改其默认的EJB名称, JBOSS就会按照默认的命名规则为EJB生成全局JNDI名称。默认的命名规则如下: 如果把EJB作为模块打包进后缀*.ear的JAVA EE企业应用文件,默认的全局JNDI名称是 本地接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/local 远程接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/remote 如果把EJB应用打包成后缀为*.jar的模块文件,默认的全局JNDI名称是 本地接口:EJB-CLASS-NAME/local 远程接口:EJB-CLASS-NAME/remote 二:通过远程接口调用EJB的过程 首先客户端需要和EJB服务器建立Socket通信,在通信管道上他们需要来回发送IIOP协议消息。 因为数据要在网络进行传输,存放数据的JAVA对象必须要序列化。 三:通过本地接口调用EJB的过程 通过本地接口调用EJB,直接在内存中进行交互,这样可以避免网络开销、协议解析的开销和对象序列化的开销。 但是大家必须要注意,只有客户端与EJB应用在同一个JVM内运行的时候,我们才能调用本地接口 。 四:如何通过使用注解方式注入并使用其他的EJB和服务 注入和使用其他EJB的方式如下: @EJB EJB的接口 EJB的变量 通过注解”@EJB”可以注入并使用其他的EJB,如果有多个EJB的类实现了同一个接口,那么在使用”@EJB”的时候 需要明确指定是注入和使用哪一个EJB的Bean。指定方式如下: @EJB(beanName=”EJB类的名称”) EJB的接口 EJB的变量 注入和使用其他服务的方式如下: @Resource 服务名称 服务变量 注意在指定数据源的使用需要配置mappedName的属性值,例如: @Resource(mappedName=”数据库的JNDI名称”) DataSource dataSource 五:JMS中的消息 消息传递系统的中心是消息,一条消息有三部分组成 头(Header),属性(property),主体(body) 消息有以下几种类型,他们都是派生自Message接口 StreamMessage:一种主体中包含JAVA基原值流的消息,如填充和读取均按顺序进行。 MapMessage:一种主体中包含一组名-值对的消息,没有定义条目顺序 TextMessage:一种主体中包含JAVA字符串的消息(例如:XML消息) ObjectMessage:一种主体中包含序列化的JAVA对象的消息 BytesMessage:一种主体中包含连续字节流的消息 消息的传递模型为以下两种: 点对点(point-to-point:PTP):该消息传递模型规定,一条消息只能传递给一个接收方,可以接受过时的消息。采用javax.jms.Queue表示。 发布/订阅(publish/subscribe):该消息传递模型规定,一条消息可以传递给多个接收方,只能接受实时的消息。采用javax.jms.Topic表示。 六:如何发送消息(以Queue为例,如果是Topic则应把所有的Queue改为Topic) 1.得到一个JNDI的初始化上下文(Context) InitialContext ctx = new InitialContext(); 2.根据上下文查找一个连接工厂QueueConnectionFactory。该连接工厂是用JMS提供的,不需要我们自己创建, 每个工厂都绑定一个全局的JNDI,我们通过全局的JNDI来获取它 QueueConnectionFactory factory = (QueueConnectionFactory)ctx.lookup(“QueueConnectionFactory”); 3.通过连接工厂得到一个连接QueueConnection QueueConnection conn = factory.createQueueConnection(); 4.通过连接来建立一个会话(Session) QueueSession session = conn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE); 建立一个不需要事物的并且能启动确认消息已接受的会话 5.查找目标地址 Destination destination = (Destination)ctx.lookup(配置文件的JNDI名称); 6.根据会话和目标地址来建立消息生产者MessageProducer MessageProducer producer = session.crea

01

EJB 3.0 规范的变化可以大致分成2大部分

EJB 3.0 规范的变化可以大致分成2大部分: 1、 使用了jdk1.5中提供的 annotation 机制的编程模型。在EJB2.1中采用一些接口和部署时的描述符来完成类似的功能。  EJB的 annotations  在EJB3中所有的企业Bean都是POJO(Plan old Java object)和一些相关的描述符。用描述符可以用来定义Bean需要实现的 接口、O/R 映射时需要的信息、需要引用的资源等等。 2、 提供了一个基于Hibernate的 O/R Mapping 工具, EJB QL 发生了重大的变化。   当一个实体POJO类和EntityManager建立关系后,这个类就是可以实例化的类了,同时就时实例化上下文的一个部分。  JB3.0虽然提供了新的更简单的编程方法,但仍然保持向下兼容,EJB2.1中的部署描述符和 home/remote接口仍然有效。 目前EJB3.0支持的Annotations 包括: @Entity @Stateless @Remote @TransactionAttribute @Table @Id @Basic @Column @ManyToOne @OneToMany @ManyToMany @JoinColumn @AssociationTable

03

初识JAVA:JAVA最全基础知识复习(超详尽!!值得收藏!)

1、面向对象的特征 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

01

eclipse + JBoss 5 +

有时客户端程序(如JSP、Servlet)会和EJB组件运行在同一个JVM上,如在同一个J2EE服务器(JBoss、Weblogic等)中运行。这时就没必要 再通过远程(remote)接口访问Session Bean了,因为客户端和session bean都在同一个jvm上,只需要通过本地接口(local)访问即可。就象直接访问本地类一样(当然,不能直接访问EJB类,需要使用jndi和local接口来获得本地接口对象。当然,也可以通过remote接口来访问ejb,不过这样会有一些性能损失。就象在同一台机器上还通过socket进行访问一样,很多性能都损耗在网络上了。下面我们来举个简单的例子来看一下如何使用本地接口来访问session bean。     先建立一个session bean本地接口,代码如下:

03

一个Entity Bean要剥离出来至少三个以上的POJO

一个并没有行业经验积累的软件公司,它开发的软件,基本上完全是需求驱动,而不是领域模型驱动。只有具备了领域模型积累的公司才有资格去谈领域模型驱动软件开发。在由领域模型往某种编程语言如Java上来实现的时候,绝对不会是1:1的对应关系,即使是粗颗粒度的EJB2模型都做不到,更不要说更加强调细颗粒度的POJO模型呢?用面向对象的语言如Java来编写一个领域模型,如果是用EJB2模型,你需要使用最少两个以上的EJB,即一个 Session Bean,处理面向流程的控制逻辑,一个Entity Bean,处理面向持久化的实体逻辑(持久化操作附着在Entity Bean的Home接口上)。如果是更加复杂的领域模型,那么你需要更多的EJB,也许是一个领域模型需要多个Entity Bean和多个Session Bean。现在我们使用基于POJO模型的实现,那么粗颗粒度的EJB还要继续细分:一个Entity Bean要剥离出来至少三个以上的POJO,即一个或者多个实体类,一个或者多个DAO接口类,一个或者多个DAO接口实现类;一个Session Bean要切分为多个业务Bean。

02

tomcat weblogic 对比

J2ee开发主要是浏览器和服务器进行交互的一种结构.逻辑都是在后台进行处理,然后再把结果传输回给浏览器。可以看出服务器在这种架构是非常重要的。   这几天接触到两种Java的web服务器,做项目用的Tomcat,看视频看的是WebLogic Server(WLS),都是web服务器,有什么区别和联系呢?   (一)先简单介绍一下这两种服务器。   WebLogic是美国bea公司出品的一个application server,确切的说是一个基于Javaee架构的中间件,纯java开发的,最新版本WebLogic Server 9.0是迄今为止发布的最卓越的BEA应用服务器。BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。完全遵循J2EE 1.4规范。 Tomcat服务器是一个免费的开源的Web 应用服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且很重要的是她免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。而且由于开源,它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。   (二)相同点:   WebLogic和Tomcat都是基于java的基础架构来满足实时处理需求,不同的版本与jdk版本兼容和有所不同;因为都是要和前台交互,所以他们都基于sun公司的servlet来实现的。   (三)不同点:   功能性:   WebLogic更加强大。weblogic是j2ee的应用服务器(application server),包括ejb ,jsp,servlet,jms等等,全能型的。是商业软件里排名第一的容器(JSP、servlet、EJB等),并提供其他如JAVA编辑等工具,是一个综合的开发及运行环境。   WebLogic应该是J2EE Container(Web Container + EJB Container + XXX规范)!   Tomcat只能算Web Container,是官方指定的JSP&Servlet容器。只实现了JSP/Servlet的相关规范,不支持EJB(硬伤啊)!不过Tomcat配合jboss和apache可以实现j2ee应用服务器功能   一般来说考虑stucts等架构tomcat就可以了,但如果考虑EJB的话,WebLogic是比较好的选择。   扩展性:   用WebLogic运行标准的java可能并不是最好的方式,WebLogic里支持他自己的一些东西,这些东西虽然是在纯java基础上开发的,但其他工具里都没有。WebLogic Server凭借其出色的群集技术,拥有处理关键Web应用系统问题所需的性能、可扩展性和高可用性。   WebLogic Server既实现了网页群集,也实现了EJB组件 群集,而且不需要任何专门的硬件或操作系统支持。网页群集可以实现透明的复制、负载平衡以及表示内容容错 。 无论是网页群集,还是组件群集,对于电子商务解决方案所要求的可扩展性和可用性都是至关重要的。共享的客户机/服务器和数据库连接以及数据缓存和EJB都增强了性能表现。这是其它Web应用系统所不具备的 所以,在扩展性方面WebLogic是远远超越了Tomcat。   费用上:   Tomcat开源免费。   WebLogic不开源不免费。   总之,在功能强大和扩展性和可用性等方面WLS比Tomcat好很多,但这也不能说明WLS适合每一方面,从Tomcat的使用流行度便可以看出,Tomcat虽功能有限,但也很受欢迎。其实关键看你要做什么。Tomcat 是免费开源的jsp,servlet引擎,入门级别的Web服务器,刚入门的IT人使用Tomcat简单易上手。而且它一个轻量级应用服务器,最重要的是它免费,所以在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。Tomcat比较轻巧,消耗资源较少。当然,项目大的时候,WLS肯定再合适不过,而且Tomcat也无法满足太多需求,但是,WLS的费用也是不可小觑的。   总之,关键看你做什么,权衡利弊做选择。   此外,还有其他J2EE Application Server,例如: IBM的websphere、Sun的Glassfish、resin等。Apache全球应用最广泛的http服务器,免费。同样开源免费的JBoss

01
领券