JavaBean与EJB之区分

  去年下半年正式结束学校生涯,步入社会开始工作,同时暂时放下了自己一直会C/C++三维开发,转向Java和Web开发,一上手就是Web Service的整个系统,服务器端浏览器端全是我一个人。Java里面最大的感觉就是概念特别多,虚张声势来得比较厉害,其实都是纸老虎,使用见招拆招的方法逐渐拨散乌云,一切也都开始回归原本:还是类,函数等等。本文从JavaBean的目的和发展方面就将几个基本概念做个区分:JavaBean, EJB。
1.什么是JavaBean?
        JavaBean是什么,这里先不谈。但首先要明白,JavaBean,EJB都是规范。为什么引入这些规范,它们有什么好处?请看如下描述:JavaBean与EJB规范在以下方面有共同的目标:通过标准的设计模式推广Java程序代码,提升开发过程和开发工具之间的重复运用性可携性.但是这两种规格的原始问题却是为了解决不同的问题.定义于JavaBean组件模型中的标准规范,被设计来产生可重复运用的组件,而这些组件通常被用于IDE开发工具,而且通常是可视化组件,当然并不一定是可视化组件. EJB规范所定义的组件模弄,刚是用来开发服务端的Java程序,由于EJB可能执行在不同的服务器平台上,包括无图形的大型主机上,所以EJB无法使用类似AWT或SWING之类的图形化程序库.因此在Sun关于JavaBean与EJB有这样一段描述:JavaBeans let you interactively build graphical user interfaces, and Enterprise JavaBeans let you write software components that execute business logic that runs on the server. With Enterprise JavaBeans transaction and state management, multithreading, and resource pooling are left to the server implementation.
Sun定义,JavaBean是一个可重复使用的软件组件。实际上JavaBean是一种Java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称bean。Javabean体系结构是第一个全面的基于组件的标准模型之一,为java类提供了定义方法、事件、属性的方法,以便在设计时允许外部的操作和定制。javabean组件是java类,这些类遵循一个统一的接口格式,以便该类的方法命名,底层行为以及具体实现能够符合标准的javabean组件构造方式。这些组件的容器能以标准方式与javabean进行交互,使得javabean可以部署在多种设计工具和运行环境中。 
就JavaBean的外貌来说,网上查到这样一些说法:
1)通常在类中可以使用两个方法: get和set来操作属性。(标准界面组件功能接口)
2)对于布尔逻辑类型的属性,允许使用"is"代替上面的"get"和"set"。没有试过!
3)类中方法的访问属性都必须是public的。
4)必须有public无参构造函数。
另外:JavaBean与ActiveX很相似,能用于任何理解JavaBean格式的应用程序。与此不同的是ActiveX可由任何语言开发但只能用于Windows平台,而JavaBean只能由Java开发但能在任何平台上运行。
2. 什么是EJB?
至于EJB,因为没有使用过,也不敢在此妄谈大论,沽且看点资料。
所以,EJB应该是Javabean的一种,只是其强调的重点不同罢了。EJB侧重于分布式系统方面.在需要分布式处理时,EJB有很好的稳定性,而Javabean虽然可以通过rmi实现远程方法调用,但他不能部署进EJB容器,稳定性也不如EJB,所以在需要分布式处理时,都会选择EJB.但如果不需要分布式处理,那么Javabean和EJB就没有什么大的不同了,这个时候如果选用EJB反而会增加额外的不必要的开销.所以在非分布式系统中,一般使用Javabean就足以解决问题了.
个人现在使用主要是Java Web Service, Servlet也少用,EJB没有用过,下次整个机会试试。
 
参考文献:
 
 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Protobuf(Protocol Buffers)是一种轻量级的数据交换格式,它可以用于结构化数据的序列化和反序列化。而JavaBeanJava语言中的一种编程规范,用于描述一个可重用的Java对象。 在将Protobuf与JavaBean进行互转时,可以通过以下几个步骤实现: 1. 定义Protobuf消息格式:首先需要定义一个.proto文件,其中定义了消息的字段和类型。例如,定义一个Person消息包含name和age字段: ``` syntax = "proto3"; message Person { string name = 1; int32 age = 2; } ``` 2. 使用Protoc编译器生成Java类:使用Protoc编译器将.proto文件编译成对应的Java类。执行以下命令生成Java类: ``` protoc --java_out=<output_directory> <proto_file>.proto ``` 3. 将Protobuf消息转换为JavaBean对象:使用生成的Java类,可以将Protobuf消息转换为JavaBean对象。例如,将Person消息转换为对应的JavaBean对象: ```java PersonProto.Person personProto = PersonProto.Person.newBuilder() .setName("John") .setAge(25) .build(); Person person = new Person(); person.setName(personProto.getName()); person.setAge(personProto.getAge()); ``` 4. 将JavaBean对象转换为Protobuf消息:反过来,可以将JavaBean对象转换为Protobuf消息。例如,将JavaBean对象转换为Person消息: ```java Person person = new Person(); person.setName("John"); person.setAge(25); PersonProto.Person.Builder personProtoBuilder = PersonProto.Person.newBuilder() .setName(person.getName()) .setAge(person.getAge()); PersonProto.Person personProto = personProtoBuilder.build(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值