类需要类型为';java.lang.String';那是找不到的

类需要类型为';java.lang.String';那是找不到的,java,spring-boot,java.lang.class,Java,Spring Boot,Java.lang.class,我试着在春天提供邮递服务。我使用SpringBootVersion2.1.7.Release和AmazonSQSJava消息传递库Version1.0.8 我的代码如下所示: @Service @RequiredArgsConstructor public class MailService { private static final Logger logger = Logger.getLogger(MailService.class.getName()); private fina

我试着在春天提供邮递服务。我使用SpringBootVersion2.1.7.Release和AmazonSQSJava消息传递库Version1.0.8

我的代码如下所示:

    @Service
@RequiredArgsConstructor
public class MailService {

private static final Logger logger = Logger.getLogger(MailService.class.getName());
private final AmazonSQS amazonSQS;

@Value("${aws.sqs.queue.mail}")
private final String sqsQueueMail;

public void sendMail(final SQSMailParams mailParams) {

    final String queueUrl = amazonSQS.getQueueUrl(sqsQueueMail).getQueueUrl();

    try {
        final String messageBody = SQSMailParams.createSQSMailParams(mailParams, mailParams.getTemplateKey(), mailParams.getProcessId()).toJson();
        final SendMessageRequest sendMessageRequest = new SendMessageRequest(queueUrl, messageBody);
        sendMessageRequest.setMessageGroupId("TOLL-BOX-MAIL");

        amazonSQS.sendMessage(sendMessageRequest);
        logger.info("TOLL-BOX mail added to mail queue");
    } catch (JsonProcessingException e) {
        logger.error("Mail cannot be added to the mail queue: " + String.join(",", mailParams.recipients) + "." + e);
    }

    }
}
但是我通过运行代码得到了以下失败

2020-03-02 07:34:00.242 ERROR 10568 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 1 of constructor in de.svg.tollbox.service.MailService required a bean of type 'java.lang.String' that could not be found.


Action:

Consider defining a bean of type 'java.lang.String' in your configuration.

Disconnected from the target VM, address: '127.0.0.1:43565', transport: 'socket'

Process finished with exit code 1

有人能告诉我我做错了什么吗谢谢。

sqsqsquemail
中删除
final

@Value("${aws.sqs.queue.mail}")
private String sqsQueueMail;
这会解决你的问题。
不知何故,使用
@RequiredArgsConstructor
,变量的
@Value
注释没有解析,这使得应用程序无法从
sqsqsquemail
中查找类型为
String

的bean

@Value("${aws.sqs.queue.mail}")
private String sqsQueueMail;
这会解决你的问题。
不知何故,使用
@RequiredArgsConstructor
,变量的
@Value
注释没有解析,这使得应用程序查找类型为
String

的bean,您在哪里定义了这个“aws.sqs.queue.mail”属性???是否需要在AmazonSQS上添加@AutowiredamazonSQS@akshayapandey我在属性文件中定义了mail属性。您在哪里定义了“aws.sqs.queue.mail”属性???需要在AmazonSQS上添加@Autowired吗amazonSQS@akshayapandey我在属性文件中定义了mail属性。