当我使用命令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中进行修复。
- 下载jar文件
- 在IntelliJ Idea IDE中,转到文件>项目结构
- 选择模块
- 在dependencies部分,选择(+(icon>选择JAR或目录
- 将链接粘贴到JAR文件的位置
- 选择"确定"并应用
现在,它将被修复。
您需要创建Configuration类,并告诉他们使用我刚刚尝试的@Bean
进行容器化。它对我有用。
@Configuration
public class AppConfiguration {
@Bean
public JavaMailSender javaMailSender(){
return new JavaMailSenderImpl();
}
}
请在下面的网址上查看我的Gist,
https://gist.github.com/thangavel-projects/9c30e6fe141755cf471c9d574e7341b2