解构金蝶 Apusic 中间件

接触 J2EE 也有些时间了。最近打算自己写一个 EJB 容器,琢磨了一下,打算就着技术书籍和 Apusic 的源码来搞个小研究。

先在这开个坑,毕竟每天在家,除了上班准点报道,下班又准点报道,周末连坐下来想事情的时间也被各种扯淡事情打断,也是很烦的。:)

1月24日:

    先把几个重要概念梳理一下。平常我们用 javax.ejb.* 的 API 时,很少需要考虑别的东西。这里面就有中间件(容器)的功劳。举例来说,我们的客户端调用一个包含业务方法的 bean(这个 bean 可以实现 javax.ejb.SessionBean 接口),而这个 bean 是由一个 EJBHome 对象创建的。出于简化 web 开发者工作的目的,EJBHome 对象应该在 web 应用中以调用 javax.ejb.* 中接口的形式来获得。所以,EJBHome 对象的默认实现就交给中间件来做。EJBHome 对象应该负责查找和缓存 bean 实例,以及删掉调用得最少的 bean 实例的缓存。

    然后我们看看 Apusic 是怎么处理各种 bean 的。在源码的 com.apusic.ejb.container.EJBManager 类中,不同类型的 bean 会触发产生不同类型的容器。处理的 bean 类型是标准的 SessionBean(包含 Stateful 和 Stateless 以及 Singleton)、EntityBean、MessageDrivenBean 。而具体生成的步骤,则在源码的 com.apusic.ejb.generator.ClientDrivenGenerator 的 generate(int) 方法中。

2月20日:

    怎么把各种 EJB 接口调用的方法最终转为使用其实现类,目前观察是依靠自带的 org.objectweb 包对编译后的机器码进行替换。后面继续写写这部分的内容。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值