java - Spring无法解析命令行参数

标签 java spring spring-mvc spring-boot

我正在将一个相当旧的应用程序迁移到 Spring Boot。它是用 xml 配置的,我在那里有以下代码片段:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="localOverride" value="true"/>
    <property name="locations">
        <list>
            <value>classpath:conf/${ENV}/some.properties</value>
        </list>
    </property>
</bean>

我使用以下命令行启动应用程序:

mvn spring-boot:run -Dserver.port=22222 -DENV=int

但启动失败并显示以下消息:

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'ENV' in value "classpath:conf/${ENV}/some.properties"

它以前有效,现在我有了 spring-boot-starter-web

有什么建议吗?预先感谢您!

更新:它在@PropertySource中不起作用,在xml中不起作用,抱歉造成误解

最佳答案

当使用maven spring boot插件运行应用程序时(就像你正在做的那样),你需要像这样指定

mvn spring-boot:run -Drun.arguments="--server.port=22222, --ENV=int"

如果您想使用java -jar 命令运行应用程序。就是这样

java -jar -Dserver.port=22222 -DENV=int XYZ.jar

关于java - Spring无法解析命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48112560/

相关文章:

java - Eclipse tomcat - 无法显示 index.jsp 页面

java - 有没有办法标准化进入 Spring 应用程序的所有请求有效负载中的所有字符串?

java - Spring Boot JAR 不适用于 Windows Server

Java 从原始类型 ArrayList 获取字段

java - 如何将多个单选按钮分组到单选组下

spring - 为什么我的 Spring Web 应用程序项目不能正确运行 Web 和 Thymeleaf 依赖项?

java - CallbackDataProvider的fetchCallback没有回调,所以网格为空

java - Spring Security 无效登录处理

java - 如何从不同线程使用 java.util.logging.Logger?

java - 可以从 JDBC 中运行 sqlite .import 命令吗?