我想覆盖应用程序中定义的属性。属性通过cmd与应用程序中现有的其他属性。属性,但仅允许提供预定义值。
我需要的是通过应用程序中已经存在的命令行传递调度的参数。属性,它将更改在调度中定义的默认值。
我的问题是,当我从cmd执行jar文件时,它正在获取构建时存在于@计划
中的值。它没有覆盖现有值@计划
值。我想根据用户需要覆盖值。
Spring代码
@SpringBootApplication
@EnableScheduling
public class PSchedularApplication {
public static void main(String[] args) {
for(String s : args)
System.out.println("arguments passed=>"+s);
SpringApplication application = new SpringApplication(PSchedularApplication .class);
if(!(args).equals(null))
{
application.setAddCommandLineProperties(true);
}
application.run(args);
}
}
@Component
public class TaskSchedular {
@Scheduled(cron="${cronExpression}")
public void taskScheduling()
{
System.out.println("Welcome to task schedular " + new java.util.Date());
moveFile();
}
}
应用属性
cronExpression=0 0/1 * * * *
pzsc.poll.cron.weekly=0 0/2 * * * *
pzsc.poll.cron.daily=0/30 * * * * *
在cmd中
java -jar PSchedular-0.0.1-SNAPSHOT.jar --cron=cronExpression
java -jar -Dserver.port=9999 your_jar_file.jar
请看一下这条线。有很多例子。
有几种方法可以做到这一点,但我可以想到的一种方法是使用外部化的应用程序属性文件。看见https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-提供外部配置文件以了解更多详细信息。
您将拥有您的应用程序。属性(在src/main/resources下),带有默认属性cronExpression。但是当您调用JAR时,您可以传入一个系统属性来告诉Spring一个额外的属性文件在哪里,并可能覆盖该属性。
java -jar <jar_name> -Dspring.config.additional-location=my-other-file.properties
在我的默认SpringBoot应用程序中,它具有依赖项,调用(带有)返回以下信息 但是,我的机器上有两个驱动器,所以我想查看它们的磁盘空间详细信息。所以我添加了一个配置文件: 现在,我的健康endpoint返回以下数据 (稍后我将考虑如何抑制默认的“diskSpace”条目) 然而,由于我可能想在不同的机器上运行我的应用程序,我想配置磁盘驱动器,以便在我的文件。 还加上 配置在启动期间加载并记录到
我正在使用springfox swagger 2.8.0。我想根据我的需求定制我的Swagger文档和API版本路径。能够使用应用程序修改版本路径。属性,并且它正在正常运行: 斯普林福克斯。文档大摇大摆路径=/v2/可用性服务 http://localhost:8080/context-path/v2/availability-service 但是想要我的留档URL如下,如何使用applicati
我想开发一个API,使非程序员能够设置电子邮件属性,例如端口或主机。我发现我可以使用Spring Boot注释@ConfigurationProperties在类中加载属性。 我可以使用getPort检索属性,并使用setPort进行设置。 但是,使用此方法可以计算应用程序中的实际值。使用setPort或setHost时,属性文件不会更改。因此,当我重新启动应用程序时,更改会丢失。是否有办法实际更
我正在尝试在外部tomcat上运行camel应用程序。有2个应用程序。属性文件存在于我的项目中,一个在src/main/resources下,另一个在src/test/resources下。当我使用maven install命令创建war文件时,它使用应用程序。来自src/main/resources的属性文件(这是必需的),但当我在eclipse中使用tomcat启动应用程序时,它正在使用app
我在src/main/resources下创建了2个文件: 应用程序。属性 第一个具有从env变量中获取值的属性,而后者具有固定值。 根据这里的具体情况,我以这样的方式推出了Spring靴: 然而,不会产生任何影响,并且应用程序是局部的。属性似乎被忽略。 有什么提示吗?
我正在将一个非常基本的web应用程序部署到Google应用程序引擎。我使用的是Springboot,我可以在本地很好地运行应用程序,但当我部署到Google时,应用程序引擎不会启动实例。我在启动时配置了一个云SQL数据源。 我有云sql配置属性配置src/main/Resources/application.properties.App Engine似乎找不到这些属性,所以它无法正确设置Cloud