使用 spring 发送电子邮件在服务上失败



我正在处理一个项目(使用 spring boot(,我需要在其中发送实时电子邮件通知,电子邮件服务在其他类中调用,而不是在控制器中。我收到一个错误,指出我的服务邮件为空,但是当我将其放入控制器(RestController(时,它正在工作。我的错误在哪里?是否可以呼叫其他类别(服务(的邮件服务?对于使用 RestController 的过程,我使用了此示例,正如我所说它正在工作,这里是链接:http://therealdanvega.com/blog/2016/01/13/sending-async-emails-in-spring

如果您从另一个类调用服务,则@Autowire注解将不起作用,该类不受Spring Container管理。下面的链接遇到了与您相同的问题。

@Autowired和@Service从控制器工作,但不能从不同的包工作

如果你想从另一个不受 Spring 管理的类调用这个 Service 类,请在 Service 类中使用 getter/setter 方法。如果您共享代码,则调试更多代码会有所帮助。

我收到一个错误,指出我的服务邮件为空,但是当我将其放入控制器(RestController(时,它正在工作

这意味着 Spring 没有将服务的实例注入控制器。在这种情况下很难帮助您,因为您既没有提供错误消息,也没有提供控制器代码。我建议检查以下内容

  • 服务注释有@Autowired(或@Inject(的类成员
  • 具有邮件服务的 Bean 在应用程序上下文中定义

另请参阅:为什么我的 Spring @Autowired 字段为空?

最新更新