将EJB注入到Spring引导环境中

将EJB注入到Spring引导环境中,spring,spring-boot,jakarta-ee,ejb,Spring,Spring Boot,Jakarta Ee,Ejb,我目前正在从事一个SpringBoot项目,该项目由一个全栈web应用程序组成,使用SpringJPA进行持久化,服务用于业务级别,SpringMVC用于REST端点 到目前为止还不错,但我被要求添加在纯JavaEE中实现的功能。 我立即想到以某种方式在当前的Spring引导应用程序中“插入”两个简单的旧企业Java bean 到目前为止,我尝试了不同的可能性,但都没有成功。 EJb类似于 @Stateless(name = "TeacherService") public cl

我目前正在从事一个SpringBoot项目,该项目由一个全栈web应用程序组成,使用SpringJPA进行持久化,服务用于业务级别,SpringMVC用于REST端点

到目前为止还不错,但我被要求添加在纯JavaEE中实现的功能。 我立即想到以某种方式在当前的Spring引导应用程序中“插入”两个简单的旧企业Java bean

到目前为止,我尝试了不同的可能性,但都没有成功。 EJb类似于

    @Stateless(name = "TeacherService")
    public class TeacherServiceImpl implements TeacherService {
        ....
    }
我想将其注入Spring RestController,如下所示:

    @RestController
    public class ExampleController {

       @EJB / @Inject / @Autowire
       private TeacherService teacherService;   

       @GetMapping(value = "user")   
       public String getSomeData() {
         return teacherService.someMethod();
       }
    }
我尝试了几种组合,但到目前为止都没有效果。 我找到了一些相关信息,但看起来将EJB与Spring合并的唯一方法是使用完整的Spring框架,而不是Spring引导。 在有人指出这一点之前,我知道这是一项愚蠢的任务,我可以简单地将该类声明为带有@Service或@Component之类内容的Springbean,但赋值声明为“使用普通JavaEE提供一些函数”,这些注释属于Spring

对于这类任务,有什么解决方法(或者我没有尝试过的方法)吗? 或者,JavaEE的哪个组件可以轻松地与SpringBoot兼容?
谢谢您的时间。

Spring支持JSR-330(@Inject和@Named)

不幸的是,不支持@Stateless

但是Spring解决问题的方法只是将TeacherServiceImpl声明为配置类中的bean

@Configuration
public class MyConfig {
    @Bean
    public TeacherService teacherService() {
      return new TeacherServiceImpl();
    }
}
然后您将能够@Autowire/@注入bean。

看看这篇文章,看看这个链接:。