为什么我可以使用 mvn spring-boot:run 启动我的应用程序,而 IntelliJ run 不起作用?



当我使用命令mvn-spring-boot:run时,项目编译并完美启动。然而,当我在IDE(IntelliJ(中使用播放按钮时,我会得到以下错误:

Description:
Parameter 3 of constructor in com.example.module.services.PdfService required a bean of type 'org.springframework.mail.javamail.JavaMailSender' that could not be found. 

这可能是什么原因?我喜欢使用IDE提供的调试和开发工具。

我尝试过的:

  • 选择生成->重建项目
  • 单击"文件">使缓存无效/重新启动
  • mvn清洁->生成->生成项目
  • Maven->Reimport
  • 已检查"首选项"|"生成、执行、部署"|"编译器"|"排除"中是否没有排除

我的pom.xml

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

发生错误的服务

@Service
public class PdfService {
private final Logger logger = LoggerFactory.getLogger(PdfService.class);
private PdfCreator pdfCreator;
private ConfigProperties properties;
private ReceiptService receiptService;
private JavaMailSender javaMailSender;
private MessageSourceAccessor messageSourceAccessor;
@Autowired
public PdfService(PdfCreator pdfCreator,
ConfigProperties properties,
ReceiptService receiptService,
JavaMailSender javaMailSender,
MessageSourceAccessor messageSourceAccessor) {
this.pdfCreator = pdfCreator;
this.properties = properties;
this.receiptService = receiptService;
this.javaMailSender = javaMailSender;
this.messageSourceAccessor = messageSourceAccessor;
}

非常感谢您的帮助。

您需要添加org.springframework.mail.javamail.JavaMailSender.jar作为依赖项,因为它已丢失。您可以按照以下步骤在intellij中进行修复。

  1. 下载jar文件
  2. 在IntelliJ Idea IDE中,转到文件>项目结构
  3. 选择模块
  4. 在dependencies部分,选择(+(icon>选择JAR或目录
  5. 将链接粘贴到JAR文件的位置
  6. 选择"确定"并应用

现在,它将被修复。

您需要创建Configuration类,并告诉他们使用我刚刚尝试的@Bean进行容器化。它对我有用。

@Configuration
public class AppConfiguration {
@Bean
public JavaMailSender javaMailSender(){
return new JavaMailSenderImpl();
}
}

请在下面的网址上查看我的Gist,

https://gist.github.com/thangavel-projects/9c30e6fe141755cf471c9d574e7341b2

相关内容

最新更新