optoelectronic:
azimuth: 117.1
pitch: -3.81
distance: 0.25
原写法:
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.math.BigDecimal;
/**
* 光电配置
*/
@Data
@Component // 将其声明为一个Spring管理的Bean组件
public class OptoelectronicConfiguration {
// 方位修正
@Value("${optoelectronic.azimuth}")
public static BigDecimal azimuth;
// 俯仰修正
@Value("${optoelectronic.pitch}")
public static BigDecimal pitch;
// 距离修正
@Value("${optoelectronic.distance}")
public static BigDecimal distance;
@Value("${optoelectronic.azimuth}") // 使用相同的值初始化静态字段
private BigDecimal azimuthPrivate;
@Value("${optoelectronic.pitch}") // 使用相同的值初始化静态字段
private BigDecimal pitchPrivate;
@Value("${optoelectronic.distance}") // 使用相同的值初始化静态字段
private BigDecimal distancePrivate;
@PostConstruct
public void initStaticFields() {
azimuth = azimuthPrivate;
pitch = pitchPrivate;
distance = distancePrivate;
}
}
然后在方法中类+静态属性,还是不行,就算在这个类上加了@RefreshScope,也不行。后面用了下面的方法
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
/**
* 光电配置
*/
@Data
@Component // 将其声明为一个Spring管理的Bean组件
@ConfigurationProperties(prefix = "optoelectronic")
public class OptoelectronicConfiguration2 {
// 方位修正
private BigDecimal azimuth;
// 俯仰修正
private BigDecimal pitch;
// 距离修正
private BigDecimal distance;
}
实现方法类
private final OptoelectronicConfiguration2 optoelectronicConfiguration2;
--->
optoelectronicConfiguration2.getAzimuth()