Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @SpringBoot中application.properties的值始终为null_Java_Spring Boot_Properties_Components - Fatal编程技术网

Java @SpringBoot中application.properties的值始终为null

Java @SpringBoot中application.properties的值始终为null,java,spring-boot,properties,components,Java,Spring Boot,Properties,Components,如何从application.properties文件正确注入值 主要类别: @SpringBootApplication public class Main { public static void main(String args[]) { SpringApplication.run(Main.class,args); } application.properties文件: my.password=admin 测试等级: @Component publ

如何从application.properties文件正确注入值

主要类别:

@SpringBootApplication
public class Main {


    public static void main(String args[]) {
        SpringApplication.run(Main.class,args);
    }
application.properties文件:

my.password=admin
测试等级:

@Component
public class Test {
    @Value("${my.password}")
    private String mypassword;

    public String getMypassword() {
        return mypassword;
    }

    public void setMypassword(String mypassword) {
        this.mypassword = mypassword;
    }

    public Test(){
        System.out.println("@@@@@@@@@@@@@@@@@@@"+ mypassword);
    }
}

Console打印始终为null,而不是在创建类时(即调用构造函数时)不插入
应用程序
文件

属性中的值,而是稍晚一点。因此,在构造函数中可以看到null

尝试添加一个用
@PostConstruct
注释的方法,如下所示,并检查结果:

@PostConstruct
public void afterCreation(){
    System.out.println("@@@@@@@@@@@@@@@@@@@"+ mypassword);
}

属性不会在创建类时(即调用构造函数时)被注入,而是在稍后一点注入。因此,在构造函数中可以看到null

尝试添加一个用
@PostConstruct
注释的方法,如下所示,并检查结果:

@PostConstruct
public void afterCreation(){
    System.out.println("@@@@@@@@@@@@@@@@@@@"+ mypassword);
}

@pvpkiran我正在尝试将其添加到我的主方法中,其余方法不变

@SpringBootApplication
public class Application {
    @Autowired
    static Test  t;
    public static void main(String args[]){
        SpringApplication.run(Application.class,args);

        t.foobar();
    }
}

@pvpkiran我正在尝试将其添加到我的主方法中,其余方法不变

@SpringBootApplication
public class Application {
    @Autowired
    static Test  t;
    public static void main(String args[]){
        SpringApplication.run(Application.class,args);

        t.foobar();
    }
}

我不认为Value标记在调用构造函数之前分配值。我可能错了,但是在一个新函数上使用PostConstruct标记并打印值,看看是否有效。你是对的,谢谢你的帮助。我认为值标记不会在调用构造函数之前赋值。我可能错了,但是在一个新函数上使用PostConstruct标签并打印值,看看是否有效。你是对的,谢谢你的帮助谢谢,你是对的。但我还有一个问题。它与@PostConstruct一起工作,但是当我试图创建Test t=newtest()时;并调用afterCreation(),它将再次打印null。在springboot中有没有其他创建对象的方法?因为我也试过“@”自动连线测试t;然后调用foobar(),但我得到了nullpointer异常,当你新建时,你正在创建一个新对象。而不是春豆。因此
@value
或任何spring注释都没有任何意义,因此为空。在spring环境中,使用
new
是一种犯罪:)谢谢,但是我该如何创建对象呢?我想我可以在我的“@”组件上调用@Autowired。但是我只剩下空指针了。你能举一个例子说明你在描述什么吗。如果您的类是一个bean(有@component、@service、…)注释之一),那么自动连接不应该为空,前提是您使用的
@autowired
类也是一个bean。我将很快在答案中发布它,但问题可能出在@bean部分,因为我只是使用“@”组件谢谢,您是对的。但我还有一个问题。它与@PostConstruct一起工作,但是当我试图创建Test t=newtest()时;并调用afterCreation(),它将再次打印null。在springboot中有没有其他创建对象的方法?因为我也试过“@”自动连线测试t;然后调用foobar(),但我得到了nullpointer异常,当你新建时,你正在创建一个新对象。而不是春豆。因此
@value
或任何spring注释都没有任何意义,因此为空。在spring环境中,使用
new
是一种犯罪:)谢谢,但是我该如何创建对象呢?我想我可以在我的“@”组件上调用@Autowired。但是我只剩下空指针了。你能举一个例子说明你在描述什么吗。如果您的类是一个bean(有@component、@service、…)注释之一),那么自动连接不应该为null,前提是您使用的
@autowired
类也是一个bean。我将很快在答案中发布它,但问题可能出在@bean部分,因为我只是使用了“@”Component意识到我现在可能正在做一些spring异端,但有人能这么善良,给我展示一个使用@Autowired创建对象并在代码中某处调用其方法的示例吗?我在任何地方都找不到它。我意识到我现在可能在做一些spring异端,但有人能这么好,给我举一个使用@Autowired创建对象并在代码中调用其方法的例子吗?我哪儿都找不到。