Spring 启动 + Spring 邮件:标准 {PORT} 问题

Spring boot + Spring mail :Standard {PORT} issue

你好,在我将 spring 邮件添加到我的 application.These 后,问题出在 app.propreties。

spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.auth=true
server.port=${PORT}

这就是我在 EmailConfig 中绑定它的方式 class

@Value("${spring.mail.port}")
    private int port;

这也是我正在使用的邮件

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
            <version>2.3.1.RELEASE</version>
        </dependency>

每次我启动应用程序时都会收到此错误:

Description:

Failed to bind properties under 'server.port' to java.lang.Integer:

    Property: server.port
    Value: ${PORT}
    Origin: class path resource [application.properties]:20:13
    Reason: failed to convert java.lang.String to java.lang.Integer

Action:

Update your application's configuration

出于某种原因,我似乎无法在基本 8080 上发出请求 port.So 我已将 server.port 修改为此 server.port=${PORT:9191} 并且它有效,但我收到一些请求问题我的页面出于某种原因。 事情是,我在另一个应用程序上有相同的配置,并且无需我将端口修改为不同的 number.Why 它就可以工作,这是发生了吗?我想留在标准端口。

如有任何帮助,我们将不胜感激!

app.propertiesserver.port 属性 而在代码中您尝试访问空的 ${spring.mail.port}

如果您想保留在标准端口上,请从您的 application.properties 中删除行 server.port(因此它 运行 在 8080 上)。

server.port - 用于将应用程序配置为 运行 在标准端口以外的不同端口。

spring.mail.port - 用于配置 smtp 服务器端口。如果您的 SMTP 服务器使用的是标准端口,则不需要配置此 属性.

具有相同配置的其他应用程序将在环境变量或系统属性中设置 PORT 值。如果不向 PORT 变量分配任何值,就不可能 运行 应用程序,因为它是一个配置参数。