如何依赖从静态main方法注入运行时参数

时间:2017-07-25 10:13:03

标签: java spring dependency-injection static

我有一个黄瓜JVM + Selenium脚本。主要方法是这样的,

public static void main (String args[]) {

    environment.environmentValue = args[0];
    path.pathValue = args[1];
    username.superUser = args[2];

        returnCode = Main.run(
            new String[] { "-g", "com.sanity.step.definition","-t", "@" +path ,
                        featureFile.replace("\\", "\\\\") },
                SeparateClassloaderTestRunner.class.getClassLoader());
}

我有一个构造函数类,即

public Class CucumberRunner;

private ClassUtility environment;
private Classutility pathVal;
private ClassUtility userName;


    public CucumberRunner(ClassUtility environment , ClassUtility pathVal, 
      ClassUtility userName) {
            this.environment = environment;
            this.pathVal=pathVal;
            this.userName= userName;

        }

这是我的classutility Class,

public class ClassUtility {

    public String environmentValue;
    public String pathValue;
    public String superUser;
}

我得到编译错误为“无法对main方法中的非静态字段方法进行静态引用”enviornment.environmentValue = args [0]“。那么我们如何对静态变量进行依赖注入?我们可以吗?为运行时参数执行依赖注入?

1 个答案:

答案 0 :(得分:0)

Spring Boot可以为您处理JVM参数。

启动Spring Boot App时,可以将参数作为VM参数注入。

例如,java -jar yourboot.jar -DargumentName=test。 您可以通过在spring bean(控制器,服务,...)中执行:@Value("${argumentName}") private String var来检索该值。