Spring Boot启动jar包动态添加配置文件参数
在Spring Boot中,可以通过传递命令行参数来动态添加或修改配置文件中的属性。这些参数在应用程序启动时被读取,并可以在Spring的Environment中使用@Value
注解或配置属性来获取。
以下是一个如何通过命令行参数动态添加配置的例子:
- 创建一个Spring Boot项目,并添加一个配置文件
application.properties
。 在
application.properties
中添加一个可被覆盖的属性,例如:server.port=8080
运行Spring Boot应用程序,并通过命令行添加参数来覆盖该属性,例如:
java -jar target/myapp-0.0.1-SNAPSHOT.jar --server.port=8081
上述命令会启动Spring Boot应用程序,并将服务端口设置为8081。
如果需要在代码中动态添加配置参数,可以使用Spring Boot的SpringApplicationBuilder
:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication app = new SpringApplicationBuilder(MyApplication.class)
.properties("server.port=8080") // 默认配置
.build();
app.run(args); // 运行应用程序,并允许命令行参数覆盖配置
}
}
在这个例子中,我们在SpringApplicationBuilder
中通过.properties()
方法添加了一个默认的配置属性。当应用程序运行时,如果命令行参数中指定了相同的属性(例如--server.port=8081
),则命令行参数会覆盖默认值。
评论已关闭