我知道这听起来像个愚蠢的问题,但我无法理解mvn和spring之间的区别-boot:run and intellij中的“run”。我的问题的背景是我有一个spring启动项目,它使用javamailssender通过电子邮件发送pdf文件。
该项目包含两个application.properties文件:
src/main/
+- java
+- resources
+- db
+- template
+- application.properties
+- target
application.properties
pom.xml
此javamailsender的属性(主机、端口、用户名、密码)在第二个应用程序属性中指定。
@Service
public class PdfService {
private final Logger logger = LoggerFactory.getLogger(PdfService.class);
private PdfCreator pdfCreator;
private ConfigProperties properties;
private JavaMailSender javaMailSender;
private MessageSourceAccessor messageSourceAccessor;
@Autowired
public PdfService(PdfCreator pdfCreator,
ConfigProperties properties,
JavaMailSender javaMailSender,
MessageSourceAccessor messageSourceAccessor) {
this.pdfCreator = pdfCreator;
this.properties = properties;
this.javaMailSender = javaMailSender;
this.messageSourceAccessor = messageSourceAccessor;
}
当我使用mvn-spring启动项目时-boot:run in 终点站就像一个魔咒。当我尝试在intellij中启动它时,ide可以´无法创建javamailsender的bean。我得到这个错误:
Parameter 3 of constructor in com.example.project.services.PdfService required a bean of type 'org.springframework.mail.javamail.JavaMailSender' that could not be found.
在intellij的gui中,我可以看到第二个application.properties文件(包含javamailsender所需的属性)是灰色的,因此我假设第二个文件无法识别。
我´我想了解为什么在生成项目时不考虑该文件,以及如何在不将属性写入配置文件的情况下修复此问题。因为使用mvn-spring可以在没有任何问题的情况下启动项目-boot:run there 我假设我只需要在intellij中找到run配置。
我很高兴得到任何解释和帮助。
暂无答案!
目前还没有任何答案,快来回答吧!