@Value具体用在什么环境,为什么我在springboot的入口和一个@Component类中写了注解,都是null?
如题...自己新手。。对springboot理解的不够
代码如下:
入口类:main.java 我给cc这个属性添加了@Value,没有生效
package com.cc;import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
@SpringBootApplication
public class main {
@Value("${abc}")
private String cc;
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(main.class, args);
main m = new main();
System.out.println(m.cc);
student s = new student();
s.test();
}
}
main类中调用了一个java
student.java == 我给server属性添加了@Value,为什么都是null
package com.cc;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class student {
@Value("${abc}")
private String server;
public void test() {
System.out.println(this.server);
}
}
配置application.properties
server.port = 8083
abc = aaaa
回答:
既然把对象托管给了spring,那这里就不应该自己调用new student()来创建对象,应该用ctx.getBean("student")来获取到student对象,这时server就是已经赋值过的
以上是 @Value具体用在什么环境,为什么我在springboot的入口和一个@Component类中写了注解,都是null? 的全部内容, 来源链接: utcz.com/p/944619.html