Java 在CDI中注入vs事件

Java 在CDI中注入vs事件,java,jakarta-ee,cdi,Java,Jakarta Ee,Cdi,我试图理解在两个不同bean中调用方法的区别。第一种方法是将一个bean注入到另一个bean中,然后在另一个bean中调用注入的bean的方法。第二种方法是使用@observe并触发事件。哪一个更好 根据您的解释,在这种情况下,两种解决方案的作用是相同的。如果您需要不止一件事情来观察/聆听事件,那么事件将非常有用。还取决于您希望如何构建应用程序。您想采用事件/侦听器方法还是更面向对象的方法?第一种方法是注入,它简单得多,因此更好。它也更容易测试-没有需要设置的事件上下文 第二种方法,事件驱动,更

我试图理解在两个不同bean中调用方法的区别。第一种方法是将一个bean注入到另一个bean中,然后在另一个bean中调用注入的bean的方法。第二种方法是使用@observe并触发事件。哪一个更好

根据您的解释,在这种情况下,两种解决方案的作用是相同的。如果您需要不止一件事情来观察/聆听事件,那么事件将非常有用。还取决于您希望如何构建应用程序。您想采用事件/侦听器方法还是更面向对象的方法?

第一种方法是注入,它简单得多,因此更好。它也更容易测试-没有需要设置的事件上下文

第二种方法,事件驱动,更为复杂,因为它引入了第三方(事件框架)来协调这两个类。测试也更难(需要更多的代码、时间和知识)


使用注入:它被广泛使用、广泛支持、广泛理解、更简单且易于测试/模拟。

我不知道cdi,但di是一种技术,观察应该是一种观察者模式。。因此,更好的情况取决于我认为..DI处于加载和重新初始化对象,它自动生成对象并调用post init方法,而观察依赖于上下文,有时应该存在类的实例以便在Event中调用desire方法更“常规”的方式:p