Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring框架中类似EJB的功能?_Java_Spring_Spring Mvc_Jakarta Ee_Ejb - Fatal编程技术网

Java Spring框架中类似EJB的功能?

Java Spring框架中类似EJB的功能?,java,spring,spring-mvc,jakarta-ee,ejb,Java,Spring,Spring Mvc,Jakarta Ee,Ejb,几年前我开始从事企业Java开发,似乎有了很多进步/变化;因此,我试图更多地了解EJB的快速发展历史以及导致Spring框架开发的痛点。现在,到目前为止,我知道EJB世界很容易,也就是说,我们不需要扩展或实现任何特定于框架的东西 我很难理解Spring框架中的哪些功能充当EJB 当我们在纯EJB中进行开发时,我们可以: JSP/servlet->EJB和EJB具有业务逻辑,到EJB的服务由EJB容器提供。这对我来说很清楚(或者我认为我的理解是正确的) 现在,问题来了;当我们使用纯Spring框架

几年前我开始从事企业Java开发,似乎有了很多进步/变化;因此,我试图更多地了解EJB的快速发展历史以及导致Spring框架开发的痛点。现在,到目前为止,我知道EJB世界很容易,也就是说,我们不需要扩展或实现任何特定于框架的东西

我很难理解Spring框架中的哪些功能充当EJB

当我们在纯EJB中进行开发时,我们可以: JSP/servlet->EJB和EJB具有业务逻辑,到EJB的服务由EJB容器提供。这对我来说很清楚(或者我认为我的理解是正确的)

现在,问题来了;当我们使用纯Spring框架时,我们用来封装业务逻辑的“东西”是什么?我了解到,在SpringMVC框架中,我们可以使用
@Service
注释来处理服务/业务层的bean;但这也是一个单一的框架“SpringMVC”;EJB可以独立存在,但在Spring中什么是等价的呢?如何在Spring框架中编写只包含业务逻辑的代码(EJB的方式)


有人能帮我理解吗?我确实读过,但我的疑虑仍然萦绕在脑海中。

Spring MVC涵盖了。。。WebMVC是框架的一部分。您可以完美地开发基于Spring的事务性业务服务,而无需使用SpringMVC作为表示层。这就是它被创建的最初原因。如果使用Spring及其POJO模型,则不需要EJB。业务逻辑将出现在您选择的服务或POJO中。它与EJB模型不同。更简单。如果您使用SpringBoot,您甚至不需要JavaEE应用服务器。您可以使用可执行JAR在JRE上运行。您可以使用公共方法编写一个类,并使用
@Service
(和
@Transactional
,如果您希望是事务性的)对其进行注释(按约定)。这与编写EJB没有什么不同,在EJB中,您可以使用
@无状态的
注释执行相同的操作。我说你用的是POJO,不是EJB。您将逻辑放在它所属的服务中。您可以选择将它们部署为SOAP、REST或控制器使用的基于接口的POJO。您的错误在于您认为
@Service
是来自Spring MVC的注释。不是。Spring MVC涵盖了。。。WebMVC是框架的一部分。您可以完美地开发基于Spring的事务性业务服务,而无需使用SpringMVC作为表示层。这就是它被创建的最初原因。如果使用Spring及其POJO模型,则不需要EJB。业务逻辑将出现在您选择的服务或POJO中。它与EJB模型不同。更简单。如果您使用SpringBoot,您甚至不需要JavaEE应用服务器。您可以使用可执行JAR在JRE上运行。您可以使用公共方法编写一个类,并使用
@Service
(和
@Transactional
,如果您希望是事务性的)对其进行注释(按约定)。这与编写EJB没有什么不同,在EJB中,您可以使用
@无状态的
注释执行相同的操作。我说你用的是POJO,不是EJB。您将逻辑放在它所属的服务中。您可以选择将它们部署为SOAP、REST或控制器使用的基于接口的POJO。您的错误在于您认为
@Service
是来自Spring MVC的注释。不是。