java – 依赖注入EJB 3 – 太多的选择?
我们正在启动一个基于EJB 3.0的新项目.我有一个“春天”的背景(和爱它),所以对我来说松散耦合和可测性是一个很大的必要.这个帖子不应该是关于“ejb vs.
spring”.如果您已经有了真正的项目经验,这将是完美的.
以下是一些演示问题的示例代码: 客户端 – > ejb – >合作者1 – >合作者.. – >合作者n <!-- language: java --> @Stateless public class SampleService { // or @Inject via CDI // or @Autowired via Spring @EJB // or just use a stateless session bean via EJB 3.0 private Bank bank; // same for this component @EJB private Calculator calc; // both collaborators must be settable from outside,to make everything testable (and mockable) /** * sample "business service" called from client */ public void debit(BigDecimal amount){ calc.calculate(amount.subtract(new BigDecimal(100))); bank.debit(amount); } } // or via @Component (Spring),or CDI? @Stateless // or Stateless Session bean with optional @Service/@Singleton annotation? public class Calculator { public void calculate(BigDecimal subtract) { // calculate stuff.... } } // or via @Component (Spring),or CDI? @Stateless // or Stateless Session bean with optional @Service/@Singleton annotation? public class Bank { public void debit(BigDecimal amount) { // ... } } 我想知道在ejb 3.0中为所有协作者及其合作者实施依赖注入的最佳方式是什么?在这个意义上的协作者可以非常非常小的专业课. 到目前为止,我们已经讨论了以下选项,因为总是没有一个正确的结论:) >只使用ejb标准与所有beeing无状态会话bean和所有后果(如池,资源处理等) a)弹簧有线依赖(通过“jboss snowdrop”整合) b)CDI有线依赖(通过WELD for ejb 3.0和jboss eap 5.1) 我不需要知道如何在单元测试中使用bean.我以后的答案是什么是最好的方法来连接运行的appserver内的所有依赖项(spring vs. guice vs. CDI vs. EJB).我只需要从外部EJB(“业务入口点”)向下知道图形.所以外面的一切(servlets,frontend等)不是这个问题的范围:) 请假定EJB 3.0和jboss eap 5.1为项目设置:) 期待您的答案,并希望有一些基于项目的知识. 解决方法
在Java中一般都有“太多的选择”,所以在这方面也是如此.我不会将EJB描述为通用的依赖注入框架,而是将其用于其目的.如果这是你想要的代码,你应该为此添加一个框架.如果你知道和喜欢春天,去吧.我使用Guice与EJB(
here是一本不错的菜谱),效果也很好,如果你需要另一个框架来弄清楚如何做到这一点.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |