@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

回到顶部