JEE的@EJB和Spring的@Service有什么区别?

JEE的@EJB和Spring的@Service有什么区别?,spring,jakarta-ee,service,annotations,ejb,Spring,Jakarta Ee,Service,Annotations,Ejb,JEE的@EJB和Spring框架的@Service有什么区别 那是同一件事吗 如果没有,区别是什么 我将以下内容视为@EJB的定义,它看起来真的很像@Service的定义: 企业bean EJB是一个服务器端组件,用于封装 应用程序的业务逻辑 业务逻辑是实现应用程序目的的代码。它不起作用 显示业务数据或直接在数据库上执行操作 在JEE世界中,@EJB用于将一个EJB注入另一个EJB。 见: 在Spring中,通过使用@Autowired进行等效注入。 例如: @服务是Spring注释,用于在服

JEE的@EJB和Spring框架的@Service有什么区别

那是同一件事吗

如果没有,区别是什么

我将以下内容视为@EJB的定义,它看起来真的很像@Service的定义:

企业bean EJB是一个服务器端组件,用于封装 应用程序的业务逻辑

业务逻辑是实现应用程序目的的代码。它不起作用 显示业务数据或直接在数据库上执行操作

在JEE世界中,@EJB用于将一个EJB注入另一个EJB。 见:

在Spring中,通过使用@Autowired进行等效注入。 例如:

@服务是Spring注释,用于在服务层注释类。 其他注释:@Component、@Repository、@Controller、@Service。 见:

我想说:

@组件、@Repository、@Controller和@Service更接近于@Stateless或@Statefull,以及 @EJB类似于@Autowired 更新 @Autowired告诉Spring framework为您查找依赖项。@Inject注释也有相同的用途,但它们之间的主要区别在于@Inject是依赖项注入的标准注释,@Autowired是特定于spring的。
请参阅:

Spring和JEE是竞争对手。这就是为什么他们有一些相似之处。通常你会选择其中一个。就像你想要一辆车,需要在奥迪或丰田之间选择。你的问题就像询问奥迪和丰田的相同点/不同点。嗨@BalusC,谢谢你的回答。那么你的意思是它们是一样的,或者@EJB比@Service更通用?如果你使用JEE,那么你需要@EJB。如果您使用Spring,那么您需要@Service。就这些。嗨@BalusC,我刚刚100%理解了你句子的意思。我说的是他们之间的类比。基于@Ermal的回答,我最终得出结论:在春天:@服务是通过@Autowired或@Inject注入的。在JEE中,@Stateless或@Statefull分别通过@EJB或@Inject注入。但将它们混合在一个应用程序中表明存在问题。使用其中一个。嗨@Ermal,谢谢你的回复。所以在春季:@服务是通过@Autowired或@Inject注入的。在JEE中,@Stateless或@Statefull分别通过@EJB或@Inject注入。这与@BalusC的上述评论完全不同。我认为这不是网站。似乎只是对您的问题的一个直截了当的回答:如果您使用JEE,您需要@EJB;如果您使用Spring,那么您需要@Service和其他注释。EJB和JEE是竞争对手!好的,我现在明白了。JEE服务层由@Stateless或@Statefull定义的理由是正确的,或者两者都像@Component一样过于笼统。换句话说,是否真的是一个@Service类,类似于@Stateless或@Statefull类?您好@Ermal,您知道spring和jee注释之间是否存在映射器吗?我认为您的问题没有意义。每个框架都有自己的注释来表示其语义域内的特定类型,但不一定要在不同的框架中存在该类型或相同的语义。不需要映射器,但您必须重新考虑所有应用程序架构。
@Service
public class MyServiceImpl implements MyService {

}
@Controller
public class MyController{
    @Autowired MyService myService;
}