spring-boot - intellij 显示“无法自动接线。找不到 'JavaMailSender' 类型的 bean。” 虽然代码仍然正确运行
问题描述
我正在尝试自动装配 JavaMailSender
@Autowired
private JavaMailSender javaMailSender;
我已将这些添加到 pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
这些应用程序属性:
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=xxx
spring.mail.password=xxx
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.connectiontimeout=5000
spring.mail.properties.mail.smtp.timeout=5000
spring.mail.properties.mail.smtp.writetimeout=5000
并且项目运行正常(我成功发送了邮件)。但是 intellij 在 javaMailSender 变量上显示错误。当我将鼠标悬停在它显示的错误上时
“无法自动装配。找不到 'JavaMailSender' 类型的 bean。”
我该如何解决这个错误?
解决方案
您需要为 Javamailsender 创建一个 bean。如果我的猜测是正确的,那么您的依赖项中有弹簧安全性。
你可以这样做:
@Configuration
public class MailConfiguration {
@Bean
public JavaMailSender getJavaMailSender() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost("smtp.gmail.com");
mailSender.setPort(587);
mailSender.setUsername("my@gmail.com");
mailSender.setPassword("mypassword");
Properties props = mailSender.getJavaMailProperties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
return mailSender;
}
}
推荐阅读
- python - 如何将文件导入 Tkinter 并运行脚本?
- angular - 将 async/await 与表单组一起使用
- javascript - 创建一个计算 x 的 P 次方的函数(x 和 P 都是整数)
- android-studio - 如何判断当前是否正在使用 flutter_blue 的设备上执行特征读取?
- python - 在 m2m 文件中添加验证错误 - Odoo 10
- sql - 使用宏将值传递给查询时,当值不存在时是否可以继续查询?
- git - How to obtain which lines changed for each commited file with git
- javascript - 如何获取具有匹配数据属性值的 dom 元素?
- powershell - 如何使用 Powershell 发送 ALT+ENTER?
- python - Python中基于特定主题或关键字的选择性文本提取